From a9b872fce7ac17b59074e430aadbb546e2bb4e33 Mon Sep 17 00:00:00 2001 From: Aaron Scully Date: Fri, 16 Oct 2026 22:43:40 +0100 Subject: [PATCH] Updating @joi/date and joi. Fixing previously incorrect generic parameters. --- jest.config.cjs | 1 + package.json | 4 ++-- src/server/plugins/engine/components/CheckboxesField.ts | 6 +++--- src/server/plugins/engine/components/ComponentBase.ts | 8 ++++---- src/server/plugins/engine/components/DeclarationField.ts | 7 +++---- src/server/plugins/engine/components/FileUploadField.ts | 4 ++-- src/server/plugins/engine/components/ListFormComponent.ts | 8 ++++---- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/jest.config.cjs b/jest.config.cjs index 86d6cfa6b..a7ddfe70b 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -51,6 +51,7 @@ module.exports = { transformIgnorePatterns: [ `node_modules/(?!${[ '@defra/forms-model/.*', + '@joi/date', // Supports ESM only 'nanoid', // Supports ESM only 'slug', // Supports ESM only '@defra/hapi-tracing', // Supports ESM only diff --git a/package.json b/package.json index 7c400b446..61d25e3a7 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ }, "license": "SEE LICENSE IN LICENSE", "dependencies": { - "@defra/forms-model": "^3.0.708", + "@defra/forms-model": "^4.0.0", "@defra/hapi-tracing": "^1.29.0", "@defra/interactive-map": "0.0.33-alpha", "@elastic/ecs-pino-format": "^1.5.0", @@ -134,7 +134,7 @@ "humanize-duration": "^3.33.1", "i18next": "^26.0.5", "ioredis": "^5.8.2", - "joi": "^17.13.3", + "joi": "^18.2.9", "liquidjs": "^10.24.0", "lodash": "^4.17.21", "lru-cache": "^11.5.1", diff --git a/src/server/plugins/engine/components/CheckboxesField.ts b/src/server/plugins/engine/components/CheckboxesField.ts index ab52caf13..226306a65 100644 --- a/src/server/plugins/engine/components/CheckboxesField.ts +++ b/src/server/plugins/engine/components/CheckboxesField.ts @@ -19,8 +19,8 @@ import { export class CheckboxesField extends SelectionControlField { declare options: CheckboxesFieldComponent['options'] declare schema: CheckboxesFieldComponent['schema'] - declare formSchema: ArraySchema | ArraySchema - declare stateSchema: ArraySchema | ArraySchema + declare formSchema: ArraySchema | ArraySchema + declare stateSchema: ArraySchema | ArraySchema declare limits: { min?: number; max?: number; length?: number } constructor( @@ -33,7 +33,7 @@ export class CheckboxesField extends SelectionControlField { const { options, schema } = def let formSchema = - type === 'string' ? joi.array() : joi.array() + type === 'string' ? joi.array() : joi.array() const itemsSchema = joi[type]() .valid(...this.values) diff --git a/src/server/plugins/engine/components/ComponentBase.ts b/src/server/plugins/engine/components/ComponentBase.ts index 901963df6..f03ba41e9 100644 --- a/src/server/plugins/engine/components/ComponentBase.ts +++ b/src/server/plugins/engine/components/ComponentBase.ts @@ -89,10 +89,10 @@ export class ComponentBase { } export type ComponentSchema = - | ArraySchema - | ArraySchema - | ArraySchema - | ArraySchema + | ArraySchema + | ArraySchema + | ArraySchema + | ArraySchema | BooleanSchema | BooleanSchema | DateSchema diff --git a/src/server/plugins/engine/components/DeclarationField.ts b/src/server/plugins/engine/components/DeclarationField.ts index 06f051255..3c51f2ad1 100644 --- a/src/server/plugins/engine/components/DeclarationField.ts +++ b/src/server/plugins/engine/components/DeclarationField.ts @@ -8,8 +8,7 @@ import { import joi, { type ArraySchema, type BooleanSchema, - type LanguageMessages, - type StringSchema + type LanguageMessages } from 'joi' import { @@ -34,7 +33,7 @@ export class DeclarationField extends FormComponent { declare declarationConfirmationLabel: string | undefined - declare formSchema: ArraySchema + declare formSchema: ArraySchema declare stateSchema: BooleanSchema declare content: string headerStartLevel: number @@ -63,7 +62,7 @@ export class DeclarationField extends FormComponent { 'any.unknown': messageTemplate.declarationRequired as string, 'array.includesRequiredUnknowns': messageTemplate.declarationRequired as string - }) as ArraySchema + }) this.formSchema = formSchema this.stateSchema = joi.boolean().cast('string').label(this.label).required() diff --git a/src/server/plugins/engine/components/FileUploadField.ts b/src/server/plugins/engine/components/FileUploadField.ts index 09faa6772..19146c401 100644 --- a/src/server/plugins/engine/components/FileUploadField.ts +++ b/src/server/plugins/engine/components/FileUploadField.ts @@ -111,8 +111,8 @@ export const formItemSchema = itemSchema.append({ export class FileUploadField extends FormComponent { declare options: FileUploadFieldComponent['options'] declare schema: FileUploadFieldComponent['schema'] - declare formSchema: ArraySchema - declare stateSchema: ArraySchema + declare formSchema: ArraySchema + declare stateSchema: ArraySchema declare limits: { min?: number; max?: number; length?: number } constructor( diff --git a/src/server/plugins/engine/components/ListFormComponent.ts b/src/server/plugins/engine/components/ListFormComponent.ts index 9bbe6049c..74c9c3d36 100644 --- a/src/server/plugins/engine/components/ListFormComponent.ts +++ b/src/server/plugins/engine/components/ListFormComponent.ts @@ -31,16 +31,16 @@ export class ListFormComponent extends FormComponent { >['options'] declare formSchema: - | ArraySchema - | ArraySchema + | ArraySchema + | ArraySchema | BooleanSchema | NumberSchema | NumberSchema | StringSchema declare stateSchema: - | ArraySchema - | ArraySchema + | ArraySchema + | ArraySchema | BooleanSchema | NumberSchema | NumberSchema