@defra/forms-model 3.0.417 → 3.0.419

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -158,6 +158,7 @@ const numberListItemSchema = baseListItemSchema.append({
158
158
  value: Joi.number().required()
159
159
  });
160
160
  const listSchema = Joi.object().keys({
161
+ id: Joi.string().uuid().optional(),
161
162
  name: Joi.string().required(),
162
163
  title: Joi.string().required(),
163
164
  type: Joi.string().required().valid('string', 'number'),
@@ -167,6 +168,9 @@ const listSchema = Joi.object().keys({
167
168
  otherwise: Joi.array().items(numberListItemSchema).unique('text').unique('value')
168
169
  })
169
170
  });
171
+ const listSchemaV2 = listSchema.keys({
172
+ id: Joi.string().uuid().default(() => uuidV4())
173
+ });
170
174
  const feedbackSchema = Joi.object().keys({
171
175
  feedbackForm: Joi.boolean().default(false),
172
176
  url: Joi.when('feedbackForm', {
@@ -222,6 +226,9 @@ export const formDefinitionSchema = Joi.object().required().keys({
222
226
  export const formDefinitionV2PayloadSchema = formDefinitionSchema.keys({
223
227
  pages: Joi.array().items(pageSchemaPayloadV2).required().unique('path').unique('id', {
224
228
  ignoreUndefined: true
229
+ }),
230
+ lists: Joi.array().items(listSchemaV2).unique('name').unique('title').unique('id', {
231
+ ignoreUndefined: true
225
232
  })
226
233
  });
227
234
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Joi","v4","uuidV4","ComponentType","sectionsSchema","object","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeDateValueSchema","period","unit","direction","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","link","id","conditionsModelSchema","conditionWrapperSchema","displayName","componentSchema","uuid","shortDescription","when","is","valid","Details","Html","InsetText","Markdown","then","pattern","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","componentSchemaV2","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","pageSchemaV2","append","pageSchemaPayloadV2","ignoreUndefined","baseListItemSchema","text","description","conditional","stringListItemSchema","numberListItemSchema","listSchema","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","formDefinitionV2PayloadSchema","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionData,\n type ConditionFieldData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionValueData,\n type ConditionsModelData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\nimport {\n type ConditionWrapper,\n type Event,\n type EventOptions,\n type Events,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Repeat,\n type RepeatOptions,\n type RepeatSchema,\n type Section\n} from '~/src/form/form-definition/types.js'\n\nconst sectionsSchema = Joi.object<Section>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object<ConditionValueData>().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>().keys({\n type: Joi.string().required(),\n period: Joi.string().required(),\n unit: Joi.string().required(),\n direction: Joi.string().required()\n})\n\nconst conditionRefSchema = Joi.object<ConditionRefData>().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object<ConditionData>().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n})\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n id: Joi.string().uuid().optional(),\n type: Joi.string<ComponentType>().required(),\n shortDescription: Joi.string().optional(),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .optional(),\n otherwise: Joi.string().pattern(/^[a-zA-Z]+$/)\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string().allow('')\n }),\n hint: Joi.string().allow('').optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n maxDaysInPast: Joi.number().empty(''),\n maxDaysInFuture: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow(''),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nexport const componentSchemaV2 = componentSchema.keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n})\n\nconst nextSchema = Joi.object<Link>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\nconst repeatOptions = Joi.object<RepeatOptions>().keys({\n name: Joi.string().required(),\n title: Joi.string().required()\n})\n\nconst repeatSchema = Joi.object<RepeatSchema>().keys({\n min: Joi.number().empty('').required(),\n max: Joi.number().empty('').required()\n})\n\nconst pageRepeatSchema = Joi.object<Repeat>().keys({\n options: repeatOptions.required(),\n schema: repeatSchema.required()\n})\n\nconst eventSchema = Joi.object<Event>().keys({\n type: Joi.string().allow('http').required(),\n options: Joi.object<EventOptions>().keys({\n method: Joi.string().allow('POST').required(),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n })\n})\n\nconst eventsSchema = Joi.object<Events>().keys({\n onLoad: eventSchema.optional(),\n onSave: eventSchema.optional()\n})\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nexport const pageSchema = Joi.object<Page>().keys({\n id: Joi.string().uuid().optional(),\n path: Joi.string().required().disallow('/status'),\n title: Joi.string().required(),\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema).unique('name'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema.required(),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string().allow('').optional(),\n next: Joi.array<Link>().items(nextSchema).default([]),\n events: eventsSchema.optional(),\n view: Joi.string().optional()\n})\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema.append({\n title: Joi.string().allow('').required()\n})\n\nexport const pageSchemaPayloadV2 = pageSchemaV2.keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4()),\n components: Joi.array<ComponentDef>()\n .items(componentSchemaV2)\n .unique('name')\n .unique('id', { ignoreUndefined: true })\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: Joi.string().allow(''),\n description: Joi.string().allow('').optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .optional(),\n condition: Joi.string().allow('').optional()\n})\n\nconst stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n })\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\nconst outputSchema = Joi.object<FormDefinition['output']>().keys({\n audience: Joi.string().valid('human', 'machine').required(),\n version: Joi.string().required()\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n engine: Joi.string().allow('V1', 'V2').default('V1'),\n name: Joi.string().allow('').optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().optional(),\n pages: Joi.array<Page>()\n .required()\n .when('engine', {\n is: 'V2',\n then: Joi.array<Page>().items(pageSchemaV2),\n otherwise: Joi.array<Page>().items(pageSchema)\n })\n .unique('path')\n .unique('id', { ignoreUndefined: true }),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required(),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName'),\n lists: Joi.array<List>().items(listSchema).unique('name').unique('title'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n skipSummary: Joi.any().strip(),\n phaseBanner: phaseBannerSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional(),\n output: outputSchema.optional()\n })\n\nexport const formDefinitionV2PayloadSchema = formDefinitionSchema.keys({\n pages: Joi.array<Page>()\n .items(pageSchemaPayloadV2)\n .required()\n .unique('path')\n .unique('id', { ignoreUndefined: true })\n})\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Joi","v4","uuidV4","ComponentType","sectionsSchema","object","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeDateValueSchema","period","unit","direction","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","link","id","conditionsModelSchema","conditionWrapperSchema","displayName","componentSchema","uuid","shortDescription","when","is","valid","Details","Html","InsetText","Markdown","then","pattern","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","componentSchemaV2","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","pageSchemaV2","append","pageSchemaPayloadV2","ignoreUndefined","baseListItemSchema","text","description","conditional","stringListItemSchema","numberListItemSchema","listSchema","listSchemaV2","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","formDefinitionV2PayloadSchema","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionData,\n type ConditionFieldData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionValueData,\n type ConditionsModelData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\nimport {\n type ConditionWrapper,\n type Event,\n type EventOptions,\n type Events,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Repeat,\n type RepeatOptions,\n type RepeatSchema,\n type Section\n} from '~/src/form/form-definition/types.js'\n\nconst sectionsSchema = Joi.object<Section>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object<ConditionValueData>().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>().keys({\n type: Joi.string().required(),\n period: Joi.string().required(),\n unit: Joi.string().required(),\n direction: Joi.string().required()\n})\n\nconst conditionRefSchema = Joi.object<ConditionRefData>().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object<ConditionData>().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n})\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n id: Joi.string().uuid().optional(),\n type: Joi.string<ComponentType>().required(),\n shortDescription: Joi.string().optional(),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .optional(),\n otherwise: Joi.string().pattern(/^[a-zA-Z]+$/)\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string().allow('')\n }),\n hint: Joi.string().allow('').optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n maxDaysInPast: Joi.number().empty(''),\n maxDaysInFuture: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow(''),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nexport const componentSchemaV2 = componentSchema.keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n})\n\nconst nextSchema = Joi.object<Link>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\nconst repeatOptions = Joi.object<RepeatOptions>().keys({\n name: Joi.string().required(),\n title: Joi.string().required()\n})\n\nconst repeatSchema = Joi.object<RepeatSchema>().keys({\n min: Joi.number().empty('').required(),\n max: Joi.number().empty('').required()\n})\n\nconst pageRepeatSchema = Joi.object<Repeat>().keys({\n options: repeatOptions.required(),\n schema: repeatSchema.required()\n})\n\nconst eventSchema = Joi.object<Event>().keys({\n type: Joi.string().allow('http').required(),\n options: Joi.object<EventOptions>().keys({\n method: Joi.string().allow('POST').required(),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n })\n})\n\nconst eventsSchema = Joi.object<Events>().keys({\n onLoad: eventSchema.optional(),\n onSave: eventSchema.optional()\n})\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nexport const pageSchema = Joi.object<Page>().keys({\n id: Joi.string().uuid().optional(),\n path: Joi.string().required().disallow('/status'),\n title: Joi.string().required(),\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema).unique('name'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema.required(),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string().allow('').optional(),\n next: Joi.array<Link>().items(nextSchema).default([]),\n events: eventsSchema.optional(),\n view: Joi.string().optional()\n})\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema.append({\n title: Joi.string().allow('').required()\n})\n\nexport const pageSchemaPayloadV2 = pageSchemaV2.keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4()),\n components: Joi.array<ComponentDef>()\n .items(componentSchemaV2)\n .unique('name')\n .unique('id', { ignoreUndefined: true })\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: Joi.string().allow(''),\n description: Joi.string().allow('').optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .optional(),\n condition: Joi.string().allow('').optional()\n})\n\nconst stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\n})\n\nconst listSchema = Joi.object<List>().keys({\n id: Joi.string().uuid().optional(),\n name: Joi.string().required(),\n title: Joi.string().required(),\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n })\n})\n\nconst listSchemaV2 = listSchema.keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\nconst outputSchema = Joi.object<FormDefinition['output']>().keys({\n audience: Joi.string().valid('human', 'machine').required(),\n version: Joi.string().required()\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n engine: Joi.string().allow('V1', 'V2').default('V1'),\n name: Joi.string().allow('').optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().optional(),\n pages: Joi.array<Page>()\n .required()\n .when('engine', {\n is: 'V2',\n then: Joi.array<Page>().items(pageSchemaV2),\n otherwise: Joi.array<Page>().items(pageSchema)\n })\n .unique('path')\n .unique('id', { ignoreUndefined: true }),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required(),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName'),\n lists: Joi.array<List>().items(listSchema).unique('name').unique('title'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n skipSummary: Joi.any().strip(),\n phaseBanner: phaseBannerSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional(),\n output: outputSchema.optional()\n })\n\nexport const formDefinitionV2PayloadSchema = formDefinitionSchema.keys({\n pages: Joi.array<Page>()\n .items(pageSchemaPayloadV2)\n .required()\n .unique('path')\n .unique('id', { ignoreUndefined: true }),\n lists: Joi.array<List>()\n .items(listSchemaV2)\n .unique('name')\n .unique('title')\n .unique('id', { ignoreUndefined: true })\n})\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Engine"],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionsModelData } from '~/src/conditions/types.js'\nimport { formDefinitionSchema } from '~/src/form/form-definition/index.js'\nimport { type ControllerPath, type ControllerType } from '~/src/pages/enums.js'\n\nexport enum Engine {\n V1 = 'V1',\n V2 = 'V2'\n}\n\nexport interface Link {\n path: string\n condition?: string\n redirect?: string\n}\n\nexport interface EventOptions {\n method: string\n url: string\n}\n\nexport interface Event {\n type: string\n options: EventOptions\n}\n\nexport interface Events {\n onLoad?: Event\n onSave?: Event\n}\n\nexport interface PageBase {\n id?: string\n title: string\n path: string\n condition?: string\n events?: Events\n view?: string\n}\n\nexport interface RepeatOptions {\n name: string\n title: string\n}\n\nexport interface RepeatSchema {\n min: number\n max: number\n}\n\nexport interface Repeat {\n options: RepeatOptions\n schema: RepeatSchema\n}\n\nexport interface PageStart extends PageBase {\n path: ControllerPath.Start | string\n controller: ControllerType.Start\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageQuestion extends PageBase {\n controller?: ControllerType.Page\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageTerminal extends PageBase {\n controller?: ControllerType.Terminal\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageRepeat extends PageBase {\n controller: ControllerType.Repeat\n repeat: Repeat\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageFileUpload extends PageBase {\n controller: ControllerType.FileUpload\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageSummary extends PageBase {\n path: ControllerPath.Summary | string\n controller: ControllerType.Summary\n section?: undefined\n components?: ComponentDef[]\n}\n\nexport interface PageStatus extends PageBase {\n path: ControllerPath.Status | string\n controller: ControllerType.Status\n section?: undefined\n}\n\nexport type Page =\n | PageStart\n | PageQuestion\n | PageTerminal\n | PageFileUpload\n | PageRepeat\n | PageSummary\n | PageStatus\n\nexport interface Section {\n name: string\n title: string\n hideTitle?: boolean\n}\n\nexport interface Item {\n text: string\n value: string | number | boolean\n description?: string\n conditional?: { components: ComponentDef[] }\n condition?: string\n}\n\nexport interface List {\n name: string\n title: string\n type: ListTypeContent\n items: Item[]\n}\n\nexport type ListTypeOption = 'bulleted' | 'numbered'\nexport type ListTypeContent = 'string' | 'number' | 'boolean'\n\nexport interface Feedback {\n feedbackForm?: boolean\n url?: string\n emailAddress?: string\n}\n\nexport interface PhaseBanner {\n phase?: 'alpha' | 'beta'\n feedbackUrl?: string\n}\n\nexport interface ConditionWrapper {\n name: string\n displayName: string\n value: ConditionsModelData\n}\n\n/**\n * Interface for `formDefinitionSchema` Joi schema\n * @see {@link formDefinitionSchema}\n */\nexport interface FormDefinition {\n engine?: Engine\n pages: Page[]\n conditions: ConditionWrapper[]\n lists: List[]\n sections: Section[]\n startPage?: string\n name?: string\n feedback?: Feedback\n phaseBanner?: PhaseBanner\n declaration?: string // Deprecated in v2\n skipSummary?: never\n metadata?: Record<string, unknown>\n outputEmail?: string\n output?: {\n audience: 'human' | 'machine'\n version: string\n }\n}\n"],"mappings":"AAKA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;;AAsJlB;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["Engine"],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionsModelData } from '~/src/conditions/types.js'\nimport { formDefinitionSchema } from '~/src/form/form-definition/index.js'\nimport { type ControllerPath, type ControllerType } from '~/src/pages/enums.js'\n\nexport enum Engine {\n V1 = 'V1',\n V2 = 'V2'\n}\n\nexport interface Link {\n path: string\n condition?: string\n redirect?: string\n}\n\nexport interface EventOptions {\n method: string\n url: string\n}\n\nexport interface Event {\n type: string\n options: EventOptions\n}\n\nexport interface Events {\n onLoad?: Event\n onSave?: Event\n}\n\nexport interface PageBase {\n id?: string\n title: string\n path: string\n condition?: string\n events?: Events\n view?: string\n}\n\nexport interface RepeatOptions {\n name: string\n title: string\n}\n\nexport interface RepeatSchema {\n min: number\n max: number\n}\n\nexport interface Repeat {\n options: RepeatOptions\n schema: RepeatSchema\n}\n\nexport interface PageStart extends PageBase {\n path: ControllerPath.Start | string\n controller: ControllerType.Start\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageQuestion extends PageBase {\n controller?: ControllerType.Page\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageTerminal extends PageBase {\n controller?: ControllerType.Terminal\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageRepeat extends PageBase {\n controller: ControllerType.Repeat\n repeat: Repeat\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageFileUpload extends PageBase {\n controller: ControllerType.FileUpload\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageSummary extends PageBase {\n path: ControllerPath.Summary | string\n controller: ControllerType.Summary\n section?: undefined\n components?: ComponentDef[]\n}\n\nexport interface PageStatus extends PageBase {\n path: ControllerPath.Status | string\n controller: ControllerType.Status\n section?: undefined\n}\n\nexport type Page =\n | PageStart\n | PageQuestion\n | PageTerminal\n | PageFileUpload\n | PageRepeat\n | PageSummary\n | PageStatus\n\nexport interface Section {\n name: string\n title: string\n hideTitle?: boolean\n}\n\nexport interface Item {\n text: string\n value: string | number | boolean\n description?: string\n conditional?: { components: ComponentDef[] }\n condition?: string\n}\n\nexport interface List {\n id?: string\n name: string\n title: string\n type: ListTypeContent\n items: Item[]\n}\n\nexport type ListTypeOption = 'bulleted' | 'numbered'\nexport type ListTypeContent = 'string' | 'number' | 'boolean'\n\nexport interface Feedback {\n feedbackForm?: boolean\n url?: string\n emailAddress?: string\n}\n\nexport interface PhaseBanner {\n phase?: 'alpha' | 'beta'\n feedbackUrl?: string\n}\n\nexport interface ConditionWrapper {\n name: string\n displayName: string\n value: ConditionsModelData\n}\n\n/**\n * Interface for `formDefinitionSchema` Joi schema\n * @see {@link formDefinitionSchema}\n */\nexport interface FormDefinition {\n engine?: Engine\n pages: Page[]\n conditions: ConditionWrapper[]\n lists: List[]\n sections: Section[]\n startPage?: string\n name?: string\n feedback?: Feedback\n phaseBanner?: PhaseBanner\n declaration?: string // Deprecated in v2\n skipSummary?: never\n metadata?: Record<string, unknown>\n outputEmail?: string\n output?: {\n audience: 'human' | 'machine'\n version: string\n }\n}\n"],"mappings":"AAKA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;;AAuJlB;AACA;AACA;AACA","ignoreList":[]}
@@ -5,6 +5,7 @@ export const questionTypeSchema = Joi.string().required().valid('written-answer-
5
5
  export const questionTypeFullSchema = Joi.string().required().valid(ComponentType.TextField, ComponentType.MultilineTextField, ComponentType.NumberField, ComponentType.DatePartsField, ComponentType.MonthYearField, ComponentType.UkAddressField, ComponentType.TelephoneNumberField, ComponentType.FileUploadField, ComponentType.EmailAddressField, ComponentType.SelectField);
6
6
  export const writtenAnswerSubSchema = Joi.string().required().valid(ComponentType.TextField, ComponentType.MultilineTextField, ComponentType.NumberField);
7
7
  export const dateSubSchema = Joi.string().required().valid(ComponentType.DatePartsField, ComponentType.MonthYearField);
8
+ export const nameSchema = Joi.string().required();
8
9
  export const questionSchema = Joi.string().required();
9
10
  export const hintTextSchema = Joi.string().optional().allow('');
10
11
  export const questionOptionalSchema = Joi.string().optional().valid('', 'true');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Joi","ComponentType","pageTypeSchema","string","required","valid","questionTypeSchema","UkAddressField","TelephoneNumberField","FileUploadField","EmailAddressField","SelectField","questionTypeFullSchema","TextField","MultilineTextField","NumberField","DatePartsField","MonthYearField","writtenAnswerSubSchema","dateSubSchema","questionSchema","hintTextSchema","optional","allow","questionOptionalSchema","shortDescriptionSchema","pageHeadingAndGuidanceSchema","pageHeadingSchema","guidanceTextSchema","needDeclarationSchema","declarationTextSchema","minLengthSchema","number","empty","min","maxLengthSchema","regexSchema","classesSchema","formEditorInputPageKeys","pageType","questionType","formEditorInputPageSchema","object","keys","formEditorInputheckAnswersSettingsKeys","declarationText","formEditorInputCheckAnswersSettingSchema","formEditorInputQuestionKeys","question","shortDescription","hintText","questionOptional","formEditorInputQuestionSchema","formEditorInputPageSettingsKeys","pageHeadingAndGuidance","pageHeading","guidanceText","formEditorInputPageSettingsSchema"],"sources":["../../../../src/form/form-editor/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type FormEditorInputCheckAnswersSettings,\n type FormEditorInputPage,\n type FormEditorInputPageSettings,\n type FormEditorInputQuestion\n} from '~/src/form/form-editor/types.js'\n\nexport const pageTypeSchema = Joi.string()\n .required()\n .valid('question', 'guidance')\nexport const questionTypeSchema = Joi.string()\n .required()\n .valid(\n 'written-answer-group',\n 'date-group',\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.SelectField\n )\n\nexport const questionTypeFullSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.DatePartsField,\n ComponentType.MonthYearField,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.SelectField\n )\n\nexport const writtenAnswerSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField\n )\nexport const dateSubSchema = Joi.string()\n .required()\n .valid(ComponentType.DatePartsField, ComponentType.MonthYearField)\n\nexport const questionSchema = Joi.string().required()\nexport const hintTextSchema = Joi.string().optional().allow('')\nexport const questionOptionalSchema = Joi.string().optional().valid('', 'true')\nexport const shortDescriptionSchema = Joi.string().required()\nexport const pageHeadingAndGuidanceSchema = Joi.string().optional()\nexport const pageHeadingSchema = Joi.string().required()\nexport const guidanceTextSchema = Joi.string().optional().allow('')\nexport const needDeclarationSchema = Joi.string().required()\nexport const declarationTextSchema = Joi.string().required()\nexport const minLengthSchema = Joi.number().empty('').min(1)\nexport const maxLengthSchema = Joi.number().empty('').min(1)\nexport const regexSchema = Joi.string().optional().allow('')\nexport const classesSchema = Joi.string().optional().allow('')\n\nexport const formEditorInputPageKeys = {\n pageType: pageTypeSchema,\n questionType: questionTypeSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPage` interface\n * @see {@link FormEditorInputPage}\n */\nexport const formEditorInputPageSchema = Joi.object<FormEditorInputPage>()\n .keys(formEditorInputPageKeys)\n .required()\n\nexport const formEditorInputheckAnswersSettingsKeys = {\n declarationText: shortDescriptionSchema\n}\n\n/**\n * Joi schema for `FormEditorInputCheckAnswersSettings` interface\n * @see {@link FormEditorInputCheckAnswersSettings}\n */\nexport const formEditorInputCheckAnswersSettingSchema =\n Joi.object<FormEditorInputCheckAnswersSettings>()\n .keys(formEditorInputheckAnswersSettingsKeys)\n .required()\n\nexport const formEditorInputQuestionKeys = {\n question: questionSchema,\n shortDescription: shortDescriptionSchema,\n hintText: hintTextSchema,\n questionOptional: questionOptionalSchema\n}\n\n/**\n * Joi schema for `FormEditorInputQuestion` interface\n * @see {@link FormEditorInputQuestion}\n */\nexport const formEditorInputQuestionSchema =\n Joi.object<FormEditorInputQuestion>()\n .keys(formEditorInputQuestionKeys)\n .required()\n\nexport const formEditorInputPageSettingsKeys = {\n pageHeadingAndGuidance: pageHeadingAndGuidanceSchema,\n pageHeading: pageHeadingSchema,\n guidanceText: guidanceTextSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPageSettings` interface\n * @see {@link FormEditorInputPageSettings}\n */\nexport const formEditorInputPageSettingsSchema =\n Joi.object<FormEditorInputPageSettings>()\n .keys(formEditorInputPageSettingsKeys)\n .required()\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Joi","ComponentType","pageTypeSchema","string","required","valid","questionTypeSchema","UkAddressField","TelephoneNumberField","FileUploadField","EmailAddressField","SelectField","questionTypeFullSchema","TextField","MultilineTextField","NumberField","DatePartsField","MonthYearField","writtenAnswerSubSchema","dateSubSchema","nameSchema","questionSchema","hintTextSchema","optional","allow","questionOptionalSchema","shortDescriptionSchema","pageHeadingAndGuidanceSchema","pageHeadingSchema","guidanceTextSchema","needDeclarationSchema","declarationTextSchema","minLengthSchema","number","empty","min","maxLengthSchema","regexSchema","classesSchema","formEditorInputPageKeys","pageType","questionType","formEditorInputPageSchema","object","keys","formEditorInputheckAnswersSettingsKeys","declarationText","formEditorInputCheckAnswersSettingSchema","formEditorInputQuestionKeys","question","shortDescription","hintText","questionOptional","formEditorInputQuestionSchema","formEditorInputPageSettingsKeys","pageHeadingAndGuidance","pageHeading","guidanceText","formEditorInputPageSettingsSchema"],"sources":["../../../../src/form/form-editor/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type FormEditorInputCheckAnswersSettings,\n type FormEditorInputPage,\n type FormEditorInputPageSettings,\n type FormEditorInputQuestion\n} from '~/src/form/form-editor/types.js'\n\nexport const pageTypeSchema = Joi.string()\n .required()\n .valid('question', 'guidance')\nexport const questionTypeSchema = Joi.string()\n .required()\n .valid(\n 'written-answer-group',\n 'date-group',\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.SelectField\n )\n\nexport const questionTypeFullSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.DatePartsField,\n ComponentType.MonthYearField,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.SelectField\n )\n\nexport const writtenAnswerSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField\n )\nexport const dateSubSchema = Joi.string()\n .required()\n .valid(ComponentType.DatePartsField, ComponentType.MonthYearField)\n\nexport const nameSchema = Joi.string().required()\nexport const questionSchema = Joi.string().required()\nexport const hintTextSchema = Joi.string().optional().allow('')\nexport const questionOptionalSchema = Joi.string().optional().valid('', 'true')\nexport const shortDescriptionSchema = Joi.string().required()\nexport const pageHeadingAndGuidanceSchema = Joi.string().optional()\nexport const pageHeadingSchema = Joi.string().required()\nexport const guidanceTextSchema = Joi.string().optional().allow('')\nexport const needDeclarationSchema = Joi.string().required()\nexport const declarationTextSchema = Joi.string().required()\nexport const minLengthSchema = Joi.number().empty('').min(1)\nexport const maxLengthSchema = Joi.number().empty('').min(1)\nexport const regexSchema = Joi.string().optional().allow('')\nexport const classesSchema = Joi.string().optional().allow('')\n\nexport const formEditorInputPageKeys = {\n pageType: pageTypeSchema,\n questionType: questionTypeSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPage` interface\n * @see {@link FormEditorInputPage}\n */\nexport const formEditorInputPageSchema = Joi.object<FormEditorInputPage>()\n .keys(formEditorInputPageKeys)\n .required()\n\nexport const formEditorInputheckAnswersSettingsKeys = {\n declarationText: shortDescriptionSchema\n}\n\n/**\n * Joi schema for `FormEditorInputCheckAnswersSettings` interface\n * @see {@link FormEditorInputCheckAnswersSettings}\n */\nexport const formEditorInputCheckAnswersSettingSchema =\n Joi.object<FormEditorInputCheckAnswersSettings>()\n .keys(formEditorInputheckAnswersSettingsKeys)\n .required()\n\nexport const formEditorInputQuestionKeys = {\n question: questionSchema,\n shortDescription: shortDescriptionSchema,\n hintText: hintTextSchema,\n questionOptional: questionOptionalSchema\n}\n\n/**\n * Joi schema for `FormEditorInputQuestion` interface\n * @see {@link FormEditorInputQuestion}\n */\nexport const formEditorInputQuestionSchema =\n Joi.object<FormEditorInputQuestion>()\n .keys(formEditorInputQuestionKeys)\n .required()\n\nexport const formEditorInputPageSettingsKeys = {\n pageHeadingAndGuidance: pageHeadingAndGuidanceSchema,\n pageHeading: pageHeadingSchema,\n guidanceText: guidanceTextSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPageSettings` interface\n * @see {@link FormEditorInputPageSettings}\n */\nexport const formEditorInputPageSettingsSchema =\n Joi.object<FormEditorInputPageSettings>()\n .keys(formEditorInputPageSettingsKeys)\n .required()\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-editor/types.ts"],"sourcesContent":["/**\n * Interface for `FormEditor` Joi schema\n */\nexport interface FormEditor {\n /**\n * The type of the page\n */\n pageType: string\n\n /**\n * The type of the question\n */\n questionType: string | undefined\n\n /**\n * The sub-type of written answer\n */\n writtenAnswerSub: string\n\n /**\n * The sub-type of date\n */\n dateSub: string\n\n /**\n * The text of the question\n */\n question: string\n\n /**\n * The hint text of the question\n */\n hintText: string\n\n /**\n * Denotes if the question is optional\n */\n questionOptional: string\n\n /**\n * The short description of the question\n */\n shortDescription: string\n\n /**\n * The value of checkbox to reveal heading and guidance section\n */\n pageHeadingAndGuidance: string\n\n /**\n * The page heading\n */\n pageHeading: string\n\n /**\n * The page guidance text\n */\n guidanceText: string\n\n /**\n * The value of radio to reveal declaration text field\n */\n needDeclaration: string\n\n /**\n * The check answers declaration text\n */\n declarationText: string\n\n /**\n * The min length a field can have\n */\n minLength: string\n\n /**\n * The max length a field can have\n */\n maxLength: string\n\n /**\n * The regex value of a field\n */\n regex: string\n\n /**\n * The classes to be applied to a field\n */\n classes: string\n}\n\nexport type FormEditorInputPage = Pick<\n FormEditor,\n 'pageType' | 'questionType' | 'writtenAnswerSub' | 'dateSub'\n>\n\nexport type FormEditorInputCheckAnswersSettings = Pick<\n FormEditor,\n 'needDeclaration' | 'declarationText'\n>\n\nexport type FormEditorInputQuestion = Pick<\n FormEditor,\n | 'questionType'\n | 'question'\n | 'shortDescription'\n | 'hintText'\n | 'questionOptional'\n | 'minLength'\n | 'maxLength'\n | 'regex'\n | 'classes'\n>\n\nexport type FormEditorInputPageSettings = Pick<\n FormEditor,\n 'pageHeadingAndGuidance' | 'pageHeading' | 'guidanceText'\n>\n\nexport interface GovukField {\n id?: string\n name?: string\n idPrefix?: string\n value?: string | boolean | number\n classes?: string\n label?: { text?: string; html?: string; classes?: string }\n hint?: { text?: string; html?: string; classes?: string }\n items?: { text?: string; value?: string }\n rows?: number\n}\n\nexport interface FormEditorGovukField {\n question?: GovukField\n hintText?: GovukField\n questionOptional?: GovukField\n shortDescription?: GovukField\n minLength?: GovukField\n maxLength?: GovukField\n regex?: GovukField\n classes?: GovukField\n errorMessage?: { text: string }\n}\n\nexport interface FormEditorGovukFieldList {\n fields: FormEditorGovukField\n optionalFieldsPartial?: string\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-editor/types.ts"],"sourcesContent":["/**\n * Interface for `FormEditor` Joi schema\n */\nexport interface FormEditor {\n /**\n * The type of the page\n */\n pageType: string\n\n /**\n * The type of the question\n */\n questionType: string | undefined\n\n /**\n * The sub-type of written answer\n */\n writtenAnswerSub: string\n\n /**\n * The sub-type of date\n */\n dateSub: string\n\n /**\n * The name of the question (unique id)\n */\n name: string\n\n /**\n * The text of the question\n */\n question: string\n\n /**\n * The hint text of the question\n */\n hintText: string\n\n /**\n * Denotes if the question is optional\n */\n questionOptional: string\n\n /**\n * The short description of the question\n */\n shortDescription: string\n\n /**\n * The value of checkbox to reveal heading and guidance section\n */\n pageHeadingAndGuidance: string\n\n /**\n * The page heading\n */\n pageHeading: string\n\n /**\n * The page guidance text\n */\n guidanceText: string\n\n /**\n * The value of radio to reveal declaration text field\n */\n needDeclaration: string\n\n /**\n * The check answers declaration text\n */\n declarationText: string\n\n /**\n * The min length a field can have\n */\n minLength: string\n\n /**\n * The max length a field can have\n */\n maxLength: string\n\n /**\n * The regex value of a field\n */\n regex: string\n\n /**\n * The classes to be applied to a field\n */\n classes: string\n}\n\nexport type FormEditorInputPage = Pick<\n FormEditor,\n 'pageType' | 'questionType' | 'writtenAnswerSub' | 'dateSub'\n>\n\nexport type FormEditorInputCheckAnswersSettings = Pick<\n FormEditor,\n 'needDeclaration' | 'declarationText'\n>\n\nexport type FormEditorInputQuestion = Pick<\n FormEditor,\n | 'questionType'\n | 'name'\n | 'question'\n | 'shortDescription'\n | 'hintText'\n | 'questionOptional'\n | 'minLength'\n | 'maxLength'\n | 'regex'\n | 'classes'\n>\n\nexport type FormEditorInputPageSettings = Pick<\n FormEditor,\n 'pageHeadingAndGuidance' | 'pageHeading' | 'guidanceText'\n>\n\nexport interface GovukField {\n id?: string\n name?: string\n idPrefix?: string\n value?: string | boolean | number\n classes?: string\n label?: { text?: string; html?: string; classes?: string }\n hint?: { text?: string; html?: string; classes?: string }\n items?: { text?: string; value?: string }\n rows?: number\n}\n\nexport interface FormEditorGovukField {\n question?: GovukField\n hintText?: GovukField\n questionOptional?: GovukField\n shortDescription?: GovukField\n minLength?: GovukField\n maxLength?: GovukField\n regex?: GovukField\n classes?: GovukField\n errorMessage?: { text: string }\n}\n\nexport interface FormEditorGovukFieldList {\n fields: FormEditorGovukField\n optionalFieldsPartial?: string\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAA8B,MAAM,KAAK,CAAA;AAIhD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAU7D,OAAO,EAKL,KAAK,cAAc,EAInB,KAAK,IAAI,EAMV,MAAM,qCAAqC,CAAA;AAqE5C,eAAO,MAAM,eAAe,gCAiDZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,gCAI5B,CAAA;AAsCF;;;GAGG;AACH,eAAO,MAAM,UAAU,wBAgBrB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,wBAEvB,CAAA;AAEF,eAAO,MAAM,mBAAmB,wBAQ9B,CAAA;AAiEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kCAmC7B,CAAA;AAEJ,eAAO,MAAM,6BAA6B,kCAMxC,CAAA;AAIF,eAAO,MAAM,MAAM,kCAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAA8B,MAAM,KAAK,CAAA;AAIhD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAU7D,OAAO,EAKL,KAAK,cAAc,EAInB,KAAK,IAAI,EAMV,MAAM,qCAAqC,CAAA;AAqE5C,eAAO,MAAM,eAAe,gCAiDZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,gCAI5B,CAAA;AAsCF;;;GAGG;AACH,eAAO,MAAM,UAAU,wBAgBrB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,wBAEvB,CAAA;AAEF,eAAO,MAAM,mBAAmB,wBAQ9B,CAAA;AAwEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kCAmC7B,CAAA;AAEJ,eAAO,MAAM,6BAA6B,kCAWxC,CAAA;AAIF,eAAO,MAAM,MAAM,kCAAuB,CAAA"}
@@ -101,6 +101,7 @@ export interface Item {
101
101
  condition?: string;
102
102
  }
103
103
  export interface List {
104
+ id?: string;
104
105
  name: string;
105
106
  title: string;
106
107
  type: ListTypeContent;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/types.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const questionTypeSchema: Joi.StringSchema<string>;
5
5
  export declare const questionTypeFullSchema: Joi.StringSchema<string>;
6
6
  export declare const writtenAnswerSubSchema: Joi.StringSchema<string>;
7
7
  export declare const dateSubSchema: Joi.StringSchema<string>;
8
+ export declare const nameSchema: Joi.StringSchema<string>;
8
9
  export declare const questionSchema: Joi.StringSchema<string>;
9
10
  export declare const hintTextSchema: Joi.StringSchema<string>;
10
11
  export declare const questionOptionalSchema: Joi.StringSchema<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAA;AAExC,eAAO,MAAM,cAAc,0BAEK,CAAA;AAChC,eAAO,MAAM,kBAAkB,0BAU5B,CAAA;AAEH,eAAO,MAAM,sBAAsB,0BAahC,CAAA;AAEH,eAAO,MAAM,sBAAsB,0BAMhC,CAAA;AACH,eAAO,MAAM,aAAa,0BAE0C,CAAA;AAEpE,eAAO,MAAM,cAAc,0BAA0B,CAAA;AACrD,eAAO,MAAM,cAAc,0BAAoC,CAAA;AAC/D,eAAO,MAAM,sBAAsB,0BAA4C,CAAA;AAC/E,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAC7D,eAAO,MAAM,4BAA4B,0BAA0B,CAAA;AACnE,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,kBAAkB,0BAAoC,CAAA;AACnE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,eAAe,0BAAgC,CAAA;AAC5D,eAAO,MAAM,eAAe,0BAAgC,CAAA;AAC5D,eAAO,MAAM,WAAW,0BAAoC,CAAA;AAC5D,eAAO,MAAM,aAAa,0BAAoC,CAAA;AAE9D,eAAO,MAAM,uBAAuB;;;CAGnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uCAEzB,CAAA;AAEb,eAAO,MAAM,sCAAsC;;CAElD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wCAAwC,uDAGtC,CAAA;AAEf,eAAO,MAAM,2BAA2B;;;;;CAKvC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,2CAG3B,CAAA;AAEf,eAAO,MAAM,+BAA+B;;;;CAI3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,+CAG/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAA;AAExC,eAAO,MAAM,cAAc,0BAEK,CAAA;AAChC,eAAO,MAAM,kBAAkB,0BAU5B,CAAA;AAEH,eAAO,MAAM,sBAAsB,0BAahC,CAAA;AAEH,eAAO,MAAM,sBAAsB,0BAMhC,CAAA;AACH,eAAO,MAAM,aAAa,0BAE0C,CAAA;AAEpE,eAAO,MAAM,UAAU,0BAA0B,CAAA;AACjD,eAAO,MAAM,cAAc,0BAA0B,CAAA;AACrD,eAAO,MAAM,cAAc,0BAAoC,CAAA;AAC/D,eAAO,MAAM,sBAAsB,0BAA4C,CAAA;AAC/E,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAC7D,eAAO,MAAM,4BAA4B,0BAA0B,CAAA;AACnE,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,kBAAkB,0BAAoC,CAAA;AACnE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,eAAe,0BAAgC,CAAA;AAC5D,eAAO,MAAM,eAAe,0BAAgC,CAAA;AAC5D,eAAO,MAAM,WAAW,0BAAoC,CAAA;AAC5D,eAAO,MAAM,aAAa,0BAAoC,CAAA;AAE9D,eAAO,MAAM,uBAAuB;;;CAGnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uCAEzB,CAAA;AAEb,eAAO,MAAM,sCAAsC;;CAElD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wCAAwC,uDAGtC,CAAA;AAEf,eAAO,MAAM,2BAA2B;;;;;CAKvC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,2CAG3B,CAAA;AAEf,eAAO,MAAM,+BAA+B;;;;CAI3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,+CAG/B,CAAA"}
@@ -18,6 +18,10 @@ export interface FormEditor {
18
18
  * The sub-type of date
19
19
  */
20
20
  dateSub: string;
21
+ /**
22
+ * The name of the question (unique id)
23
+ */
24
+ name: string;
21
25
  /**
22
26
  * The text of the question
23
27
  */
@@ -73,7 +77,7 @@ export interface FormEditor {
73
77
  }
74
78
  export type FormEditorInputPage = Pick<FormEditor, 'pageType' | 'questionType' | 'writtenAnswerSub' | 'dateSub'>;
75
79
  export type FormEditorInputCheckAnswersSettings = Pick<FormEditor, 'needDeclaration' | 'declarationText'>;
76
- export type FormEditorInputQuestion = Pick<FormEditor, 'questionType' | 'question' | 'shortDescription' | 'hintText' | 'questionOptional' | 'minLength' | 'maxLength' | 'regex' | 'classes'>;
80
+ export type FormEditorInputQuestion = Pick<FormEditor, 'questionType' | 'name' | 'question' | 'shortDescription' | 'hintText' | 'questionOptional' | 'minLength' | 'maxLength' | 'regex' | 'classes'>;
77
81
  export type FormEditorInputPageSettings = Pick<FormEditor, 'pageHeadingAndGuidance' | 'pageHeading' | 'guidanceText'>;
78
82
  export interface GovukField {
79
83
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.417",
3
+ "version": "3.0.419",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "repository": {
@@ -251,6 +251,7 @@ const numberListItemSchema = baseListItemSchema.append({
251
251
  })
252
252
 
253
253
  const listSchema = Joi.object<List>().keys({
254
+ id: Joi.string().uuid().optional(),
254
255
  name: Joi.string().required(),
255
256
  title: Joi.string().required(),
256
257
  type: Joi.string().required().valid('string', 'number'),
@@ -267,6 +268,12 @@ const listSchema = Joi.object<List>().keys({
267
268
  })
268
269
  })
269
270
 
271
+ const listSchemaV2 = listSchema.keys({
272
+ id: Joi.string()
273
+ .uuid()
274
+ .default(() => uuidV4())
275
+ })
276
+
270
277
  const feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({
271
278
  feedbackForm: Joi.boolean().default(false),
272
279
  url: Joi.when('feedbackForm', {
@@ -337,6 +344,11 @@ export const formDefinitionV2PayloadSchema = formDefinitionSchema.keys({
337
344
  .items(pageSchemaPayloadV2)
338
345
  .required()
339
346
  .unique('path')
347
+ .unique('id', { ignoreUndefined: true }),
348
+ lists: Joi.array<List>()
349
+ .items(listSchemaV2)
350
+ .unique('name')
351
+ .unique('title')
340
352
  .unique('id', { ignoreUndefined: true })
341
353
  })
342
354
 
@@ -127,6 +127,7 @@ export interface Item {
127
127
  }
128
128
 
129
129
  export interface List {
130
+ id?: string
130
131
  name: string
131
132
  title: string
132
133
  type: ListTypeContent
@@ -49,6 +49,7 @@ export const dateSubSchema = Joi.string()
49
49
  .required()
50
50
  .valid(ComponentType.DatePartsField, ComponentType.MonthYearField)
51
51
 
52
+ export const nameSchema = Joi.string().required()
52
53
  export const questionSchema = Joi.string().required()
53
54
  export const hintTextSchema = Joi.string().optional().allow('')
54
55
  export const questionOptionalSchema = Joi.string().optional().valid('', 'true')
@@ -22,6 +22,11 @@ export interface FormEditor {
22
22
  */
23
23
  dateSub: string
24
24
 
25
+ /**
26
+ * The name of the question (unique id)
27
+ */
28
+ name: string
29
+
25
30
  /**
26
31
  * The text of the question
27
32
  */
@@ -101,6 +106,7 @@ export type FormEditorInputCheckAnswersSettings = Pick<
101
106
  export type FormEditorInputQuestion = Pick<
102
107
  FormEditor,
103
108
  | 'questionType'
109
+ | 'name'
104
110
  | 'question'
105
111
  | 'shortDescription'
106
112
  | 'hintText'