@defra/forms-model 3.0.570 → 3.0.571
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.
- package/dist/module/form/form-definition/index.js +20 -1
 - package/dist/module/form/form-definition/index.js.map +1 -1
 - package/dist/module/form/form-manager/types.js +5 -0
 - package/dist/module/form/form-manager/types.js.map +1 -1
 - package/dist/types/form/form-definition/index.d.ts +2 -1
 - package/dist/types/form/form-definition/index.d.ts.map +1 -1
 - package/dist/types/form/form-manager/types.d.ts +1 -0
 - package/dist/types/form/form-manager/types.d.ts.map +1 -1
 - package/package.json +1 -1
 - package/schemas/component-schema-v2.json +27 -0
 - package/schemas/component-schema.json +27 -0
 - package/schemas/form-definition-schema.json +81 -0
 - package/schemas/form-definition-v2-schema.json +135 -0
 - package/schemas/list-schema-v2.json +54 -0
 - package/schemas/list-schema.json +54 -0
 - package/schemas/page-schema-v2.json +81 -0
 - package/schemas/page-schema.json +27 -0
 - package/src/form/form-definition/index.ts +28 -1
 - package/src/form/form-manager/types.ts +5 -0
 
| 
         @@ -167,6 +167,17 @@ export const conditionWrapperSchemaV2 = Joi.object().description('Container for 
     | 
|
| 
       167 
167 
     | 
    
         
             
                otherwise: conditionRefDataSchemaV2
         
     | 
| 
       168 
168 
     | 
    
         
             
              })).min(1).max(15).description('Array of conditions or condition references')
         
     | 
| 
       169 
169 
     | 
    
         
             
            }).description('Condition schema for V2 forms');
         
     | 
| 
      
 170 
     | 
    
         
            +
            export const regexCustomValidator = (value, helpers) => {
         
     | 
| 
      
 171 
     | 
    
         
            +
              try {
         
     | 
| 
      
 172 
     | 
    
         
            +
                const _regex = new RegExp(value);
         
     | 
| 
      
 173 
     | 
    
         
            +
              } catch {
         
     | 
| 
      
 174 
     | 
    
         
            +
                return helpers.error('custom.incompatible', {
         
     | 
| 
      
 175 
     | 
    
         
            +
                  errorType: FormDefinitionErrorType.Incompatible,
         
     | 
| 
      
 176 
     | 
    
         
            +
                  errorCode: FormDefinitionError.IncompatibleQuestionRegex
         
     | 
| 
      
 177 
     | 
    
         
            +
                });
         
     | 
| 
      
 178 
     | 
    
         
            +
              }
         
     | 
| 
      
 179 
     | 
    
         
            +
              return value;
         
     | 
| 
      
 180 
     | 
    
         
            +
            };
         
     | 
| 
       170 
181 
     | 
    
         
             
            export const componentSchema = Joi.object().description('Form component definition specifying UI element behavior').keys({
         
     | 
| 
       171 
182 
     | 
    
         
             
              id: idSchemaOptional.description('Unique identifier for the component'),
         
     | 
| 
       172 
183 
     | 
    
         
             
              type: Joi.string().trim().required().description('Component type (TextField, RadioButtons, DateField, etc.)'),
         
     | 
| 
         @@ -193,7 +204,15 @@ export const componentSchema = Joi.object().description('Form component definiti 
     | 
|
| 
       193 
204 
     | 
    
         
             
              schema: Joi.object({
         
     | 
| 
       194 
205 
     | 
    
         
             
                min: Joi.number().empty('').description('Minimum value or length for validation'),
         
     | 
| 
       195 
206 
     | 
    
         
             
                max: Joi.number().empty('').description('Maximum value or length for validation'),
         
     | 
| 
       196 
     | 
    
         
            -
                length: Joi.number().empty('').description('Exact length required for validation')
         
     | 
| 
      
 207 
     | 
    
         
            +
                length: Joi.number().empty('').description('Exact length required for validation'),
         
     | 
| 
      
 208 
     | 
    
         
            +
                regex: Joi.when('type', {
         
     | 
| 
      
 209 
     | 
    
         
            +
                  is: Joi.string().valid(ComponentType.TextField, ComponentType.MultilineTextField),
         
     | 
| 
      
 210 
     | 
    
         
            +
                  then: Joi.string() // NOSONAR
         
     | 
| 
      
 211 
     | 
    
         
            +
                  .trim().optional().description('Regex expression for validation of user field content').custom(regexCustomValidator),
         
     | 
| 
      
 212 
     | 
    
         
            +
                  otherwise: Joi.string().allow('')
         
     | 
| 
      
 213 
     | 
    
         
            +
                }).messages({
         
     | 
| 
      
 214 
     | 
    
         
            +
                  'custom.incompatible': 'The regex expression is invalid'
         
     | 
| 
      
 215 
     | 
    
         
            +
                })
         
     | 
| 
       197 
216 
     | 
    
         
             
              }).unknown(true).default({}).description('Validation rules for the component'),
         
     | 
| 
       198 
217 
     | 
    
         
             
              list: Joi.string().trim().optional().description('Reference to a predefined list of options for select components')
         
     | 
| 
       199 
218 
     | 
    
         
             
            }).unknown(true);
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"index.js","names":["JoiDate","JoiBase","v4","uuidV4","ComponentType","isConditionalType","ConditionType","OperatorName","isFormDefinition","SchemaVersion","checkErrors","FormDefinitionError","FormDefinitionErrorType","ControllerType","hasComponents","hasComponentsEvenIfNoNext","Joi","extend","idSchemaOptional","string","uuid","idSchema","default","conditionIdRef","ref","in","adjust","conditions","map","condition","id","componentIdRefSchema","pages","flatMap","page","components","filter","component","listIdRef","lists","list","listItemIdRef","items","item","sectionsSchema","object","description","keys","name","trim","required","title","hideTitle","boolean","optional","conditionFieldSchema","type","display","conditionValueSchema","value","conditionListItemRefDataSchemaV2","listId","when","is","exist","then","valid","error","RefConditionListId","itemId","RefConditionItemId","relativeDateValueDataSchemaV2","period","number","integer","positive","unit","direction","relativeDateValueDataSchema","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionRefDataSchemaV2","conditionId","RefConditionConditionId","conditionSchema","field","operator","alternatives","try","MIN_NUMBER_OF_REPEAT_ITEMS","MAX_NUMBER_OF_REPEAT_ITEMS","conditionDataSchemaV2","componentId","RefConditionComponentId","Object","values","any","switch","BooleanValue","StringValue","NumberValue","DateValue","date","format","raw","ListItemRef","RelativeDate","custom","helpers","definition","state","ancestors","find","foundComponents","comp","undefined","Boolean","foundComponentHandlesConditions","length","incompatibleObject","key","valueKey","errorType","Incompatible","errorCode","IncompatibleConditionComponentType","reason","messages","conditionGroupSchema","array","link","conditionsModelSchema","conditionWrapperSchema","displayName","conditionWrapperSchemaV2","min","conditional","otherwise","max","componentSchema","shortDescription","Details","Html","InsetText","Markdown","pattern","allow","hint","options","rows","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","componentSchemaV2","RefPageComponentList","componentPayloadSchemaV2","fileUploadComponentSchema","FileUploadField","contentComponentSchema","List","nextSchema","path","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageUploadComponentsSchema","unique","ignoreUndefined","pageSchema","disallow","section","controller","repeat","strip","next","events","view","pageSchemaV2","append","FileUpload","UniquePageComponentId","UniquePageComponentName","RefPageCondition","pagePayloadSchemaV2","baseListItemSchema","text","stringListItemSchema","numberListItemSchema","listSchema","UniqueListItemId","UniqueListItemText","UniqueListItemValue","listSchemaV2","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","V1","feedback","startPage","sections","UniqueSectionName","UniqueSectionTitle","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","output","outputs","formDefinitionV2Schema","V2","UniquePageId","UniquePagePath","UniqueListId","UniqueListName","UniqueListTitle","UniqueConditionId","UniqueConditionDisplayName","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import JoiDate from '@joi/date'\nimport JoiBase, { type CustomHelpers, type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType } from '~/src/components/helpers.js'\nimport {\n  type ComponentDef,\n  type ContentComponentsDef,\n  type FileUploadFieldComponent\n} from '~/src/components/types.js'\nimport { ConditionType, OperatorName } from '~/src/conditions/enums.js'\nimport {\n  type ConditionData,\n  type ConditionDataV2,\n  type ConditionFieldData,\n  type ConditionGroupData,\n  type ConditionGroupDataV2,\n  type ConditionListItemRefValueDataV2,\n  type ConditionRefData,\n  type ConditionRefDataV2,\n  type ConditionValueData,\n  type ConditionsModelData,\n  type RelativeDateValueData,\n  type RelativeDateValueDataV2\n} from '~/src/conditions/types.js'\nimport { isFormDefinition } from '~/src/form/form-definition/helpers.js'\nimport {\n  SchemaVersion,\n  type ConditionWrapper,\n  type ConditionWrapperV2,\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'\nimport { checkErrors } from '~/src/form/form-manager/errors.js'\nimport {\n  FormDefinitionError,\n  FormDefinitionErrorType\n} from '~/src/form/form-manager/types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport {\n  hasComponents,\n  hasComponentsEvenIfNoNext\n} from '~/src/pages/helpers.js'\n\nconst Joi = JoiBase.extend(JoiDate) as JoiBase.Root\n\nconst idSchemaOptional = Joi.string().uuid()\n\nconst idSchema = idSchemaOptional.default(() => uuidV4())\n\nconst conditionIdRef = Joi.ref('/conditions', {\n  in: true,\n  adjust: (conditions: ConditionWrapperV2[]) =>\n    conditions.map((condition) => condition.id)\n})\n\nconst componentIdRefSchema = Joi.ref('/pages', {\n  in: true,\n  adjust: (pages: Page[]) =>\n    pages.flatMap((page) =>\n      hasComponents(page)\n        ? page.components\n            .filter((component) => component.id)\n            .map((component) => component.id)\n        : []\n    )\n})\n\nconst listIdRef = Joi.ref('/lists', {\n  in: true,\n  adjust: (lists: List[]) =>\n    lists.filter((list) => list.id).map((list) => list.id)\n})\n\nconst listItemIdRef = Joi.ref('/lists', {\n  in: true,\n  adjust: (lists: List[]) =>\n    lists.flatMap((list) =>\n      list.items.filter((item) => item.id).map((item) => item.id)\n    )\n})\n\nconst sectionsSchema = Joi.object<Section>()\n  .description('A form section grouping related pages together')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description(\n        'Unique identifier for the section, used in code and page references'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable section title displayed to users'),\n    hideTitle: Joi.boolean()\n      .optional()\n      .default(false)\n      .description(\n        'When true, the section title will not be displayed in the UI'\n      )\n  })\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>()\n  .description('Field reference used in a condition')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Component name referenced by this condition'),\n    type: Joi.string()\n      .trim()\n      .required()\n      .description('Data type of the field (e.g., string, number, date)'),\n    display: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable name of the field for display purposes')\n  })\n\nconst conditionValueSchema = Joi.object<ConditionValueData>()\n  .description('Value specification for a condition')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .required()\n      .description('Data type of the value (e.g., string, number, date)'),\n    value: Joi.string()\n      .trim()\n      .required()\n      .description('The actual value to compare against'),\n    display: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable version of the value for display purposes')\n  })\n\nconst conditionListItemRefDataSchemaV2 =\n  Joi.object<ConditionListItemRefValueDataV2>()\n    .description('List item ref specification for a condition')\n    .keys({\n      listId: Joi.string()\n        .trim()\n        .required()\n        .when('/lists', {\n          is: Joi.exist(),\n          then: Joi.valid(listIdRef)\n        })\n        .description('The id of the list')\n        .error(checkErrors(FormDefinitionError.RefConditionListId)),\n      itemId: Joi.string()\n        .trim()\n        .when('/lists', {\n          is: Joi.exist(),\n          then: Joi.valid(listItemIdRef)\n        })\n        .required()\n        .description('The id of the list item')\n        .error(checkErrors(FormDefinitionError.RefConditionItemId))\n    })\n\nconst relativeDateValueDataSchemaV2 = Joi.object<RelativeDateValueDataV2>()\n  .description('Relative date specification for date-based conditions')\n  .keys({\n    period: Joi.number()\n      .integer()\n      .positive()\n      .required()\n      .description('Numeric amount of the time period, as a string'),\n    unit: Joi.string()\n      .trim()\n      .required()\n      .description('Time unit (e.g. days, weeks, months, years)'),\n    direction: Joi.string()\n      .trim()\n      .required()\n      .description('Temporal direction, either \"past\" or \"future\"')\n  })\n\nconst relativeDateValueDataSchema = Joi.object<RelativeDateValueData>()\n  .description('Relative date specification for date-based conditions')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .valid('RelativeDate')\n      .required()\n      .description('Type of the condition value, should be \"RelativeDate\"'),\n    period: Joi.string()\n      .trim()\n      .required()\n      .description('Numeric amount of the time period, as a string'),\n    unit: Joi.string()\n      .trim()\n      .required()\n      .description('Time unit (e.g. days, weeks, months, years)'),\n    direction: Joi.string()\n      .trim()\n      .required()\n      .description('Temporal direction, either \"past\" or \"future\"')\n  })\n\nconst conditionRefSchema = Joi.object<ConditionRefData>()\n  .description('Reference to a named condition defined elsewhere')\n  .keys({\n    conditionName: Joi.string()\n      .trim()\n      .required()\n      .description('Name of the referenced condition'),\n    conditionDisplayName: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable name of the condition for display purposes'),\n    coordinator: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      )\n  })\n\nconst conditionRefDataSchemaV2 = Joi.object<ConditionRefDataV2>()\n  .description('Reference to a named condition defined elsewhere')\n  .keys({\n    id: idSchema.description('Unique identifier for the referenced condition'),\n    conditionId: Joi.string()\n      .trim()\n      .required()\n      .when('/conditions', {\n        is: Joi.exist(),\n        then: Joi.valid(conditionIdRef)\n      })\n      .description('Name of the referenced condition')\n      .error(checkErrors(FormDefinitionError.RefConditionConditionId))\n  })\n\nconst conditionSchema = Joi.object<ConditionData>()\n  .description('Condition definition specifying a logical comparison')\n  .keys({\n    field: conditionFieldSchema.description(\n      'The form field being evaluated in this condition'\n    ),\n    operator: Joi.string()\n      .trim()\n      .required()\n      .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n    value: Joi.alternatives()\n      .try(conditionValueSchema, relativeDateValueDataSchema)\n      .description(\n        'Value to compare the field against, either fixed or relative date'\n      ),\n    coordinator: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      )\n  })\n\nexport const MIN_NUMBER_OF_REPEAT_ITEMS = 1\nexport const MAX_NUMBER_OF_REPEAT_ITEMS = 200\n\nexport const conditionDataSchemaV2 = Joi.object<ConditionDataV2>()\n  .description('Condition definition')\n  .keys({\n    id: idSchema.description(\n      'Unique identifier used to reference this condition'\n    ),\n    componentId: Joi.string()\n      .trim()\n      .required()\n      .when('/pages', {\n        is: Joi.exist(),\n        then: Joi.valid(componentIdRefSchema)\n      })\n      .description(\n        'Reference to the component id being evaluated in this condition'\n      )\n      .error(checkErrors(FormDefinitionError.RefConditionComponentId)),\n    operator: Joi.string()\n      .trim()\n      .valid(...Object.values(OperatorName))\n      .required()\n      .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n    type: Joi.string()\n      .trim()\n      .valid(...Object.values(ConditionType))\n      .required()\n      .description('Type of the condition value'),\n    value: Joi.any()\n      .required()\n      .description('The actual value to compare against')\n      .when('type', {\n        switch: [\n          { is: ConditionType.BooleanValue, then: Joi.boolean() },\n          { is: ConditionType.StringValue, then: Joi.string() },\n          { is: ConditionType.NumberValue, then: Joi.number() },\n          {\n            is: ConditionType.DateValue,\n            then: Joi.date().format('YYYY-MM-DD').raw()\n          },\n          {\n            is: ConditionType.ListItemRef,\n            then: conditionListItemRefDataSchemaV2\n          },\n          {\n            is: ConditionType.RelativeDate,\n            then: relativeDateValueDataSchemaV2\n          }\n        ]\n      })\n      .description(\n        'Value to compare the field against, either fixed or relative date'\n      )\n  })\n  .custom((value: ConditionDataV2, helpers: CustomHelpers<ConditionDataV2>) => {\n    const { componentId } = value\n    const definition = helpers.state.ancestors.find(isFormDefinition) as\n      | FormDefinition\n      | undefined\n\n    // Validation may not have been fired on the full FormDefinition\n    // therefore we are unable to verify at this point, but the 'save'\n    // will eventually validate the full FormDefinition\n    if (!definition) {\n      return value\n    }\n\n    const foundComponents = definition.pages\n      .map((page) =>\n        hasComponentsEvenIfNoNext(page)\n          ? page.components.find((comp) => comp.id === componentId)\n          : undefined\n      )\n      .filter(Boolean)\n\n    const foundComponentHandlesConditions = foundComponents.length\n      ? isConditionalType(foundComponents[0]?.type)\n      : false\n\n    return foundComponentHandlesConditions\n      ? value\n      : helpers.error('custom.incompatible', {\n          incompatibleObject: {\n            key: 'type',\n            value: foundComponents[0]\n          },\n          valueKey: 'componentId',\n          value: componentId,\n          errorType: FormDefinitionErrorType.Incompatible,\n          errorCode: FormDefinitionError.IncompatibleConditionComponentType,\n          reason: 'does not support conditions'\n        })\n  })\n  .messages({\n    'custom.incompatible': 'Incompatible data value'\n  })\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n  .description('Group of conditions combined with logical operators')\n  .keys({\n    conditions: Joi.array()\n      .items(\n        Joi.alternatives().try(\n          conditionSchema,\n          conditionRefSchema,\n          Joi.link('#conditionGroupSchema')\n        )\n      )\n      .description('Array of conditions or condition references in this group')\n  })\n  .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>()\n  .description('Complete condition model with name and condition set')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Unique identifier for the condition set'),\n    conditions: Joi.array()\n      .items(\n        Joi.alternatives().try(\n          conditionSchema,\n          conditionRefSchema,\n          conditionGroupSchema\n        )\n      )\n      .description(\n        'Array of conditions, condition references, or condition groups'\n      )\n  })\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>()\n  .description('Container for a named condition with its definition')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Unique identifier used to reference this condition'),\n    displayName: Joi.string()\n      .trim()\n      .description('Human-readable name for display in the UI'),\n    value: conditionsModelSchema\n      .required()\n      .description('The complete condition definition')\n  })\n\nexport const conditionWrapperSchemaV2 = Joi.object<ConditionWrapperV2>()\n  .description('Container for a named condition with its definition')\n  .keys({\n    id: idSchema.description('Unique identifier for the condition'),\n    displayName: Joi.string()\n      .trim()\n      .description('Human-readable name for display in the UI'),\n    coordinator: Joi.string()\n      .optional()\n      .when('items', { is: Joi.array().min(2), then: Joi.required() })\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      ),\n    items: Joi.array<ConditionGroupDataV2>()\n      .items(\n        Joi.alternatives().conditional('.componentId', {\n          is: Joi.exist(),\n          then: conditionDataSchemaV2,\n          otherwise: conditionRefDataSchemaV2\n        })\n      )\n      .min(1)\n      .max(15)\n      .description('Array of conditions or condition references')\n  })\n  .description('Condition schema for V2 forms')\n\nexport const componentSchema = Joi.object<ComponentDef>()\n  .description('Form component definition specifying UI element behavior')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the component'),\n    type: Joi.string<ComponentType>()\n      .trim()\n      .required()\n      .description('Component type (TextField, RadioButtons, DateField, etc.)'),\n    shortDescription: Joi.string()\n      .trim()\n      .optional()\n      .description('Brief description of the component purpose'),\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        .trim()\n        .pattern(/^[a-zA-Z]+$/)\n        .optional()\n        .description('Optional identifier for display-only components'),\n      otherwise: Joi.string()\n        .trim()\n        .pattern(/^[a-zA-Z]+$/)\n        .required()\n        .description('Unique identifier for the component, used in form data')\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()\n        .trim()\n        .optional()\n        .description('Optional title for display-only components'),\n      otherwise: Joi.string()\n        .trim()\n        .allow('')\n        .description('Label displayed above the component')\n    }),\n    hint: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description(\n        'Additional guidance text displayed below the component title'\n      ),\n    options: Joi.object({\n      rows: Joi.number()\n        .empty('')\n        .description('Number of rows for textarea components'),\n      maxWords: Joi.number()\n        .empty('')\n        .description('Maximum number of words allowed in text inputs'),\n      maxDaysInPast: Joi.number()\n        .empty('')\n        .description('Maximum days in the past allowed for date inputs'),\n      maxDaysInFuture: Joi.number()\n        .empty('')\n        .description('Maximum days in the future allowed for date inputs'),\n      customValidationMessage: Joi.string()\n        .trim()\n        .allow('')\n        .description('Custom error message for validation failures'),\n      customValidationMessages: Joi.object<LanguageMessages>()\n        .unknown(true)\n        .optional()\n        .description('Custom error messages keyed by validation rule name')\n    })\n      .default({})\n      .unknown(true)\n      .description('Component-specific configuration options'),\n    schema: Joi.object({\n      min: Joi.number()\n        .empty('')\n        .description('Minimum value or length for validation'),\n      max: Joi.number()\n        .empty('')\n        .description('Maximum value or length for validation'),\n      length: Joi.number()\n        .empty('')\n        .description('Exact length required for validation')\n    })\n      .unknown(true)\n      .default({})\n      .description('Validation rules for the component'),\n    list: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Reference to a predefined list of options for select components'\n      )\n  })\n  .unknown(true)\n\nexport const componentSchemaV2 = componentSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the component'),\n    list: Joi.string()\n      .when('/lists', {\n        is: Joi.exist(),\n        then: Joi.valid(listIdRef)\n      })\n      .optional()\n      .description(\n        'List id reference to a predefined list of options for select components'\n      )\n      .error(checkErrors(FormDefinitionError.RefPageComponentList))\n  })\n  .description('Component schema for V2 forms')\n\nexport const componentPayloadSchemaV2 = componentSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the component'),\n    list: Joi.string()\n      .optional()\n      .description(\n        'List id reference to a predefined list of options for select components'\n      )\n  })\n  .description('Payload schema for component for V2 forms')\n\nexport const fileUploadComponentSchema = componentSchemaV2.keys({\n  type: Joi.string<ComponentType.FileUploadField>()\n    .trim()\n    .valid(ComponentType.FileUploadField)\n    .required()\n    .description('Component that can only be a FileUploadField')\n})\n\nexport const contentComponentSchema = componentSchemaV2.keys({\n  type: Joi.string<ComponentType>()\n    .trim()\n    .valid(ComponentType.Details)\n    .valid(ComponentType.Html)\n    .valid(ComponentType.Markdown)\n    .valid(ComponentType.InsetText)\n    .valid(ComponentType.List)\n    .required()\n    .description('Content only component type (Details, Html, Markdown, etc.)')\n})\n\nconst nextSchema = Joi.object<Link>()\n  .description('Navigation link defining where to go after completing a page')\n  .keys({\n    path: Joi.string()\n      .trim()\n      .required()\n      .description('The target page path to navigate to'),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description(\n        'Optional condition that determines if this path should be taken'\n      ),\n    redirect: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Optional external URL to redirect to instead of an internal page'\n      )\n  })\n\nconst repeatOptions = Joi.object<RepeatOptions>()\n  .description('Configuration options for a repeatable page section')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description(\n        'Identifier for the repeatable section, used in data structure'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Title displayed for each repeatable item')\n  })\n\nconst repeatSchema = Joi.object<RepeatSchema>()\n  .description('Validation rules for a repeatable section')\n  .keys({\n    min: Joi.number()\n      .empty('')\n      .min(MIN_NUMBER_OF_REPEAT_ITEMS)\n      .required()\n      .description('Minimum number of repetitions required'),\n    max: Joi.number()\n      .empty('')\n      .min(Joi.ref('min'))\n      .max(MAX_NUMBER_OF_REPEAT_ITEMS)\n      .required()\n      .description('Maximum number of repetitions allowed')\n  })\n\nexport const pageRepeatSchema = Joi.object<Repeat>()\n  .description('Complete configuration for a repeatable page')\n  .keys({\n    options: repeatOptions\n      .required()\n      .description('Display and identification options for the repetition'),\n    schema: repeatSchema\n      .required()\n      .description('Validation constraints for the number of repetitions')\n  })\n\nconst eventSchema = Joi.object<Event>()\n  .description('Event handler configuration for page lifecycle events')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .allow('http')\n      .required()\n      .description(\n        'Type of the event handler (currently only \"http\" supported)'\n      ),\n    options: Joi.object<EventOptions>()\n      .description('Options specific to the event handler type')\n      .keys({\n        method: Joi.string()\n          .trim()\n          .allow('POST')\n          .required()\n          .description('HTTP method to use for the request'),\n        url: Joi.string()\n          .trim()\n          .uri({ scheme: ['http', 'https'] })\n          .required()\n          .description('URL endpoint to call when the event fires')\n      })\n  })\n\nconst eventsSchema = Joi.object<Events>()\n  .description(\n    'Collection of event handlers for different page lifecycle events'\n  )\n  .keys({\n    onLoad: eventSchema\n      .optional()\n      .description('Event handler triggered when the page is loaded'),\n    onSave: eventSchema\n      .optional()\n      .description('Event handler triggered when the page data is saved')\n  })\n\nexport const pageUploadComponentsSchema = Joi.array<\n  FileUploadFieldComponent | ContentComponentsDef\n>()\n  .items(\n    fileUploadComponentSchema.required(),\n    contentComponentSchema.optional()\n  )\n  .unique('id')\n  .unique('name', { ignoreUndefined: true })\n  .min(1)\n  .max(2)\n  .description('Components allowed on Page Upload schema')\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>()\n  .description('Form page definition specifying content and behavior')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the page'),\n    path: Joi.string()\n      .trim()\n      .required()\n      .disallow('/status')\n      .description(\n        'URL path for this page, must not be the reserved \"/status\" path'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Page title displayed at the top of the page'),\n    section: Joi.string().trim().description('Section this page belongs to'),\n    controller: Joi.string()\n      .trim()\n      .optional()\n      .description('Custom controller class name for special page behavior'),\n    components: Joi.array<ComponentDef>()\n      .items(componentSchema)\n      .unique('name')\n      .description('UI components displayed on this page'),\n    repeat: Joi.when('controller', {\n      is: Joi.string().trim().valid('RepeatPageController').required(),\n      then: pageRepeatSchema\n        .required()\n        .description(\n          'Configuration for repeatable pages, required when using RepeatPageController'\n        ),\n      otherwise: Joi.any().strip()\n    }),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Optional condition that determines if this page is shown'),\n    next: Joi.array<Link>()\n      .items(nextSchema)\n      .default([])\n      .description('Possible navigation paths after this page'),\n    events: eventsSchema\n      .optional()\n      .description('Event handlers for page lifecycle events'),\n    view: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Optional custom view template to use for rendering this page'\n      )\n  })\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema\n  .append({\n    id: idSchema.description('Unique identifier for the page'),\n    title: Joi.string()\n      .trim()\n      .allow('')\n      .required()\n      .description(\n        'Page title displayed at the top of the page (with support for empty titles in V2)'\n      ),\n    components: Joi.when('controller', {\n      switch: [\n        {\n          is: Joi.string().trim().valid(ControllerType.FileUpload).required(),\n          then: pageUploadComponentsSchema\n        }\n      ],\n      otherwise: Joi.array<ComponentDef>()\n        .items(componentSchemaV2)\n        .unique('id')\n        .unique('name', { ignoreUndefined: true })\n        .description('Components schema for V2 forms')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniquePageComponentId,\n            FormDefinitionError.UniquePageComponentName\n          ])\n        )\n    }),\n    condition: Joi.string()\n      .trim()\n      .when('/conditions', {\n        is: Joi.exist(),\n        then: Joi.valid(conditionIdRef)\n      })\n      .optional()\n      .description('Optional condition that determines if this page is shown')\n      .error(checkErrors(FormDefinitionError.RefPageCondition))\n  })\n  .description('Page schema for V2 forms')\n\nexport const pagePayloadSchemaV2 = pageSchemaV2\n  .append({\n    components: Joi.when('controller', {\n      switch: [\n        {\n          is: Joi.string().trim().valid(ControllerType.FileUpload).required(),\n          then: pageUploadComponentsSchema\n        }\n      ],\n      otherwise: Joi.array<ComponentDef>()\n        .items(componentPayloadSchemaV2)\n        .unique('id')\n        .unique('name')\n        .description('Components schema for V2 forms')\n    })\n  })\n  .description('Payload Page schema for V2 forms')\n\nconst baseListItemSchema = Joi.object<Item>()\n  .description('Base schema for list items with common properties')\n  .keys({\n    id: idSchema.description('Unique identifier for the list item'),\n    text: Joi.string()\n      .trim()\n      .allow('')\n      .description('Display text shown to the user'),\n    description: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Optional additional descriptive text for the item'),\n    conditional: Joi.object<Item['conditional']>()\n      .description('Optional components to show when this item is selected')\n      .keys({\n        components: Joi.array<ComponentDef>()\n          .required()\n          .items(componentSchema.unknown(true))\n          .unique('name')\n          .description('Components to display conditionally')\n      })\n      .optional(),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Condition that determines if this item is shown'),\n    hint: Joi.object<Item['hint']>()\n      .optional()\n      .keys({\n        id: idSchema,\n        text: Joi.string().trim()\n      })\n      .description('Optional hint text to be shown on list item')\n  })\n\nconst stringListItemSchema = baseListItemSchema\n  .append({\n    value: Joi.string()\n      .trim()\n      .required()\n      .description('String value stored when this item is selected')\n  })\n  .description('List item with string value')\n\nconst numberListItemSchema = baseListItemSchema\n  .append({\n    value: Joi.number()\n      .required()\n      .description('Numeric value stored when this item is selected')\n  })\n  .description('List item with numeric value')\n\nexport const listSchema = Joi.object<List>()\n  .description('Reusable list of options for select components')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the list'),\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Name used to reference this list from components'),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable title for the list'),\n    type: Joi.string()\n      .trim()\n      .required()\n      .valid('string', 'number')\n      .description('Data type for list values (string or number)'),\n    items: Joi.when('type', {\n      is: 'string',\n      then: Joi.array()\n        .items(stringListItemSchema)\n        .unique('id')\n        .unique('text')\n        .unique('value')\n        .description('Array of items with string values')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniqueListItemId,\n            FormDefinitionError.UniqueListItemText,\n            FormDefinitionError.UniqueListItemValue\n          ])\n        ),\n      otherwise: Joi.array()\n        .items(numberListItemSchema)\n        .unique('id')\n        .unique('text')\n        .unique('value')\n        .description('Array of items with numeric values')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniqueListItemId,\n            FormDefinitionError.UniqueListItemText,\n            FormDefinitionError.UniqueListItemValue\n          ])\n        )\n    })\n  })\n\n/**\n * V2 Joi schema for Lists\n */\nexport const listSchemaV2 = listSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the list')\n  })\n  .description('List schema for V2 forms')\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>()\n  .description('Feedback configuration for the form')\n  .keys({\n    feedbackForm: Joi.boolean()\n      .default(false)\n      .description('Whether to show the built-in feedback form'),\n    url: Joi.when('feedbackForm', {\n      is: Joi.boolean().valid(false),\n      then: Joi.string()\n        .trim()\n        .optional()\n        .allow('')\n        .description(\n          'URL to an external feedback form when not using built-in feedback'\n        )\n    }),\n    emailAddress: Joi.string()\n      .trim()\n      .email({\n        tlds: {\n          allow: false\n        }\n      })\n      .optional()\n      .description('Email address where feedback is sent')\n  })\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>()\n  .description('Phase banner configuration showing development status')\n  .keys({\n    phase: Joi.string()\n      .trim()\n      .valid('alpha', 'beta')\n      .description('Development phase of the service (alpha or beta)')\n  })\n\nconst outputSchema = Joi.object<FormDefinition['output']>()\n  .description('Configuration for form submission output')\n  .keys({\n    audience: Joi.string()\n      .trim()\n      .valid('human', 'machine')\n      .required()\n      .description(\n        'Target audience for the output (human readable or machine processable)'\n      ),\n    version: Joi.string()\n      .trim()\n      .required()\n      .description('Version identifier for the output format')\n  })\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n  .description('Complete form definition describing all aspects of a form')\n  .required()\n  .keys({\n    engine: Joi.string()\n      .trim()\n      .allow('V1', 'V2')\n      .default('V1')\n      .description('Form engine version to use (V1 or V2)'),\n    schema: Joi.number()\n      .integer()\n      .valid(SchemaVersion.V1)\n      .default(SchemaVersion.V1)\n      .description('Form schema version to use (1 or 2)'),\n    name: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Unique name identifying the form'),\n    feedback: feedbackSchema\n      .optional()\n      .description('Feedback mechanism configuration'),\n    startPage: Joi.string()\n      .trim()\n      .optional()\n      .description('Path of the first page to show when starting the form'),\n    pages: Joi.array<Page>()\n      .required()\n      .items(pageSchema)\n      .description('Pages schema for V1 forms')\n      .unique('path'),\n    sections: Joi.array<Section>()\n      .items(sectionsSchema)\n      .unique('name')\n      .unique('title')\n      .required()\n      .description('Sections grouping related pages together')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueSectionName,\n          FormDefinitionError.UniqueSectionTitle\n        ])\n      ),\n    conditions: Joi.array<ConditionWrapper>()\n      .items(conditionWrapperSchema)\n      .unique('name')\n      .unique('displayName')\n      .description('Named conditions used for form logic'),\n    lists: Joi.array<List>()\n      .items(listSchema)\n      .unique('name')\n      .unique('title')\n      .description('Reusable lists of options for select components'),\n    metadata: Joi.object({ a: Joi.any() })\n      .unknown()\n      .optional()\n      .description('Custom metadata for the form'),\n    declaration: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Declaration text shown on the summary page'),\n    skipSummary: Joi.any()\n      .strip()\n      .description('option to skip the summary page'),\n    phaseBanner: phaseBannerSchema\n      .optional()\n      .description('Phase banner configuration'),\n    outputEmail: Joi.string()\n      .trim()\n      .email({ tlds: { allow: ['uk'] } })\n      .optional()\n      .description('Email address where form submissions are sent'),\n    output: outputSchema\n      .optional()\n      .description('Configuration for submission output format'),\n    outputs: Joi.array()\n      .items({\n        emailAddress: Joi.string()\n          .trim()\n          .email({ tlds: { allow: ['uk'] } })\n          .description('Email address where form submissions are sent'),\n        audience: Joi.string()\n          .trim()\n          .valid('human', 'machine')\n          .required()\n          .description(\n            'Target audience for the output (human readable or machine processable)'\n          ),\n        version: Joi.string()\n          .trim()\n          .required()\n          .description('Version identifier for the output format')\n      })\n      .optional()\n      .description('One or more email targets/types for submission emails')\n  })\n\nexport const formDefinitionV2Schema = formDefinitionSchema\n  .keys({\n    schema: Joi.number()\n      .integer()\n      .valid(SchemaVersion.V2)\n      .description('Form schema version to use (2)'),\n    pages: Joi.array<Page>()\n      .items(pageSchemaV2)\n      .required()\n      .unique('id')\n      .unique('path')\n      .description('Pages schema for V2 forms')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniquePageId,\n          FormDefinitionError.UniquePagePath\n        ])\n      ),\n    lists: Joi.array<List>()\n      .items(listSchemaV2)\n      .unique('id')\n      .unique('name')\n      .unique('title')\n      .description('Lists schema for V2 forms')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueListId,\n          FormDefinitionError.UniqueListName,\n          FormDefinitionError.UniqueListTitle\n        ])\n      ),\n    conditions: Joi.array<ConditionWrapperV2>()\n      .items(conditionWrapperSchemaV2)\n      .unique('id')\n      .unique('displayName')\n      .description('Named conditions used for form logic')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueConditionId,\n          FormDefinitionError.UniqueConditionDisplayName\n        ])\n      )\n  })\n  .description('Form definition schema for V2')\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":["JoiDate","JoiBase","v4","uuidV4","ComponentType","isConditionalType","ConditionType","OperatorName","isFormDefinition","SchemaVersion","checkErrors","FormDefinitionError","FormDefinitionErrorType","ControllerType","hasComponents","hasComponentsEvenIfNoNext","Joi","extend","idSchemaOptional","string","uuid","idSchema","default","conditionIdRef","ref","in","adjust","conditions","map","condition","id","componentIdRefSchema","pages","flatMap","page","components","filter","component","listIdRef","lists","list","listItemIdRef","items","item","sectionsSchema","object","description","keys","name","trim","required","title","hideTitle","boolean","optional","conditionFieldSchema","type","display","conditionValueSchema","value","conditionListItemRefDataSchemaV2","listId","when","is","exist","then","valid","error","RefConditionListId","itemId","RefConditionItemId","relativeDateValueDataSchemaV2","period","number","integer","positive","unit","direction","relativeDateValueDataSchema","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionRefDataSchemaV2","conditionId","RefConditionConditionId","conditionSchema","field","operator","alternatives","try","MIN_NUMBER_OF_REPEAT_ITEMS","MAX_NUMBER_OF_REPEAT_ITEMS","conditionDataSchemaV2","componentId","RefConditionComponentId","Object","values","any","switch","BooleanValue","StringValue","NumberValue","DateValue","date","format","raw","ListItemRef","RelativeDate","custom","helpers","definition","state","ancestors","find","foundComponents","comp","undefined","Boolean","foundComponentHandlesConditions","length","incompatibleObject","key","valueKey","errorType","Incompatible","errorCode","IncompatibleConditionComponentType","reason","messages","conditionGroupSchema","array","link","conditionsModelSchema","conditionWrapperSchema","displayName","conditionWrapperSchemaV2","min","conditional","otherwise","max","regexCustomValidator","_regex","RegExp","IncompatibleQuestionRegex","componentSchema","shortDescription","Details","Html","InsetText","Markdown","pattern","allow","hint","options","rows","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","regex","TextField","MultilineTextField","componentSchemaV2","RefPageComponentList","componentPayloadSchemaV2","fileUploadComponentSchema","FileUploadField","contentComponentSchema","List","nextSchema","path","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageUploadComponentsSchema","unique","ignoreUndefined","pageSchema","disallow","section","controller","repeat","strip","next","events","view","pageSchemaV2","append","FileUpload","UniquePageComponentId","UniquePageComponentName","RefPageCondition","pagePayloadSchemaV2","baseListItemSchema","text","stringListItemSchema","numberListItemSchema","listSchema","UniqueListItemId","UniqueListItemText","UniqueListItemValue","listSchemaV2","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","V1","feedback","startPage","sections","UniqueSectionName","UniqueSectionTitle","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","output","outputs","formDefinitionV2Schema","V2","UniquePageId","UniquePagePath","UniqueListId","UniqueListName","UniqueListTitle","UniqueConditionId","UniqueConditionDisplayName","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import JoiDate from '@joi/date'\nimport JoiBase, { type CustomHelpers, type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType } from '~/src/components/helpers.js'\nimport {\n  type ComponentDef,\n  type ContentComponentsDef,\n  type FileUploadFieldComponent\n} from '~/src/components/types.js'\nimport { ConditionType, OperatorName } from '~/src/conditions/enums.js'\nimport {\n  type ConditionData,\n  type ConditionDataV2,\n  type ConditionFieldData,\n  type ConditionGroupData,\n  type ConditionGroupDataV2,\n  type ConditionListItemRefValueDataV2,\n  type ConditionRefData,\n  type ConditionRefDataV2,\n  type ConditionValueData,\n  type ConditionsModelData,\n  type RelativeDateValueData,\n  type RelativeDateValueDataV2\n} from '~/src/conditions/types.js'\nimport { isFormDefinition } from '~/src/form/form-definition/helpers.js'\nimport {\n  SchemaVersion,\n  type ConditionWrapper,\n  type ConditionWrapperV2,\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'\nimport { checkErrors } from '~/src/form/form-manager/errors.js'\nimport {\n  FormDefinitionError,\n  FormDefinitionErrorType\n} from '~/src/form/form-manager/types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport {\n  hasComponents,\n  hasComponentsEvenIfNoNext\n} from '~/src/pages/helpers.js'\n\nconst Joi = JoiBase.extend(JoiDate) as JoiBase.Root\n\nconst idSchemaOptional = Joi.string().uuid()\n\nconst idSchema = idSchemaOptional.default(() => uuidV4())\n\nconst conditionIdRef = Joi.ref('/conditions', {\n  in: true,\n  adjust: (conditions: ConditionWrapperV2[]) =>\n    conditions.map((condition) => condition.id)\n})\n\nconst componentIdRefSchema = Joi.ref('/pages', {\n  in: true,\n  adjust: (pages: Page[]) =>\n    pages.flatMap((page) =>\n      hasComponents(page)\n        ? page.components\n            .filter((component) => component.id)\n            .map((component) => component.id)\n        : []\n    )\n})\n\nconst listIdRef = Joi.ref('/lists', {\n  in: true,\n  adjust: (lists: List[]) =>\n    lists.filter((list) => list.id).map((list) => list.id)\n})\n\nconst listItemIdRef = Joi.ref('/lists', {\n  in: true,\n  adjust: (lists: List[]) =>\n    lists.flatMap((list) =>\n      list.items.filter((item) => item.id).map((item) => item.id)\n    )\n})\n\nconst sectionsSchema = Joi.object<Section>()\n  .description('A form section grouping related pages together')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description(\n        'Unique identifier for the section, used in code and page references'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable section title displayed to users'),\n    hideTitle: Joi.boolean()\n      .optional()\n      .default(false)\n      .description(\n        'When true, the section title will not be displayed in the UI'\n      )\n  })\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>()\n  .description('Field reference used in a condition')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Component name referenced by this condition'),\n    type: Joi.string()\n      .trim()\n      .required()\n      .description('Data type of the field (e.g., string, number, date)'),\n    display: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable name of the field for display purposes')\n  })\n\nconst conditionValueSchema = Joi.object<ConditionValueData>()\n  .description('Value specification for a condition')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .required()\n      .description('Data type of the value (e.g., string, number, date)'),\n    value: Joi.string()\n      .trim()\n      .required()\n      .description('The actual value to compare against'),\n    display: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable version of the value for display purposes')\n  })\n\nconst conditionListItemRefDataSchemaV2 =\n  Joi.object<ConditionListItemRefValueDataV2>()\n    .description('List item ref specification for a condition')\n    .keys({\n      listId: Joi.string()\n        .trim()\n        .required()\n        .when('/lists', {\n          is: Joi.exist(),\n          then: Joi.valid(listIdRef)\n        })\n        .description('The id of the list')\n        .error(checkErrors(FormDefinitionError.RefConditionListId)),\n      itemId: Joi.string()\n        .trim()\n        .when('/lists', {\n          is: Joi.exist(),\n          then: Joi.valid(listItemIdRef)\n        })\n        .required()\n        .description('The id of the list item')\n        .error(checkErrors(FormDefinitionError.RefConditionItemId))\n    })\n\nconst relativeDateValueDataSchemaV2 = Joi.object<RelativeDateValueDataV2>()\n  .description('Relative date specification for date-based conditions')\n  .keys({\n    period: Joi.number()\n      .integer()\n      .positive()\n      .required()\n      .description('Numeric amount of the time period, as a string'),\n    unit: Joi.string()\n      .trim()\n      .required()\n      .description('Time unit (e.g. days, weeks, months, years)'),\n    direction: Joi.string()\n      .trim()\n      .required()\n      .description('Temporal direction, either \"past\" or \"future\"')\n  })\n\nconst relativeDateValueDataSchema = Joi.object<RelativeDateValueData>()\n  .description('Relative date specification for date-based conditions')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .valid('RelativeDate')\n      .required()\n      .description('Type of the condition value, should be \"RelativeDate\"'),\n    period: Joi.string()\n      .trim()\n      .required()\n      .description('Numeric amount of the time period, as a string'),\n    unit: Joi.string()\n      .trim()\n      .required()\n      .description('Time unit (e.g. days, weeks, months, years)'),\n    direction: Joi.string()\n      .trim()\n      .required()\n      .description('Temporal direction, either \"past\" or \"future\"')\n  })\n\nconst conditionRefSchema = Joi.object<ConditionRefData>()\n  .description('Reference to a named condition defined elsewhere')\n  .keys({\n    conditionName: Joi.string()\n      .trim()\n      .required()\n      .description('Name of the referenced condition'),\n    conditionDisplayName: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable name of the condition for display purposes'),\n    coordinator: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      )\n  })\n\nconst conditionRefDataSchemaV2 = Joi.object<ConditionRefDataV2>()\n  .description('Reference to a named condition defined elsewhere')\n  .keys({\n    id: idSchema.description('Unique identifier for the referenced condition'),\n    conditionId: Joi.string()\n      .trim()\n      .required()\n      .when('/conditions', {\n        is: Joi.exist(),\n        then: Joi.valid(conditionIdRef)\n      })\n      .description('Name of the referenced condition')\n      .error(checkErrors(FormDefinitionError.RefConditionConditionId))\n  })\n\nconst conditionSchema = Joi.object<ConditionData>()\n  .description('Condition definition specifying a logical comparison')\n  .keys({\n    field: conditionFieldSchema.description(\n      'The form field being evaluated in this condition'\n    ),\n    operator: Joi.string()\n      .trim()\n      .required()\n      .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n    value: Joi.alternatives()\n      .try(conditionValueSchema, relativeDateValueDataSchema)\n      .description(\n        'Value to compare the field against, either fixed or relative date'\n      ),\n    coordinator: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      )\n  })\n\nexport const MIN_NUMBER_OF_REPEAT_ITEMS = 1\nexport const MAX_NUMBER_OF_REPEAT_ITEMS = 200\n\nexport const conditionDataSchemaV2 = Joi.object<ConditionDataV2>()\n  .description('Condition definition')\n  .keys({\n    id: idSchema.description(\n      'Unique identifier used to reference this condition'\n    ),\n    componentId: Joi.string()\n      .trim()\n      .required()\n      .when('/pages', {\n        is: Joi.exist(),\n        then: Joi.valid(componentIdRefSchema)\n      })\n      .description(\n        'Reference to the component id being evaluated in this condition'\n      )\n      .error(checkErrors(FormDefinitionError.RefConditionComponentId)),\n    operator: Joi.string()\n      .trim()\n      .valid(...Object.values(OperatorName))\n      .required()\n      .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n    type: Joi.string()\n      .trim()\n      .valid(...Object.values(ConditionType))\n      .required()\n      .description('Type of the condition value'),\n    value: Joi.any()\n      .required()\n      .description('The actual value to compare against')\n      .when('type', {\n        switch: [\n          { is: ConditionType.BooleanValue, then: Joi.boolean() },\n          { is: ConditionType.StringValue, then: Joi.string() },\n          { is: ConditionType.NumberValue, then: Joi.number() },\n          {\n            is: ConditionType.DateValue,\n            then: Joi.date().format('YYYY-MM-DD').raw()\n          },\n          {\n            is: ConditionType.ListItemRef,\n            then: conditionListItemRefDataSchemaV2\n          },\n          {\n            is: ConditionType.RelativeDate,\n            then: relativeDateValueDataSchemaV2\n          }\n        ]\n      })\n      .description(\n        'Value to compare the field against, either fixed or relative date'\n      )\n  })\n  .custom((value: ConditionDataV2, helpers: CustomHelpers<ConditionDataV2>) => {\n    const { componentId } = value\n    const definition = helpers.state.ancestors.find(isFormDefinition) as\n      | FormDefinition\n      | undefined\n\n    // Validation may not have been fired on the full FormDefinition\n    // therefore we are unable to verify at this point, but the 'save'\n    // will eventually validate the full FormDefinition\n    if (!definition) {\n      return value\n    }\n\n    const foundComponents = definition.pages\n      .map((page) =>\n        hasComponentsEvenIfNoNext(page)\n          ? page.components.find((comp) => comp.id === componentId)\n          : undefined\n      )\n      .filter(Boolean)\n\n    const foundComponentHandlesConditions = foundComponents.length\n      ? isConditionalType(foundComponents[0]?.type)\n      : false\n\n    return foundComponentHandlesConditions\n      ? value\n      : helpers.error('custom.incompatible', {\n          incompatibleObject: {\n            key: 'type',\n            value: foundComponents[0]\n          },\n          valueKey: 'componentId',\n          value: componentId,\n          errorType: FormDefinitionErrorType.Incompatible,\n          errorCode: FormDefinitionError.IncompatibleConditionComponentType,\n          reason: 'does not support conditions'\n        })\n  })\n  .messages({\n    'custom.incompatible': 'Incompatible data value'\n  })\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n  .description('Group of conditions combined with logical operators')\n  .keys({\n    conditions: Joi.array()\n      .items(\n        Joi.alternatives().try(\n          conditionSchema,\n          conditionRefSchema,\n          Joi.link('#conditionGroupSchema')\n        )\n      )\n      .description('Array of conditions or condition references in this group')\n  })\n  .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>()\n  .description('Complete condition model with name and condition set')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Unique identifier for the condition set'),\n    conditions: Joi.array()\n      .items(\n        Joi.alternatives().try(\n          conditionSchema,\n          conditionRefSchema,\n          conditionGroupSchema\n        )\n      )\n      .description(\n        'Array of conditions, condition references, or condition groups'\n      )\n  })\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>()\n  .description('Container for a named condition with its definition')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Unique identifier used to reference this condition'),\n    displayName: Joi.string()\n      .trim()\n      .description('Human-readable name for display in the UI'),\n    value: conditionsModelSchema\n      .required()\n      .description('The complete condition definition')\n  })\n\nexport const conditionWrapperSchemaV2 = Joi.object<ConditionWrapperV2>()\n  .description('Container for a named condition with its definition')\n  .keys({\n    id: idSchema.description('Unique identifier for the condition'),\n    displayName: Joi.string()\n      .trim()\n      .description('Human-readable name for display in the UI'),\n    coordinator: Joi.string()\n      .optional()\n      .when('items', { is: Joi.array().min(2), then: Joi.required() })\n      .description(\n        'Logical operator connecting this condition with others (AND, OR)'\n      ),\n    items: Joi.array<ConditionGroupDataV2>()\n      .items(\n        Joi.alternatives().conditional('.componentId', {\n          is: Joi.exist(),\n          then: conditionDataSchemaV2,\n          otherwise: conditionRefDataSchemaV2\n        })\n      )\n      .min(1)\n      .max(15)\n      .description('Array of conditions or condition references')\n  })\n  .description('Condition schema for V2 forms')\n\nexport const regexCustomValidator = (\n  value: string,\n  helpers: CustomHelpers<string>\n) => {\n  try {\n    const _regex = new RegExp(value)\n  } catch {\n    return helpers.error('custom.incompatible', {\n      errorType: FormDefinitionErrorType.Incompatible,\n      errorCode: FormDefinitionError.IncompatibleQuestionRegex\n    })\n  }\n  return value\n}\n\nexport const componentSchema = Joi.object<ComponentDef>()\n  .description('Form component definition specifying UI element behavior')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the component'),\n    type: Joi.string<ComponentType>()\n      .trim()\n      .required()\n      .description('Component type (TextField, RadioButtons, DateField, etc.)'),\n    shortDescription: Joi.string()\n      .trim()\n      .optional()\n      .description('Brief description of the component purpose'),\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        .trim()\n        .pattern(/^[a-zA-Z]+$/)\n        .optional()\n        .description('Optional identifier for display-only components'),\n      otherwise: Joi.string()\n        .trim()\n        .pattern(/^[a-zA-Z]+$/)\n        .required()\n        .description('Unique identifier for the component, used in form data')\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()\n        .trim()\n        .optional()\n        .description('Optional title for display-only components'),\n      otherwise: Joi.string()\n        .trim()\n        .allow('')\n        .description('Label displayed above the component')\n    }),\n    hint: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description(\n        'Additional guidance text displayed below the component title'\n      ),\n    options: Joi.object({\n      rows: Joi.number()\n        .empty('')\n        .description('Number of rows for textarea components'),\n      maxWords: Joi.number()\n        .empty('')\n        .description('Maximum number of words allowed in text inputs'),\n      maxDaysInPast: Joi.number()\n        .empty('')\n        .description('Maximum days in the past allowed for date inputs'),\n      maxDaysInFuture: Joi.number()\n        .empty('')\n        .description('Maximum days in the future allowed for date inputs'),\n      customValidationMessage: Joi.string()\n        .trim()\n        .allow('')\n        .description('Custom error message for validation failures'),\n      customValidationMessages: Joi.object<LanguageMessages>()\n        .unknown(true)\n        .optional()\n        .description('Custom error messages keyed by validation rule name')\n    })\n      .default({})\n      .unknown(true)\n      .description('Component-specific configuration options'),\n    schema: Joi.object({\n      min: Joi.number()\n        .empty('')\n        .description('Minimum value or length for validation'),\n      max: Joi.number()\n        .empty('')\n        .description('Maximum value or length for validation'),\n      length: Joi.number()\n        .empty('')\n        .description('Exact length required for validation'),\n      regex: Joi.when('type', {\n        is: Joi.string().valid(\n          ComponentType.TextField,\n          ComponentType.MultilineTextField\n        ),\n        then: Joi.string() // NOSONAR\n          .trim()\n          .optional()\n          .description('Regex expression for validation of user field content')\n          .custom(regexCustomValidator),\n        otherwise: Joi.string().allow('')\n      }).messages({ 'custom.incompatible': 'The regex expression is invalid' })\n    })\n      .unknown(true)\n      .default({})\n      .description('Validation rules for the component'),\n    list: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Reference to a predefined list of options for select components'\n      )\n  })\n  .unknown(true)\n\nexport const componentSchemaV2 = componentSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the component'),\n    list: Joi.string()\n      .when('/lists', {\n        is: Joi.exist(),\n        then: Joi.valid(listIdRef)\n      })\n      .optional()\n      .description(\n        'List id reference to a predefined list of options for select components'\n      )\n      .error(checkErrors(FormDefinitionError.RefPageComponentList))\n  })\n  .description('Component schema for V2 forms')\n\nexport const componentPayloadSchemaV2 = componentSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the component'),\n    list: Joi.string()\n      .optional()\n      .description(\n        'List id reference to a predefined list of options for select components'\n      )\n  })\n  .description('Payload schema for component for V2 forms')\n\nexport const fileUploadComponentSchema = componentSchemaV2.keys({\n  type: Joi.string<ComponentType.FileUploadField>()\n    .trim()\n    .valid(ComponentType.FileUploadField)\n    .required()\n    .description('Component that can only be a FileUploadField')\n})\n\nexport const contentComponentSchema = componentSchemaV2.keys({\n  type: Joi.string<ComponentType>()\n    .trim()\n    .valid(ComponentType.Details)\n    .valid(ComponentType.Html)\n    .valid(ComponentType.Markdown)\n    .valid(ComponentType.InsetText)\n    .valid(ComponentType.List)\n    .required()\n    .description('Content only component type (Details, Html, Markdown, etc.)')\n})\n\nconst nextSchema = Joi.object<Link>()\n  .description('Navigation link defining where to go after completing a page')\n  .keys({\n    path: Joi.string()\n      .trim()\n      .required()\n      .description('The target page path to navigate to'),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description(\n        'Optional condition that determines if this path should be taken'\n      ),\n    redirect: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Optional external URL to redirect to instead of an internal page'\n      )\n  })\n\nconst repeatOptions = Joi.object<RepeatOptions>()\n  .description('Configuration options for a repeatable page section')\n  .keys({\n    name: Joi.string()\n      .trim()\n      .required()\n      .description(\n        'Identifier for the repeatable section, used in data structure'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Title displayed for each repeatable item')\n  })\n\nconst repeatSchema = Joi.object<RepeatSchema>()\n  .description('Validation rules for a repeatable section')\n  .keys({\n    min: Joi.number()\n      .empty('')\n      .min(MIN_NUMBER_OF_REPEAT_ITEMS)\n      .required()\n      .description('Minimum number of repetitions required'),\n    max: Joi.number()\n      .empty('')\n      .min(Joi.ref('min'))\n      .max(MAX_NUMBER_OF_REPEAT_ITEMS)\n      .required()\n      .description('Maximum number of repetitions allowed')\n  })\n\nexport const pageRepeatSchema = Joi.object<Repeat>()\n  .description('Complete configuration for a repeatable page')\n  .keys({\n    options: repeatOptions\n      .required()\n      .description('Display and identification options for the repetition'),\n    schema: repeatSchema\n      .required()\n      .description('Validation constraints for the number of repetitions')\n  })\n\nconst eventSchema = Joi.object<Event>()\n  .description('Event handler configuration for page lifecycle events')\n  .keys({\n    type: Joi.string()\n      .trim()\n      .allow('http')\n      .required()\n      .description(\n        'Type of the event handler (currently only \"http\" supported)'\n      ),\n    options: Joi.object<EventOptions>()\n      .description('Options specific to the event handler type')\n      .keys({\n        method: Joi.string()\n          .trim()\n          .allow('POST')\n          .required()\n          .description('HTTP method to use for the request'),\n        url: Joi.string()\n          .trim()\n          .uri({ scheme: ['http', 'https'] })\n          .required()\n          .description('URL endpoint to call when the event fires')\n      })\n  })\n\nconst eventsSchema = Joi.object<Events>()\n  .description(\n    'Collection of event handlers for different page lifecycle events'\n  )\n  .keys({\n    onLoad: eventSchema\n      .optional()\n      .description('Event handler triggered when the page is loaded'),\n    onSave: eventSchema\n      .optional()\n      .description('Event handler triggered when the page data is saved')\n  })\n\nexport const pageUploadComponentsSchema = Joi.array<\n  FileUploadFieldComponent | ContentComponentsDef\n>()\n  .items(\n    fileUploadComponentSchema.required(),\n    contentComponentSchema.optional()\n  )\n  .unique('id')\n  .unique('name', { ignoreUndefined: true })\n  .min(1)\n  .max(2)\n  .description('Components allowed on Page Upload schema')\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>()\n  .description('Form page definition specifying content and behavior')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the page'),\n    path: Joi.string()\n      .trim()\n      .required()\n      .disallow('/status')\n      .description(\n        'URL path for this page, must not be the reserved \"/status\" path'\n      ),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Page title displayed at the top of the page'),\n    section: Joi.string().trim().description('Section this page belongs to'),\n    controller: Joi.string()\n      .trim()\n      .optional()\n      .description('Custom controller class name for special page behavior'),\n    components: Joi.array<ComponentDef>()\n      .items(componentSchema)\n      .unique('name')\n      .description('UI components displayed on this page'),\n    repeat: Joi.when('controller', {\n      is: Joi.string().trim().valid('RepeatPageController').required(),\n      then: pageRepeatSchema\n        .required()\n        .description(\n          'Configuration for repeatable pages, required when using RepeatPageController'\n        ),\n      otherwise: Joi.any().strip()\n    }),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Optional condition that determines if this page is shown'),\n    next: Joi.array<Link>()\n      .items(nextSchema)\n      .default([])\n      .description('Possible navigation paths after this page'),\n    events: eventsSchema\n      .optional()\n      .description('Event handlers for page lifecycle events'),\n    view: Joi.string()\n      .trim()\n      .optional()\n      .description(\n        'Optional custom view template to use for rendering this page'\n      )\n  })\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema\n  .append({\n    id: idSchema.description('Unique identifier for the page'),\n    title: Joi.string()\n      .trim()\n      .allow('')\n      .required()\n      .description(\n        'Page title displayed at the top of the page (with support for empty titles in V2)'\n      ),\n    components: Joi.when('controller', {\n      switch: [\n        {\n          is: Joi.string().trim().valid(ControllerType.FileUpload).required(),\n          then: pageUploadComponentsSchema\n        }\n      ],\n      otherwise: Joi.array<ComponentDef>()\n        .items(componentSchemaV2)\n        .unique('id')\n        .unique('name', { ignoreUndefined: true })\n        .description('Components schema for V2 forms')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniquePageComponentId,\n            FormDefinitionError.UniquePageComponentName\n          ])\n        )\n    }),\n    condition: Joi.string()\n      .trim()\n      .when('/conditions', {\n        is: Joi.exist(),\n        then: Joi.valid(conditionIdRef)\n      })\n      .optional()\n      .description('Optional condition that determines if this page is shown')\n      .error(checkErrors(FormDefinitionError.RefPageCondition))\n  })\n  .description('Page schema for V2 forms')\n\nexport const pagePayloadSchemaV2 = pageSchemaV2\n  .append({\n    components: Joi.when('controller', {\n      switch: [\n        {\n          is: Joi.string().trim().valid(ControllerType.FileUpload).required(),\n          then: pageUploadComponentsSchema\n        }\n      ],\n      otherwise: Joi.array<ComponentDef>()\n        .items(componentPayloadSchemaV2)\n        .unique('id')\n        .unique('name')\n        .description('Components schema for V2 forms')\n    })\n  })\n  .description('Payload Page schema for V2 forms')\n\nconst baseListItemSchema = Joi.object<Item>()\n  .description('Base schema for list items with common properties')\n  .keys({\n    id: idSchema.description('Unique identifier for the list item'),\n    text: Joi.string()\n      .trim()\n      .allow('')\n      .description('Display text shown to the user'),\n    description: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Optional additional descriptive text for the item'),\n    conditional: Joi.object<Item['conditional']>()\n      .description('Optional components to show when this item is selected')\n      .keys({\n        components: Joi.array<ComponentDef>()\n          .required()\n          .items(componentSchema.unknown(true))\n          .unique('name')\n          .description('Components to display conditionally')\n      })\n      .optional(),\n    condition: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Condition that determines if this item is shown'),\n    hint: Joi.object<Item['hint']>()\n      .optional()\n      .keys({\n        id: idSchema,\n        text: Joi.string().trim()\n      })\n      .description('Optional hint text to be shown on list item')\n  })\n\nconst stringListItemSchema = baseListItemSchema\n  .append({\n    value: Joi.string()\n      .trim()\n      .required()\n      .description('String value stored when this item is selected')\n  })\n  .description('List item with string value')\n\nconst numberListItemSchema = baseListItemSchema\n  .append({\n    value: Joi.number()\n      .required()\n      .description('Numeric value stored when this item is selected')\n  })\n  .description('List item with numeric value')\n\nexport const listSchema = Joi.object<List>()\n  .description('Reusable list of options for select components')\n  .keys({\n    id: idSchemaOptional.description('Unique identifier for the list'),\n    name: Joi.string()\n      .trim()\n      .required()\n      .description('Name used to reference this list from components'),\n    title: Joi.string()\n      .trim()\n      .required()\n      .description('Human-readable title for the list'),\n    type: Joi.string()\n      .trim()\n      .required()\n      .valid('string', 'number')\n      .description('Data type for list values (string or number)'),\n    items: Joi.when('type', {\n      is: 'string',\n      then: Joi.array()\n        .items(stringListItemSchema)\n        .unique('id')\n        .unique('text')\n        .unique('value')\n        .description('Array of items with string values')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniqueListItemId,\n            FormDefinitionError.UniqueListItemText,\n            FormDefinitionError.UniqueListItemValue\n          ])\n        ),\n      otherwise: Joi.array()\n        .items(numberListItemSchema)\n        .unique('id')\n        .unique('text')\n        .unique('value')\n        .description('Array of items with numeric values')\n        .error(\n          checkErrors([\n            FormDefinitionError.UniqueListItemId,\n            FormDefinitionError.UniqueListItemText,\n            FormDefinitionError.UniqueListItemValue\n          ])\n        )\n    })\n  })\n\n/**\n * V2 Joi schema for Lists\n */\nexport const listSchemaV2 = listSchema\n  .keys({\n    id: idSchema.description('Unique identifier for the list')\n  })\n  .description('List schema for V2 forms')\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>()\n  .description('Feedback configuration for the form')\n  .keys({\n    feedbackForm: Joi.boolean()\n      .default(false)\n      .description('Whether to show the built-in feedback form'),\n    url: Joi.when('feedbackForm', {\n      is: Joi.boolean().valid(false),\n      then: Joi.string()\n        .trim()\n        .optional()\n        .allow('')\n        .description(\n          'URL to an external feedback form when not using built-in feedback'\n        )\n    }),\n    emailAddress: Joi.string()\n      .trim()\n      .email({\n        tlds: {\n          allow: false\n        }\n      })\n      .optional()\n      .description('Email address where feedback is sent')\n  })\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>()\n  .description('Phase banner configuration showing development status')\n  .keys({\n    phase: Joi.string()\n      .trim()\n      .valid('alpha', 'beta')\n      .description('Development phase of the service (alpha or beta)')\n  })\n\nconst outputSchema = Joi.object<FormDefinition['output']>()\n  .description('Configuration for form submission output')\n  .keys({\n    audience: Joi.string()\n      .trim()\n      .valid('human', 'machine')\n      .required()\n      .description(\n        'Target audience for the output (human readable or machine processable)'\n      ),\n    version: Joi.string()\n      .trim()\n      .required()\n      .description('Version identifier for the output format')\n  })\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n  .description('Complete form definition describing all aspects of a form')\n  .required()\n  .keys({\n    engine: Joi.string()\n      .trim()\n      .allow('V1', 'V2')\n      .default('V1')\n      .description('Form engine version to use (V1 or V2)'),\n    schema: Joi.number()\n      .integer()\n      .valid(SchemaVersion.V1)\n      .default(SchemaVersion.V1)\n      .description('Form schema version to use (1 or 2)'),\n    name: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Unique name identifying the form'),\n    feedback: feedbackSchema\n      .optional()\n      .description('Feedback mechanism configuration'),\n    startPage: Joi.string()\n      .trim()\n      .optional()\n      .description('Path of the first page to show when starting the form'),\n    pages: Joi.array<Page>()\n      .required()\n      .items(pageSchema)\n      .description('Pages schema for V1 forms')\n      .unique('path'),\n    sections: Joi.array<Section>()\n      .items(sectionsSchema)\n      .unique('name')\n      .unique('title')\n      .required()\n      .description('Sections grouping related pages together')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueSectionName,\n          FormDefinitionError.UniqueSectionTitle\n        ])\n      ),\n    conditions: Joi.array<ConditionWrapper>()\n      .items(conditionWrapperSchema)\n      .unique('name')\n      .unique('displayName')\n      .description('Named conditions used for form logic'),\n    lists: Joi.array<List>()\n      .items(listSchema)\n      .unique('name')\n      .unique('title')\n      .description('Reusable lists of options for select components'),\n    metadata: Joi.object({ a: Joi.any() })\n      .unknown()\n      .optional()\n      .description('Custom metadata for the form'),\n    declaration: Joi.string()\n      .trim()\n      .allow('')\n      .optional()\n      .description('Declaration text shown on the summary page'),\n    skipSummary: Joi.any()\n      .strip()\n      .description('option to skip the summary page'),\n    phaseBanner: phaseBannerSchema\n      .optional()\n      .description('Phase banner configuration'),\n    outputEmail: Joi.string()\n      .trim()\n      .email({ tlds: { allow: ['uk'] } })\n      .optional()\n      .description('Email address where form submissions are sent'),\n    output: outputSchema\n      .optional()\n      .description('Configuration for submission output format'),\n    outputs: Joi.array()\n      .items({\n        emailAddress: Joi.string()\n          .trim()\n          .email({ tlds: { allow: ['uk'] } })\n          .description('Email address where form submissions are sent'),\n        audience: Joi.string()\n          .trim()\n          .valid('human', 'machine')\n          .required()\n          .description(\n            'Target audience for the output (human readable or machine processable)'\n          ),\n        version: Joi.string()\n          .trim()\n          .required()\n          .description('Version identifier for the output format')\n      })\n      .optional()\n      .description('One or more email targets/types for submission emails')\n  })\n\nexport const formDefinitionV2Schema = formDefinitionSchema\n  .keys({\n    schema: Joi.number()\n      .integer()\n      .valid(SchemaVersion.V2)\n      .description('Form schema version to use (2)'),\n    pages: Joi.array<Page>()\n      .items(pageSchemaV2)\n      .required()\n      .unique('id')\n      .unique('path')\n      .description('Pages schema for V2 forms')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniquePageId,\n          FormDefinitionError.UniquePagePath\n        ])\n      ),\n    lists: Joi.array<List>()\n      .items(listSchemaV2)\n      .unique('id')\n      .unique('name')\n      .unique('title')\n      .description('Lists schema for V2 forms')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueListId,\n          FormDefinitionError.UniqueListName,\n          FormDefinitionError.UniqueListTitle\n        ])\n      ),\n    conditions: Joi.array<ConditionWrapperV2>()\n      .items(conditionWrapperSchemaV2)\n      .unique('id')\n      .unique('displayName')\n      .description('Named conditions used for form logic')\n      .error(\n        checkErrors([\n          FormDefinitionError.UniqueConditionId,\n          FormDefinitionError.UniqueConditionDisplayName\n        ])\n      )\n  })\n  .description('Form definition schema for V2')\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":[]}
         
     | 
| 
         @@ -30,6 +30,7 @@ export let FormDefinitionError = /*#__PURE__*/function (FormDefinitionError) { 
     | 
|
| 
       30 
30 
     | 
    
         
             
              FormDefinitionError["RefConditionConditionId"] = "ref_condition_condition_id";
         
     | 
| 
       31 
31 
     | 
    
         
             
              FormDefinitionError["RefPageComponentList"] = "ref_page_component_list";
         
     | 
| 
       32 
32 
     | 
    
         
             
              FormDefinitionError["IncompatibleConditionComponentType"] = "incompatible_condition_component_type";
         
     | 
| 
      
 33 
     | 
    
         
            +
              FormDefinitionError["IncompatibleQuestionRegex"] = "incompatible_question_regex";
         
     | 
| 
       33 
34 
     | 
    
         
             
              FormDefinitionError["Other"] = "other";
         
     | 
| 
       34 
35 
     | 
    
         
             
              return FormDefinitionError;
         
     | 
| 
       35 
36 
     | 
    
         
             
            }({});
         
     | 
| 
         @@ -119,6 +120,10 @@ export const formDefinitionErrors = { 
     | 
|
| 
       119 
120 
     | 
    
         
             
                key: 'componentId',
         
     | 
| 
       120 
121 
     | 
    
         
             
                type: FormDefinitionErrorType.Incompatible
         
     | 
| 
       121 
122 
     | 
    
         
             
              },
         
     | 
| 
      
 123 
     | 
    
         
            +
              [FormDefinitionError.IncompatibleQuestionRegex]: {
         
     | 
| 
      
 124 
     | 
    
         
            +
                key: 'regex',
         
     | 
| 
      
 125 
     | 
    
         
            +
                type: FormDefinitionErrorType.Incompatible
         
     | 
| 
      
 126 
     | 
    
         
            +
              },
         
     | 
| 
       122 
127 
     | 
    
         
             
              [FormDefinitionError.Other]: {
         
     | 
| 
       123 
128 
     | 
    
         
             
                key: '',
         
     | 
| 
       124 
129 
     | 
    
         
             
                type: FormDefinitionErrorType.Type
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"types.js","names":["FormDefinitionErrorType","FormDefinitionError","formDefinitionErrors","UniquePagePath","key","type","Unique","UniquePageId","UniquePageComponentId","UniquePageComponentName","UniqueSectionName","UniqueSectionTitle","UniqueListId","UniqueListTitle","UniqueListName","UniqueConditionDisplayName","UniqueConditionId","UniqueListItemId","UniqueListItemText","UniqueListItemValue","RefPageCondition","Ref","RefConditionComponentId","RefConditionListId","RefConditionItemId","RefConditionConditionId","RefPageComponentList","IncompatibleConditionComponentType","Incompatible","Other","Type"],"sources":["../../../../src/form/form-manager/types.ts"],"sourcesContent":["import { type Context } from 'joi'\n\nimport { type Repeat } from '~/src/form/form-definition/types.js'\nimport { type ControllerType } from '~/src/pages/enums.js'\n\nexport interface PatchPageFields {\n  title?: string\n  path?: string\n  controller?: ControllerType | null\n  repeat?: Repeat\n  condition?: string | null\n}\n\nexport interface AddComponentQueryOptions {\n  prepend?: boolean\n}\n\n// Enum of error types that can be raised through validating the form definition\nexport enum FormDefinitionErrorType {\n  Unique = 'unique', // Unique constraint\n  Ref = 'ref', // Referential integrity\n  Type = 'type', // General schema type error\n  Incompatible = 'incompatible' // Data values/types that are not compatible\n}\n\n// Enum for errors that can exist in a form definition\nexport enum FormDefinitionError {\n  UniquePageId = 'unique_page_id',\n  UniquePagePath = 'unique_page_path',\n  UniquePageComponentId = 'unique_page_component_id',\n  UniquePageComponentName = 'unique_page_component_name',\n  UniqueSectionName = 'unique_section_name',\n  UniqueSectionTitle = 'unique_section_title',\n  UniqueListId = 'unique_list_id',\n  UniqueListTitle = 'unique_list_title',\n  UniqueListName = 'unique_list_name',\n  UniqueConditionId = 'unique_condition_id',\n  UniqueConditionDisplayName = 'unique_condition_displayname',\n  UniqueListItemId = 'unique_list_item_id',\n  UniqueListItemText = 'unique_list_item_text',\n  UniqueListItemValue = 'unique_list_item_value',\n  RefPageCondition = 'ref_page_condition',\n  RefConditionComponentId = 'ref_condition_component_id',\n  RefConditionListId = 'ref_condition_list_id',\n  RefConditionItemId = 'ref_condition_item_id',\n  RefConditionConditionId = 'ref_condition_condition_id',\n  RefPageComponentList = 'ref_page_component_list',\n  IncompatibleConditionComponentType = 'incompatible_condition_component_type',\n  Other = 'other'\n}\n\nexport interface ErrorMatchValue {\n  key: string\n  type: FormDefinitionErrorType\n}\n\nexport type FormDefinitionErrors = Record<FormDefinitionError, ErrorMatchValue>\n\n// The errors that can exist in the form definition\nexport const formDefinitionErrors: FormDefinitionErrors = {\n  [FormDefinitionError.UniquePagePath]: {\n    key: 'path',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageComponentId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageComponentName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueSectionName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueSectionTitle]: {\n    key: 'title',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListTitle]: {\n    key: 'title',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueConditionDisplayName]: {\n    key: 'displayName',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueConditionId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemText]: {\n    key: 'text',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemValue]: {\n    key: 'value',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.RefPageCondition]: {\n    key: 'condition',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionComponentId]: {\n    key: 'componentId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionListId]: {\n    key: 'listId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionItemId]: {\n    key: 'itemId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionConditionId]: {\n    key: 'conditionId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefPageComponentList]: {\n    key: 'list',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.IncompatibleConditionComponentType]: {\n    key: 'componentId',\n    type: FormDefinitionErrorType.Incompatible\n  },\n  [FormDefinitionError.Other]: {\n    key: '',\n    type: FormDefinitionErrorType.Type\n  }\n}\n\nexport type FormDefinitionErrorCauseDetailPath = (string | number)[]\n\nexport interface FormDefinitionErrorCauseDetailUnique {\n  path: FormDefinitionErrorCauseDetailPath\n  pos: number\n  dupePos: number\n}\n\nexport interface FormDefinitionErrorCauseDetailRef {\n  path: FormDefinitionErrorCauseDetailPath\n}\n\nexport interface FormDefinitionErrorCauseDetailIncompatible {\n  path: FormDefinitionErrorCauseDetailPath\n  valueKey?: string\n  incompatibleObject: {\n    key?: string\n    value?: unknown\n  }\n  reason: string\n}\n\nexport type FormDefinitionErrorCause =\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Unique\n      message: string\n      detail: FormDefinitionErrorCauseDetailUnique\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Ref\n      message: string\n      detail: FormDefinitionErrorCauseDetailRef\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Type\n      message: string\n      detail: Context | undefined\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Incompatible\n      message: string\n      detail: FormDefinitionErrorCauseDetailIncompatible\n    }\n"],"mappings":"AAiBA;AACA,WAAYA,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;;AAOnC;AACA,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA; 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"types.js","names":["FormDefinitionErrorType","FormDefinitionError","formDefinitionErrors","UniquePagePath","key","type","Unique","UniquePageId","UniquePageComponentId","UniquePageComponentName","UniqueSectionName","UniqueSectionTitle","UniqueListId","UniqueListTitle","UniqueListName","UniqueConditionDisplayName","UniqueConditionId","UniqueListItemId","UniqueListItemText","UniqueListItemValue","RefPageCondition","Ref","RefConditionComponentId","RefConditionListId","RefConditionItemId","RefConditionConditionId","RefPageComponentList","IncompatibleConditionComponentType","Incompatible","IncompatibleQuestionRegex","Other","Type"],"sources":["../../../../src/form/form-manager/types.ts"],"sourcesContent":["import { type Context } from 'joi'\n\nimport { type Repeat } from '~/src/form/form-definition/types.js'\nimport { type ControllerType } from '~/src/pages/enums.js'\n\nexport interface PatchPageFields {\n  title?: string\n  path?: string\n  controller?: ControllerType | null\n  repeat?: Repeat\n  condition?: string | null\n}\n\nexport interface AddComponentQueryOptions {\n  prepend?: boolean\n}\n\n// Enum of error types that can be raised through validating the form definition\nexport enum FormDefinitionErrorType {\n  Unique = 'unique', // Unique constraint\n  Ref = 'ref', // Referential integrity\n  Type = 'type', // General schema type error\n  Incompatible = 'incompatible' // Data values/types that are not compatible\n}\n\n// Enum for errors that can exist in a form definition\nexport enum FormDefinitionError {\n  UniquePageId = 'unique_page_id',\n  UniquePagePath = 'unique_page_path',\n  UniquePageComponentId = 'unique_page_component_id',\n  UniquePageComponentName = 'unique_page_component_name',\n  UniqueSectionName = 'unique_section_name',\n  UniqueSectionTitle = 'unique_section_title',\n  UniqueListId = 'unique_list_id',\n  UniqueListTitle = 'unique_list_title',\n  UniqueListName = 'unique_list_name',\n  UniqueConditionId = 'unique_condition_id',\n  UniqueConditionDisplayName = 'unique_condition_displayname',\n  UniqueListItemId = 'unique_list_item_id',\n  UniqueListItemText = 'unique_list_item_text',\n  UniqueListItemValue = 'unique_list_item_value',\n  RefPageCondition = 'ref_page_condition',\n  RefConditionComponentId = 'ref_condition_component_id',\n  RefConditionListId = 'ref_condition_list_id',\n  RefConditionItemId = 'ref_condition_item_id',\n  RefConditionConditionId = 'ref_condition_condition_id',\n  RefPageComponentList = 'ref_page_component_list',\n  IncompatibleConditionComponentType = 'incompatible_condition_component_type',\n  IncompatibleQuestionRegex = 'incompatible_question_regex',\n  Other = 'other'\n}\n\nexport interface ErrorMatchValue {\n  key: string\n  type: FormDefinitionErrorType\n}\n\nexport type FormDefinitionErrors = Record<FormDefinitionError, ErrorMatchValue>\n\n// The errors that can exist in the form definition\nexport const formDefinitionErrors: FormDefinitionErrors = {\n  [FormDefinitionError.UniquePagePath]: {\n    key: 'path',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageComponentId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniquePageComponentName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueSectionName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueSectionTitle]: {\n    key: 'title',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListTitle]: {\n    key: 'title',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListName]: {\n    key: 'name',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueConditionDisplayName]: {\n    key: 'displayName',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueConditionId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemId]: {\n    key: 'id',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemText]: {\n    key: 'text',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.UniqueListItemValue]: {\n    key: 'value',\n    type: FormDefinitionErrorType.Unique\n  },\n  [FormDefinitionError.RefPageCondition]: {\n    key: 'condition',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionComponentId]: {\n    key: 'componentId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionListId]: {\n    key: 'listId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionItemId]: {\n    key: 'itemId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefConditionConditionId]: {\n    key: 'conditionId',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.RefPageComponentList]: {\n    key: 'list',\n    type: FormDefinitionErrorType.Ref\n  },\n  [FormDefinitionError.IncompatibleConditionComponentType]: {\n    key: 'componentId',\n    type: FormDefinitionErrorType.Incompatible\n  },\n  [FormDefinitionError.IncompatibleQuestionRegex]: {\n    key: 'regex',\n    type: FormDefinitionErrorType.Incompatible\n  },\n  [FormDefinitionError.Other]: {\n    key: '',\n    type: FormDefinitionErrorType.Type\n  }\n}\n\nexport type FormDefinitionErrorCauseDetailPath = (string | number)[]\n\nexport interface FormDefinitionErrorCauseDetailUnique {\n  path: FormDefinitionErrorCauseDetailPath\n  pos: number\n  dupePos: number\n}\n\nexport interface FormDefinitionErrorCauseDetailRef {\n  path: FormDefinitionErrorCauseDetailPath\n}\n\nexport interface FormDefinitionErrorCauseDetailIncompatible {\n  path: FormDefinitionErrorCauseDetailPath\n  valueKey?: string\n  incompatibleObject: {\n    key?: string\n    value?: unknown\n  }\n  reason: string\n}\n\nexport type FormDefinitionErrorCause =\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Unique\n      message: string\n      detail: FormDefinitionErrorCauseDetailUnique\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Ref\n      message: string\n      detail: FormDefinitionErrorCauseDetailRef\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Type\n      message: string\n      detail: Context | undefined\n    }\n  | {\n      id: FormDefinitionError\n      type: FormDefinitionErrorType.Incompatible\n      message: string\n      detail: FormDefinitionErrorCauseDetailIncompatible\n    }\n"],"mappings":"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","ignoreList":[]}
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import JoiBase from 'joi';
         
     | 
| 
      
 1 
     | 
    
         
            +
            import JoiBase, { type CustomHelpers } from 'joi';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { type ComponentDef, type ContentComponentsDef, type FileUploadFieldComponent } from '../../components/types.js';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { type ConditionDataV2 } from '../../conditions/types.js';
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { type ConditionWrapperV2, type FormDefinition, type List, type Page, type Repeat } from '../../form/form-definition/types.js';
         
     | 
| 
         @@ -6,6 +6,7 @@ export declare const MIN_NUMBER_OF_REPEAT_ITEMS = 1; 
     | 
|
| 
       6 
6 
     | 
    
         
             
            export declare const MAX_NUMBER_OF_REPEAT_ITEMS = 200;
         
     | 
| 
       7 
7 
     | 
    
         
             
            export declare const conditionDataSchemaV2: JoiBase.ObjectSchema<ConditionDataV2>;
         
     | 
| 
       8 
8 
     | 
    
         
             
            export declare const conditionWrapperSchemaV2: JoiBase.ObjectSchema<ConditionWrapperV2>;
         
     | 
| 
      
 9 
     | 
    
         
            +
            export declare const regexCustomValidator: (value: string, helpers: CustomHelpers<string>) => string | JoiBase.ErrorReport;
         
     | 
| 
       9 
10 
     | 
    
         
             
            export declare const componentSchema: JoiBase.ObjectSchema<ComponentDef>;
         
     | 
| 
       10 
11 
     | 
    
         
             
            export declare const componentSchemaV2: JoiBase.ObjectSchema<ComponentDef>;
         
     | 
| 
       11 
12 
     | 
    
         
             
            export declare const componentPayloadSchemaV2: JoiBase.ObjectSchema<ComponentDef>;
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AACA,OAAO, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,EAAE,EAAE,KAAK,aAAa,EAAyB,MAAM,KAAK,CAAA;AAKxE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAEL,KAAK,eAAe,EAWrB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAGL,KAAK,kBAAkB,EAIvB,KAAK,cAAc,EAGnB,KAAK,IAAI,EACT,KAAK,IAAI,EAET,KAAK,MAAM,EAIZ,MAAM,qCAAqC,CAAA;AAkO5C,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAC3C,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAE7C,eAAO,MAAM,qBAAqB,uCA8F9B,CAAA;AAoDJ,eAAO,MAAM,wBAAwB,0CAyBU,CAAA;AAE/C,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,SAAS,aAAa,CAAC,MAAM,CAAC,iCAW/B,CAAA;AAED,eAAO,MAAM,eAAe,oCA+GZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,oCAciB,CAAA;AAE/C,eAAO,MAAM,wBAAwB,oCASsB,CAAA;AAE3D,eAAO,MAAM,yBAAyB,oCAMpC,CAAA;AAEF,eAAO,MAAM,sBAAsB,oCAUjC,CAAA;AAuDF,eAAO,MAAM,gBAAgB,8BASzB,CAAA;AAyCJ,eAAO,MAAM,0BAA0B,sEAWmB,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4BAmDnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,4BAuCiB,CAAA;AAE1C,eAAO,MAAM,mBAAmB,4BAgBkB,CAAA;AAwDlD,eAAO,MAAM,UAAU,4BA8CnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,4BAIiB,CAAA;AAsD1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sCAgG7B,CAAA;AAEJ,eAAO,MAAM,sBAAsB,sCA2CY,CAAA;AAI/C,eAAO,MAAM,MAAM,sCAAuB,CAAA"}
         
     | 
| 
         @@ -39,6 +39,7 @@ export declare enum FormDefinitionError { 
     | 
|
| 
       39 
39 
     | 
    
         
             
                RefConditionConditionId = "ref_condition_condition_id",
         
     | 
| 
       40 
40 
     | 
    
         
             
                RefPageComponentList = "ref_page_component_list",
         
     | 
| 
       41 
41 
     | 
    
         
             
                IncompatibleConditionComponentType = "incompatible_condition_component_type",
         
     | 
| 
      
 42 
     | 
    
         
            +
                IncompatibleQuestionRegex = "incompatible_question_regex",
         
     | 
| 
       42 
43 
     | 
    
         
             
                Other = "other"
         
     | 
| 
       43 
44 
     | 
    
         
             
            }
         
     | 
| 
       44 
45 
     | 
    
         
             
            export interface ErrorMatchValue {
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAGD,oBAAY,uBAAuB;IACjC,MAAM,WAAW,CAAE,oBAAoB;IACvC,GAAG,QAAQ,CAAE,wBAAwB;IACrC,IAAI,SAAS,CAAE,4BAA4B;IAC3C,YAAY,iBAAiB;CAC9B;AAGD,oBAAY,mBAAmB;IAC7B,YAAY,mBAAmB;IAC/B,cAAc,qBAAqB;IACnC,qBAAqB,6BAA6B;IAClD,uBAAuB,+BAA+B;IACtD,iBAAiB,wBAAwB;IACzC,kBAAkB,yBAAyB;IAC3C,YAAY,mBAAmB;IAC/B,eAAe,sBAAsB;IACrC,cAAc,qBAAqB;IACnC,iBAAiB,wBAAwB;IACzC,0BAA0B,iCAAiC;IAC3D,gBAAgB,wBAAwB;IACxC,kBAAkB,0BAA0B;IAC5C,mBAAmB,2BAA2B;IAC9C,gBAAgB,uBAAuB;IACvC,uBAAuB,+BAA+B;IACtD,kBAAkB,0BAA0B;IAC5C,kBAAkB,0BAA0B;IAC5C,uBAAuB,+BAA+B;IACtD,oBAAoB,4BAA4B;IAChD,kCAAkC,0CAA0C;IAC5E,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,uBAAuB,CAAA;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAG/E,eAAO,MAAM,oBAAoB,EAAE, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/types.ts"],"names":[],"mappings":"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"}
         
     | 
    
        package/package.json
    CHANGED
    
    
| 
         @@ -135,6 +135,33 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                      "type": "number",
         
     | 
| 
       136 
136 
     | 
    
         
             
                      "description": "Exact length required for validation",
         
     | 
| 
       137 
137 
     | 
    
         
             
                      "title": "Length"
         
     | 
| 
      
 138 
     | 
    
         
            +
                    },
         
     | 
| 
      
 139 
     | 
    
         
            +
                    "regex": {
         
     | 
| 
      
 140 
     | 
    
         
            +
                      "type": [
         
     | 
| 
      
 141 
     | 
    
         
            +
                        "array",
         
     | 
| 
      
 142 
     | 
    
         
            +
                        "boolean",
         
     | 
| 
      
 143 
     | 
    
         
            +
                        "number",
         
     | 
| 
      
 144 
     | 
    
         
            +
                        "object",
         
     | 
| 
      
 145 
     | 
    
         
            +
                        "string",
         
     | 
| 
      
 146 
     | 
    
         
            +
                        "null"
         
     | 
| 
      
 147 
     | 
    
         
            +
                      ],
         
     | 
| 
      
 148 
     | 
    
         
            +
                      "oneOf": [
         
     | 
| 
      
 149 
     | 
    
         
            +
                        {
         
     | 
| 
      
 150 
     | 
    
         
            +
                          "type": "string",
         
     | 
| 
      
 151 
     | 
    
         
            +
                          "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 152 
     | 
    
         
            +
                          "title": "Regex (string)"
         
     | 
| 
      
 153 
     | 
    
         
            +
                        },
         
     | 
| 
      
 154 
     | 
    
         
            +
                        {
         
     | 
| 
      
 155 
     | 
    
         
            +
                          "type": "string",
         
     | 
| 
      
 156 
     | 
    
         
            +
                          "title": "Regex (string)"
         
     | 
| 
      
 157 
     | 
    
         
            +
                        }
         
     | 
| 
      
 158 
     | 
    
         
            +
                      ],
         
     | 
| 
      
 159 
     | 
    
         
            +
                      "title": "Regex",
         
     | 
| 
      
 160 
     | 
    
         
            +
                      "description": "The regex value.",
         
     | 
| 
      
 161 
     | 
    
         
            +
                      "oneOfTitles": [
         
     | 
| 
      
 162 
     | 
    
         
            +
                        "Regex (string)",
         
     | 
| 
      
 163 
     | 
    
         
            +
                        "Regex (string)"
         
     | 
| 
      
 164 
     | 
    
         
            +
                      ]
         
     | 
| 
       138 
165 
     | 
    
         
             
                    }
         
     | 
| 
       139 
166 
     | 
    
         
             
                  },
         
     | 
| 
       140 
167 
     | 
    
         
             
                  "additionalProperties": true,
         
     | 
| 
         @@ -141,6 +141,33 @@ 
     | 
|
| 
       141 
141 
     | 
    
         
             
                      "type": "number",
         
     | 
| 
       142 
142 
     | 
    
         
             
                      "description": "Exact length required for validation",
         
     | 
| 
       143 
143 
     | 
    
         
             
                      "title": "Length"
         
     | 
| 
      
 144 
     | 
    
         
            +
                    },
         
     | 
| 
      
 145 
     | 
    
         
            +
                    "regex": {
         
     | 
| 
      
 146 
     | 
    
         
            +
                      "type": [
         
     | 
| 
      
 147 
     | 
    
         
            +
                        "array",
         
     | 
| 
      
 148 
     | 
    
         
            +
                        "boolean",
         
     | 
| 
      
 149 
     | 
    
         
            +
                        "number",
         
     | 
| 
      
 150 
     | 
    
         
            +
                        "object",
         
     | 
| 
      
 151 
     | 
    
         
            +
                        "string",
         
     | 
| 
      
 152 
     | 
    
         
            +
                        "null"
         
     | 
| 
      
 153 
     | 
    
         
            +
                      ],
         
     | 
| 
      
 154 
     | 
    
         
            +
                      "oneOf": [
         
     | 
| 
      
 155 
     | 
    
         
            +
                        {
         
     | 
| 
      
 156 
     | 
    
         
            +
                          "type": "string",
         
     | 
| 
      
 157 
     | 
    
         
            +
                          "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 158 
     | 
    
         
            +
                          "title": "Regex (string)"
         
     | 
| 
      
 159 
     | 
    
         
            +
                        },
         
     | 
| 
      
 160 
     | 
    
         
            +
                        {
         
     | 
| 
      
 161 
     | 
    
         
            +
                          "type": "string",
         
     | 
| 
      
 162 
     | 
    
         
            +
                          "title": "Regex (string)"
         
     | 
| 
      
 163 
     | 
    
         
            +
                        }
         
     | 
| 
      
 164 
     | 
    
         
            +
                      ],
         
     | 
| 
      
 165 
     | 
    
         
            +
                      "title": "Regex",
         
     | 
| 
      
 166 
     | 
    
         
            +
                      "description": "The regex value.",
         
     | 
| 
      
 167 
     | 
    
         
            +
                      "oneOfTitles": [
         
     | 
| 
      
 168 
     | 
    
         
            +
                        "Regex (string)",
         
     | 
| 
      
 169 
     | 
    
         
            +
                        "Regex (string)"
         
     | 
| 
      
 170 
     | 
    
         
            +
                      ]
         
     | 
| 
       144 
171 
     | 
    
         
             
                    }
         
     | 
| 
       145 
172 
     | 
    
         
             
                  },
         
     | 
| 
       146 
173 
     | 
    
         
             
                  "additionalProperties": true,
         
     | 
| 
         @@ -236,6 +236,33 @@ 
     | 
|
| 
       236 
236 
     | 
    
         
             
                                  "type": "number",
         
     | 
| 
       237 
237 
     | 
    
         
             
                                  "description": "Exact length required for validation",
         
     | 
| 
       238 
238 
     | 
    
         
             
                                  "title": "Length"
         
     | 
| 
      
 239 
     | 
    
         
            +
                                },
         
     | 
| 
      
 240 
     | 
    
         
            +
                                "regex": {
         
     | 
| 
      
 241 
     | 
    
         
            +
                                  "type": [
         
     | 
| 
      
 242 
     | 
    
         
            +
                                    "array",
         
     | 
| 
      
 243 
     | 
    
         
            +
                                    "boolean",
         
     | 
| 
      
 244 
     | 
    
         
            +
                                    "number",
         
     | 
| 
      
 245 
     | 
    
         
            +
                                    "object",
         
     | 
| 
      
 246 
     | 
    
         
            +
                                    "string",
         
     | 
| 
      
 247 
     | 
    
         
            +
                                    "null"
         
     | 
| 
      
 248 
     | 
    
         
            +
                                  ],
         
     | 
| 
      
 249 
     | 
    
         
            +
                                  "oneOf": [
         
     | 
| 
      
 250 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 251 
     | 
    
         
            +
                                      "type": "string",
         
     | 
| 
      
 252 
     | 
    
         
            +
                                      "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 253 
     | 
    
         
            +
                                      "title": "Regex (string)"
         
     | 
| 
      
 254 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 255 
     | 
    
         
            +
                                    {
         
     | 
| 
      
 256 
     | 
    
         
            +
                                      "type": "string",
         
     | 
| 
      
 257 
     | 
    
         
            +
                                      "title": "Regex (string)"
         
     | 
| 
      
 258 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 259 
     | 
    
         
            +
                                  ],
         
     | 
| 
      
 260 
     | 
    
         
            +
                                  "title": "Regex",
         
     | 
| 
      
 261 
     | 
    
         
            +
                                  "description": "The regex value.",
         
     | 
| 
      
 262 
     | 
    
         
            +
                                  "oneOfTitles": [
         
     | 
| 
      
 263 
     | 
    
         
            +
                                    "Regex (string)",
         
     | 
| 
      
 264 
     | 
    
         
            +
                                    "Regex (string)"
         
     | 
| 
      
 265 
     | 
    
         
            +
                                  ]
         
     | 
| 
       239 
266 
     | 
    
         
             
                                }
         
     | 
| 
       240 
267 
     | 
    
         
             
                              },
         
     | 
| 
       241 
268 
     | 
    
         
             
                              "additionalProperties": true,
         
     | 
| 
         @@ -926,6 +953,33 @@ 
     | 
|
| 
       926 
953 
     | 
    
         
             
                                                "type": "number",
         
     | 
| 
       927 
954 
     | 
    
         
             
                                                "description": "Exact length required for validation",
         
     | 
| 
       928 
955 
     | 
    
         
             
                                                "title": "Length"
         
     | 
| 
      
 956 
     | 
    
         
            +
                                              },
         
     | 
| 
      
 957 
     | 
    
         
            +
                                              "regex": {
         
     | 
| 
      
 958 
     | 
    
         
            +
                                                "type": [
         
     | 
| 
      
 959 
     | 
    
         
            +
                                                  "array",
         
     | 
| 
      
 960 
     | 
    
         
            +
                                                  "boolean",
         
     | 
| 
      
 961 
     | 
    
         
            +
                                                  "number",
         
     | 
| 
      
 962 
     | 
    
         
            +
                                                  "object",
         
     | 
| 
      
 963 
     | 
    
         
            +
                                                  "string",
         
     | 
| 
      
 964 
     | 
    
         
            +
                                                  "null"
         
     | 
| 
      
 965 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 966 
     | 
    
         
            +
                                                "oneOf": [
         
     | 
| 
      
 967 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 968 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 969 
     | 
    
         
            +
                                                    "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 970 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 971 
     | 
    
         
            +
                                                  },
         
     | 
| 
      
 972 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 973 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 974 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 975 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 976 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 977 
     | 
    
         
            +
                                                "title": "Regex",
         
     | 
| 
      
 978 
     | 
    
         
            +
                                                "description": "The regex value.",
         
     | 
| 
      
 979 
     | 
    
         
            +
                                                "oneOfTitles": [
         
     | 
| 
      
 980 
     | 
    
         
            +
                                                  "Regex (string)",
         
     | 
| 
      
 981 
     | 
    
         
            +
                                                  "Regex (string)"
         
     | 
| 
      
 982 
     | 
    
         
            +
                                                ]
         
     | 
| 
       929 
983 
     | 
    
         
             
                                              }
         
     | 
| 
       930 
984 
     | 
    
         
             
                                            },
         
     | 
| 
       931 
985 
     | 
    
         
             
                                            "additionalProperties": true,
         
     | 
| 
         @@ -1165,6 +1219,33 @@ 
     | 
|
| 
       1165 
1219 
     | 
    
         
             
                                                "type": "number",
         
     | 
| 
       1166 
1220 
     | 
    
         
             
                                                "description": "Exact length required for validation",
         
     | 
| 
       1167 
1221 
     | 
    
         
             
                                                "title": "Length"
         
     | 
| 
      
 1222 
     | 
    
         
            +
                                              },
         
     | 
| 
      
 1223 
     | 
    
         
            +
                                              "regex": {
         
     | 
| 
      
 1224 
     | 
    
         
            +
                                                "type": [
         
     | 
| 
      
 1225 
     | 
    
         
            +
                                                  "array",
         
     | 
| 
      
 1226 
     | 
    
         
            +
                                                  "boolean",
         
     | 
| 
      
 1227 
     | 
    
         
            +
                                                  "number",
         
     | 
| 
      
 1228 
     | 
    
         
            +
                                                  "object",
         
     | 
| 
      
 1229 
     | 
    
         
            +
                                                  "string",
         
     | 
| 
      
 1230 
     | 
    
         
            +
                                                  "null"
         
     | 
| 
      
 1231 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1232 
     | 
    
         
            +
                                                "oneOf": [
         
     | 
| 
      
 1233 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1234 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1235 
     | 
    
         
            +
                                                    "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 1236 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1237 
     | 
    
         
            +
                                                  },
         
     | 
| 
      
 1238 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1239 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1240 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1241 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1242 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1243 
     | 
    
         
            +
                                                "title": "Regex",
         
     | 
| 
      
 1244 
     | 
    
         
            +
                                                "description": "The regex value.",
         
     | 
| 
      
 1245 
     | 
    
         
            +
                                                "oneOfTitles": [
         
     | 
| 
      
 1246 
     | 
    
         
            +
                                                  "Regex (string)",
         
     | 
| 
      
 1247 
     | 
    
         
            +
                                                  "Regex (string)"
         
     | 
| 
      
 1248 
     | 
    
         
            +
                                                ]
         
     | 
| 
       1168 
1249 
     | 
    
         
             
                                              }
         
     | 
| 
       1169 
1250 
     | 
    
         
             
                                            },
         
     | 
| 
       1170 
1251 
     | 
    
         
             
                                            "additionalProperties": true,
         
     | 
| 
         @@ -528,6 +528,33 @@ 
     | 
|
| 
       528 
528 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       529 
529 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       530 
530 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 531 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 532 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 533 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 534 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 535 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 536 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 537 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 538 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 539 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 540 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 541 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 542 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 543 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 544 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 545 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 546 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 547 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 548 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 549 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 550 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 551 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 552 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 553 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 554 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 555 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 556 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 557 
     | 
    
         
            +
                                          ]
         
     | 
| 
       531 
558 
     | 
    
         
             
                                        }
         
     | 
| 
       532 
559 
     | 
    
         
             
                                      },
         
     | 
| 
       533 
560 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
| 
         @@ -697,6 +724,33 @@ 
     | 
|
| 
       697 
724 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       698 
725 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       699 
726 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 727 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 728 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 729 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 730 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 731 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 732 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 733 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 734 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 735 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 736 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 737 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 738 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 739 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 740 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 741 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 742 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 743 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 744 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 745 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 746 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 747 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 748 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 749 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 750 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 751 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 752 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 753 
     | 
    
         
            +
                                          ]
         
     | 
| 
       700 
754 
     | 
    
         
             
                                        }
         
     | 
| 
       701 
755 
     | 
    
         
             
                                      },
         
     | 
| 
       702 
756 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
| 
         @@ -949,6 +1003,33 @@ 
     | 
|
| 
       949 
1003 
     | 
    
         
             
                                      "type": "number",
         
     | 
| 
       950 
1004 
     | 
    
         
             
                                      "description": "Exact length required for validation",
         
     | 
| 
       951 
1005 
     | 
    
         
             
                                      "title": "Length"
         
     | 
| 
      
 1006 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 1007 
     | 
    
         
            +
                                    "regex": {
         
     | 
| 
      
 1008 
     | 
    
         
            +
                                      "type": [
         
     | 
| 
      
 1009 
     | 
    
         
            +
                                        "array",
         
     | 
| 
      
 1010 
     | 
    
         
            +
                                        "boolean",
         
     | 
| 
      
 1011 
     | 
    
         
            +
                                        "number",
         
     | 
| 
      
 1012 
     | 
    
         
            +
                                        "object",
         
     | 
| 
      
 1013 
     | 
    
         
            +
                                        "string",
         
     | 
| 
      
 1014 
     | 
    
         
            +
                                        "null"
         
     | 
| 
      
 1015 
     | 
    
         
            +
                                      ],
         
     | 
| 
      
 1016 
     | 
    
         
            +
                                      "oneOf": [
         
     | 
| 
      
 1017 
     | 
    
         
            +
                                        {
         
     | 
| 
      
 1018 
     | 
    
         
            +
                                          "type": "string",
         
     | 
| 
      
 1019 
     | 
    
         
            +
                                          "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 1020 
     | 
    
         
            +
                                          "title": "Regex (string)"
         
     | 
| 
      
 1021 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 1022 
     | 
    
         
            +
                                        {
         
     | 
| 
      
 1023 
     | 
    
         
            +
                                          "type": "string",
         
     | 
| 
      
 1024 
     | 
    
         
            +
                                          "title": "Regex (string)"
         
     | 
| 
      
 1025 
     | 
    
         
            +
                                        }
         
     | 
| 
      
 1026 
     | 
    
         
            +
                                      ],
         
     | 
| 
      
 1027 
     | 
    
         
            +
                                      "title": "Regex",
         
     | 
| 
      
 1028 
     | 
    
         
            +
                                      "description": "The regex value.",
         
     | 
| 
      
 1029 
     | 
    
         
            +
                                      "oneOfTitles": [
         
     | 
| 
      
 1030 
     | 
    
         
            +
                                        "Regex (string)",
         
     | 
| 
      
 1031 
     | 
    
         
            +
                                        "Regex (string)"
         
     | 
| 
      
 1032 
     | 
    
         
            +
                                      ]
         
     | 
| 
       952 
1033 
     | 
    
         
             
                                    }
         
     | 
| 
       953 
1034 
     | 
    
         
             
                                  },
         
     | 
| 
       954 
1035 
     | 
    
         
             
                                  "additionalProperties": true,
         
     | 
| 
         @@ -1227,6 +1308,33 @@ 
     | 
|
| 
       1227 
1308 
     | 
    
         
             
                                                "type": "number",
         
     | 
| 
       1228 
1309 
     | 
    
         
             
                                                "description": "Exact length required for validation",
         
     | 
| 
       1229 
1310 
     | 
    
         
             
                                                "title": "Length"
         
     | 
| 
      
 1311 
     | 
    
         
            +
                                              },
         
     | 
| 
      
 1312 
     | 
    
         
            +
                                              "regex": {
         
     | 
| 
      
 1313 
     | 
    
         
            +
                                                "type": [
         
     | 
| 
      
 1314 
     | 
    
         
            +
                                                  "array",
         
     | 
| 
      
 1315 
     | 
    
         
            +
                                                  "boolean",
         
     | 
| 
      
 1316 
     | 
    
         
            +
                                                  "number",
         
     | 
| 
      
 1317 
     | 
    
         
            +
                                                  "object",
         
     | 
| 
      
 1318 
     | 
    
         
            +
                                                  "string",
         
     | 
| 
      
 1319 
     | 
    
         
            +
                                                  "null"
         
     | 
| 
      
 1320 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1321 
     | 
    
         
            +
                                                "oneOf": [
         
     | 
| 
      
 1322 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1323 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1324 
     | 
    
         
            +
                                                    "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 1325 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1326 
     | 
    
         
            +
                                                  },
         
     | 
| 
      
 1327 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1328 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1329 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1330 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1331 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1332 
     | 
    
         
            +
                                                "title": "Regex",
         
     | 
| 
      
 1333 
     | 
    
         
            +
                                                "description": "The regex value.",
         
     | 
| 
      
 1334 
     | 
    
         
            +
                                                "oneOfTitles": [
         
     | 
| 
      
 1335 
     | 
    
         
            +
                                                  "Regex (string)",
         
     | 
| 
      
 1336 
     | 
    
         
            +
                                                  "Regex (string)"
         
     | 
| 
      
 1337 
     | 
    
         
            +
                                                ]
         
     | 
| 
       1230 
1338 
     | 
    
         
             
                                              }
         
     | 
| 
       1231 
1339 
     | 
    
         
             
                                            },
         
     | 
| 
       1232 
1340 
     | 
    
         
             
                                            "additionalProperties": true,
         
     | 
| 
         @@ -1466,6 +1574,33 @@ 
     | 
|
| 
       1466 
1574 
     | 
    
         
             
                                                "type": "number",
         
     | 
| 
       1467 
1575 
     | 
    
         
             
                                                "description": "Exact length required for validation",
         
     | 
| 
       1468 
1576 
     | 
    
         
             
                                                "title": "Length"
         
     | 
| 
      
 1577 
     | 
    
         
            +
                                              },
         
     | 
| 
      
 1578 
     | 
    
         
            +
                                              "regex": {
         
     | 
| 
      
 1579 
     | 
    
         
            +
                                                "type": [
         
     | 
| 
      
 1580 
     | 
    
         
            +
                                                  "array",
         
     | 
| 
      
 1581 
     | 
    
         
            +
                                                  "boolean",
         
     | 
| 
      
 1582 
     | 
    
         
            +
                                                  "number",
         
     | 
| 
      
 1583 
     | 
    
         
            +
                                                  "object",
         
     | 
| 
      
 1584 
     | 
    
         
            +
                                                  "string",
         
     | 
| 
      
 1585 
     | 
    
         
            +
                                                  "null"
         
     | 
| 
      
 1586 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1587 
     | 
    
         
            +
                                                "oneOf": [
         
     | 
| 
      
 1588 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1589 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1590 
     | 
    
         
            +
                                                    "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 1591 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1592 
     | 
    
         
            +
                                                  },
         
     | 
| 
      
 1593 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1594 
     | 
    
         
            +
                                                    "type": "string",
         
     | 
| 
      
 1595 
     | 
    
         
            +
                                                    "title": "Regex (string)"
         
     | 
| 
      
 1596 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1597 
     | 
    
         
            +
                                                ],
         
     | 
| 
      
 1598 
     | 
    
         
            +
                                                "title": "Regex",
         
     | 
| 
      
 1599 
     | 
    
         
            +
                                                "description": "The regex value.",
         
     | 
| 
      
 1600 
     | 
    
         
            +
                                                "oneOfTitles": [
         
     | 
| 
      
 1601 
     | 
    
         
            +
                                                  "Regex (string)",
         
     | 
| 
      
 1602 
     | 
    
         
            +
                                                  "Regex (string)"
         
     | 
| 
      
 1603 
     | 
    
         
            +
                                                ]
         
     | 
| 
       1469 
1604 
     | 
    
         
             
                                              }
         
     | 
| 
       1470 
1605 
     | 
    
         
             
                                            },
         
     | 
| 
       1471 
1606 
     | 
    
         
             
                                            "additionalProperties": true,
         
     | 
| 
         @@ -206,6 +206,33 @@ 
     | 
|
| 
       206 
206 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       207 
207 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       208 
208 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 209 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 210 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 211 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 212 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 213 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 214 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 215 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 216 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 217 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 218 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 219 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 220 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 221 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 222 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 223 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 224 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 225 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 226 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 227 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 228 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 229 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 230 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 231 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 232 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 233 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 234 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 235 
     | 
    
         
            +
                                          ]
         
     | 
| 
       209 
236 
     | 
    
         
             
                                        }
         
     | 
| 
       210 
237 
     | 
    
         
             
                                      },
         
     | 
| 
       211 
238 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
| 
         @@ -445,6 +472,33 @@ 
     | 
|
| 
       445 
472 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       446 
473 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       447 
474 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 475 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 476 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 477 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 478 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 479 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 480 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 481 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 482 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 483 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 484 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 485 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 486 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 487 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 488 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 489 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 490 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 491 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 492 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 493 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 494 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 495 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 496 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 497 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 498 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 499 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 500 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 501 
     | 
    
         
            +
                                          ]
         
     | 
| 
       448 
502 
     | 
    
         
             
                                        }
         
     | 
| 
       449 
503 
     | 
    
         
             
                                      },
         
     | 
| 
       450 
504 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
    
        package/schemas/list-schema.json
    CHANGED
    
    | 
         @@ -212,6 +212,33 @@ 
     | 
|
| 
       212 
212 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       213 
213 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       214 
214 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 215 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 216 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 217 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 218 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 219 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 220 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 221 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 222 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 223 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 224 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 225 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 226 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 227 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 228 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 229 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 230 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 231 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 232 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 233 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 234 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 235 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 236 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 237 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 238 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 239 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 240 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 241 
     | 
    
         
            +
                                          ]
         
     | 
| 
       215 
242 
     | 
    
         
             
                                        }
         
     | 
| 
       216 
243 
     | 
    
         
             
                                      },
         
     | 
| 
       217 
244 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
| 
         @@ -451,6 +478,33 @@ 
     | 
|
| 
       451 
478 
     | 
    
         
             
                                          "type": "number",
         
     | 
| 
       452 
479 
     | 
    
         
             
                                          "description": "Exact length required for validation",
         
     | 
| 
       453 
480 
     | 
    
         
             
                                          "title": "Length"
         
     | 
| 
      
 481 
     | 
    
         
            +
                                        },
         
     | 
| 
      
 482 
     | 
    
         
            +
                                        "regex": {
         
     | 
| 
      
 483 
     | 
    
         
            +
                                          "type": [
         
     | 
| 
      
 484 
     | 
    
         
            +
                                            "array",
         
     | 
| 
      
 485 
     | 
    
         
            +
                                            "boolean",
         
     | 
| 
      
 486 
     | 
    
         
            +
                                            "number",
         
     | 
| 
      
 487 
     | 
    
         
            +
                                            "object",
         
     | 
| 
      
 488 
     | 
    
         
            +
                                            "string",
         
     | 
| 
      
 489 
     | 
    
         
            +
                                            "null"
         
     | 
| 
      
 490 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 491 
     | 
    
         
            +
                                          "oneOf": [
         
     | 
| 
      
 492 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 493 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 494 
     | 
    
         
            +
                                              "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 495 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 496 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 497 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 498 
     | 
    
         
            +
                                              "type": "string",
         
     | 
| 
      
 499 
     | 
    
         
            +
                                              "title": "Regex (string)"
         
     | 
| 
      
 500 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 501 
     | 
    
         
            +
                                          ],
         
     | 
| 
      
 502 
     | 
    
         
            +
                                          "title": "Regex",
         
     | 
| 
      
 503 
     | 
    
         
            +
                                          "description": "The regex value.",
         
     | 
| 
      
 504 
     | 
    
         
            +
                                          "oneOfTitles": [
         
     | 
| 
      
 505 
     | 
    
         
            +
                                            "Regex (string)",
         
     | 
| 
      
 506 
     | 
    
         
            +
                                            "Regex (string)"
         
     | 
| 
      
 507 
     | 
    
         
            +
                                          ]
         
     | 
| 
       454 
508 
     | 
    
         
             
                                        }
         
     | 
| 
       455 
509 
     | 
    
         
             
                                      },
         
     | 
| 
       456 
510 
     | 
    
         
             
                                      "additionalProperties": true,
         
     | 
| 
         @@ -318,6 +318,33 @@ 
     | 
|
| 
       318 
318 
     | 
    
         
             
                                    "type": "number",
         
     | 
| 
       319 
319 
     | 
    
         
             
                                    "description": "Exact length required for validation",
         
     | 
| 
       320 
320 
     | 
    
         
             
                                    "title": "Length"
         
     | 
| 
      
 321 
     | 
    
         
            +
                                  },
         
     | 
| 
      
 322 
     | 
    
         
            +
                                  "regex": {
         
     | 
| 
      
 323 
     | 
    
         
            +
                                    "type": [
         
     | 
| 
      
 324 
     | 
    
         
            +
                                      "array",
         
     | 
| 
      
 325 
     | 
    
         
            +
                                      "boolean",
         
     | 
| 
      
 326 
     | 
    
         
            +
                                      "number",
         
     | 
| 
      
 327 
     | 
    
         
            +
                                      "object",
         
     | 
| 
      
 328 
     | 
    
         
            +
                                      "string",
         
     | 
| 
      
 329 
     | 
    
         
            +
                                      "null"
         
     | 
| 
      
 330 
     | 
    
         
            +
                                    ],
         
     | 
| 
      
 331 
     | 
    
         
            +
                                    "oneOf": [
         
     | 
| 
      
 332 
     | 
    
         
            +
                                      {
         
     | 
| 
      
 333 
     | 
    
         
            +
                                        "type": "string",
         
     | 
| 
      
 334 
     | 
    
         
            +
                                        "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 335 
     | 
    
         
            +
                                        "title": "Regex (string)"
         
     | 
| 
      
 336 
     | 
    
         
            +
                                      },
         
     | 
| 
      
 337 
     | 
    
         
            +
                                      {
         
     | 
| 
      
 338 
     | 
    
         
            +
                                        "type": "string",
         
     | 
| 
      
 339 
     | 
    
         
            +
                                        "title": "Regex (string)"
         
     | 
| 
      
 340 
     | 
    
         
            +
                                      }
         
     | 
| 
      
 341 
     | 
    
         
            +
                                    ],
         
     | 
| 
      
 342 
     | 
    
         
            +
                                    "title": "Regex",
         
     | 
| 
      
 343 
     | 
    
         
            +
                                    "description": "The regex value.",
         
     | 
| 
      
 344 
     | 
    
         
            +
                                    "oneOfTitles": [
         
     | 
| 
      
 345 
     | 
    
         
            +
                                      "Regex (string)",
         
     | 
| 
      
 346 
     | 
    
         
            +
                                      "Regex (string)"
         
     | 
| 
      
 347 
     | 
    
         
            +
                                    ]
         
     | 
| 
       321 
348 
     | 
    
         
             
                                  }
         
     | 
| 
       322 
349 
     | 
    
         
             
                                },
         
     | 
| 
       323 
350 
     | 
    
         
             
                                "additionalProperties": true,
         
     | 
| 
         @@ -487,6 +514,33 @@ 
     | 
|
| 
       487 
514 
     | 
    
         
             
                                    "type": "number",
         
     | 
| 
       488 
515 
     | 
    
         
             
                                    "description": "Exact length required for validation",
         
     | 
| 
       489 
516 
     | 
    
         
             
                                    "title": "Length"
         
     | 
| 
      
 517 
     | 
    
         
            +
                                  },
         
     | 
| 
      
 518 
     | 
    
         
            +
                                  "regex": {
         
     | 
| 
      
 519 
     | 
    
         
            +
                                    "type": [
         
     | 
| 
      
 520 
     | 
    
         
            +
                                      "array",
         
     | 
| 
      
 521 
     | 
    
         
            +
                                      "boolean",
         
     | 
| 
      
 522 
     | 
    
         
            +
                                      "number",
         
     | 
| 
      
 523 
     | 
    
         
            +
                                      "object",
         
     | 
| 
      
 524 
     | 
    
         
            +
                                      "string",
         
     | 
| 
      
 525 
     | 
    
         
            +
                                      "null"
         
     | 
| 
      
 526 
     | 
    
         
            +
                                    ],
         
     | 
| 
      
 527 
     | 
    
         
            +
                                    "oneOf": [
         
     | 
| 
      
 528 
     | 
    
         
            +
                                      {
         
     | 
| 
      
 529 
     | 
    
         
            +
                                        "type": "string",
         
     | 
| 
      
 530 
     | 
    
         
            +
                                        "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 531 
     | 
    
         
            +
                                        "title": "Regex (string)"
         
     | 
| 
      
 532 
     | 
    
         
            +
                                      },
         
     | 
| 
      
 533 
     | 
    
         
            +
                                      {
         
     | 
| 
      
 534 
     | 
    
         
            +
                                        "type": "string",
         
     | 
| 
      
 535 
     | 
    
         
            +
                                        "title": "Regex (string)"
         
     | 
| 
      
 536 
     | 
    
         
            +
                                      }
         
     | 
| 
      
 537 
     | 
    
         
            +
                                    ],
         
     | 
| 
      
 538 
     | 
    
         
            +
                                    "title": "Regex",
         
     | 
| 
      
 539 
     | 
    
         
            +
                                    "description": "The regex value.",
         
     | 
| 
      
 540 
     | 
    
         
            +
                                    "oneOfTitles": [
         
     | 
| 
      
 541 
     | 
    
         
            +
                                      "Regex (string)",
         
     | 
| 
      
 542 
     | 
    
         
            +
                                      "Regex (string)"
         
     | 
| 
      
 543 
     | 
    
         
            +
                                    ]
         
     | 
| 
       490 
544 
     | 
    
         
             
                                  }
         
     | 
| 
       491 
545 
     | 
    
         
             
                                },
         
     | 
| 
       492 
546 
     | 
    
         
             
                                "additionalProperties": true,
         
     | 
| 
         @@ -739,6 +793,33 @@ 
     | 
|
| 
       739 
793 
     | 
    
         
             
                                "type": "number",
         
     | 
| 
       740 
794 
     | 
    
         
             
                                "description": "Exact length required for validation",
         
     | 
| 
       741 
795 
     | 
    
         
             
                                "title": "Length"
         
     | 
| 
      
 796 
     | 
    
         
            +
                              },
         
     | 
| 
      
 797 
     | 
    
         
            +
                              "regex": {
         
     | 
| 
      
 798 
     | 
    
         
            +
                                "type": [
         
     | 
| 
      
 799 
     | 
    
         
            +
                                  "array",
         
     | 
| 
      
 800 
     | 
    
         
            +
                                  "boolean",
         
     | 
| 
      
 801 
     | 
    
         
            +
                                  "number",
         
     | 
| 
      
 802 
     | 
    
         
            +
                                  "object",
         
     | 
| 
      
 803 
     | 
    
         
            +
                                  "string",
         
     | 
| 
      
 804 
     | 
    
         
            +
                                  "null"
         
     | 
| 
      
 805 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 806 
     | 
    
         
            +
                                "oneOf": [
         
     | 
| 
      
 807 
     | 
    
         
            +
                                  {
         
     | 
| 
      
 808 
     | 
    
         
            +
                                    "type": "string",
         
     | 
| 
      
 809 
     | 
    
         
            +
                                    "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 810 
     | 
    
         
            +
                                    "title": "Regex (string)"
         
     | 
| 
      
 811 
     | 
    
         
            +
                                  },
         
     | 
| 
      
 812 
     | 
    
         
            +
                                  {
         
     | 
| 
      
 813 
     | 
    
         
            +
                                    "type": "string",
         
     | 
| 
      
 814 
     | 
    
         
            +
                                    "title": "Regex (string)"
         
     | 
| 
      
 815 
     | 
    
         
            +
                                  }
         
     | 
| 
      
 816 
     | 
    
         
            +
                                ],
         
     | 
| 
      
 817 
     | 
    
         
            +
                                "title": "Regex",
         
     | 
| 
      
 818 
     | 
    
         
            +
                                "description": "The regex value.",
         
     | 
| 
      
 819 
     | 
    
         
            +
                                "oneOfTitles": [
         
     | 
| 
      
 820 
     | 
    
         
            +
                                  "Regex (string)",
         
     | 
| 
      
 821 
     | 
    
         
            +
                                  "Regex (string)"
         
     | 
| 
      
 822 
     | 
    
         
            +
                                ]
         
     | 
| 
       742 
823 
     | 
    
         
             
                              }
         
     | 
| 
       743 
824 
     | 
    
         
             
                            },
         
     | 
| 
       744 
825 
     | 
    
         
             
                            "additionalProperties": true,
         
     | 
    
        package/schemas/page-schema.json
    CHANGED
    
    | 
         @@ -181,6 +181,33 @@ 
     | 
|
| 
       181 
181 
     | 
    
         
             
                            "type": "number",
         
     | 
| 
       182 
182 
     | 
    
         
             
                            "description": "Exact length required for validation",
         
     | 
| 
       183 
183 
     | 
    
         
             
                            "title": "Length"
         
     | 
| 
      
 184 
     | 
    
         
            +
                          },
         
     | 
| 
      
 185 
     | 
    
         
            +
                          "regex": {
         
     | 
| 
      
 186 
     | 
    
         
            +
                            "type": [
         
     | 
| 
      
 187 
     | 
    
         
            +
                              "array",
         
     | 
| 
      
 188 
     | 
    
         
            +
                              "boolean",
         
     | 
| 
      
 189 
     | 
    
         
            +
                              "number",
         
     | 
| 
      
 190 
     | 
    
         
            +
                              "object",
         
     | 
| 
      
 191 
     | 
    
         
            +
                              "string",
         
     | 
| 
      
 192 
     | 
    
         
            +
                              "null"
         
     | 
| 
      
 193 
     | 
    
         
            +
                            ],
         
     | 
| 
      
 194 
     | 
    
         
            +
                            "oneOf": [
         
     | 
| 
      
 195 
     | 
    
         
            +
                              {
         
     | 
| 
      
 196 
     | 
    
         
            +
                                "type": "string",
         
     | 
| 
      
 197 
     | 
    
         
            +
                                "description": "Regex expression for validation of user field content",
         
     | 
| 
      
 198 
     | 
    
         
            +
                                "title": "Regex (string)"
         
     | 
| 
      
 199 
     | 
    
         
            +
                              },
         
     | 
| 
      
 200 
     | 
    
         
            +
                              {
         
     | 
| 
      
 201 
     | 
    
         
            +
                                "type": "string",
         
     | 
| 
      
 202 
     | 
    
         
            +
                                "title": "Regex (string)"
         
     | 
| 
      
 203 
     | 
    
         
            +
                              }
         
     | 
| 
      
 204 
     | 
    
         
            +
                            ],
         
     | 
| 
      
 205 
     | 
    
         
            +
                            "title": "Regex",
         
     | 
| 
      
 206 
     | 
    
         
            +
                            "description": "The regex value.",
         
     | 
| 
      
 207 
     | 
    
         
            +
                            "oneOfTitles": [
         
     | 
| 
      
 208 
     | 
    
         
            +
                              "Regex (string)",
         
     | 
| 
      
 209 
     | 
    
         
            +
                              "Regex (string)"
         
     | 
| 
      
 210 
     | 
    
         
            +
                            ]
         
     | 
| 
       184 
211 
     | 
    
         
             
                          }
         
     | 
| 
       185 
212 
     | 
    
         
             
                        },
         
     | 
| 
       186 
213 
     | 
    
         
             
                        "additionalProperties": true,
         
     | 
| 
         @@ -444,6 +444,21 @@ export const conditionWrapperSchemaV2 = Joi.object<ConditionWrapperV2>() 
     | 
|
| 
       444 
444 
     | 
    
         
             
              })
         
     | 
| 
       445 
445 
     | 
    
         
             
              .description('Condition schema for V2 forms')
         
     | 
| 
       446 
446 
     | 
    
         | 
| 
      
 447 
     | 
    
         
            +
            export const regexCustomValidator = (
         
     | 
| 
      
 448 
     | 
    
         
            +
              value: string,
         
     | 
| 
      
 449 
     | 
    
         
            +
              helpers: CustomHelpers<string>
         
     | 
| 
      
 450 
     | 
    
         
            +
            ) => {
         
     | 
| 
      
 451 
     | 
    
         
            +
              try {
         
     | 
| 
      
 452 
     | 
    
         
            +
                const _regex = new RegExp(value)
         
     | 
| 
      
 453 
     | 
    
         
            +
              } catch {
         
     | 
| 
      
 454 
     | 
    
         
            +
                return helpers.error('custom.incompatible', {
         
     | 
| 
      
 455 
     | 
    
         
            +
                  errorType: FormDefinitionErrorType.Incompatible,
         
     | 
| 
      
 456 
     | 
    
         
            +
                  errorCode: FormDefinitionError.IncompatibleQuestionRegex
         
     | 
| 
      
 457 
     | 
    
         
            +
                })
         
     | 
| 
      
 458 
     | 
    
         
            +
              }
         
     | 
| 
      
 459 
     | 
    
         
            +
              return value
         
     | 
| 
      
 460 
     | 
    
         
            +
            }
         
     | 
| 
      
 461 
     | 
    
         
            +
             
     | 
| 
       447 
462 
     | 
    
         
             
            export const componentSchema = Joi.object<ComponentDef>()
         
     | 
| 
       448 
463 
     | 
    
         
             
              .description('Form component definition specifying UI element behavior')
         
     | 
| 
       449 
464 
     | 
    
         
             
              .keys({
         
     | 
| 
         @@ -531,7 +546,19 @@ export const componentSchema = Joi.object<ComponentDef>() 
     | 
|
| 
       531 
546 
     | 
    
         
             
                    .description('Maximum value or length for validation'),
         
     | 
| 
       532 
547 
     | 
    
         
             
                  length: Joi.number()
         
     | 
| 
       533 
548 
     | 
    
         
             
                    .empty('')
         
     | 
| 
       534 
     | 
    
         
            -
                    .description('Exact length required for validation')
         
     | 
| 
      
 549 
     | 
    
         
            +
                    .description('Exact length required for validation'),
         
     | 
| 
      
 550 
     | 
    
         
            +
                  regex: Joi.when('type', {
         
     | 
| 
      
 551 
     | 
    
         
            +
                    is: Joi.string().valid(
         
     | 
| 
      
 552 
     | 
    
         
            +
                      ComponentType.TextField,
         
     | 
| 
      
 553 
     | 
    
         
            +
                      ComponentType.MultilineTextField
         
     | 
| 
      
 554 
     | 
    
         
            +
                    ),
         
     | 
| 
      
 555 
     | 
    
         
            +
                    then: Joi.string() // NOSONAR
         
     | 
| 
      
 556 
     | 
    
         
            +
                      .trim()
         
     | 
| 
      
 557 
     | 
    
         
            +
                      .optional()
         
     | 
| 
      
 558 
     | 
    
         
            +
                      .description('Regex expression for validation of user field content')
         
     | 
| 
      
 559 
     | 
    
         
            +
                      .custom(regexCustomValidator),
         
     | 
| 
      
 560 
     | 
    
         
            +
                    otherwise: Joi.string().allow('')
         
     | 
| 
      
 561 
     | 
    
         
            +
                  }).messages({ 'custom.incompatible': 'The regex expression is invalid' })
         
     | 
| 
       535 
562 
     | 
    
         
             
                })
         
     | 
| 
       536 
563 
     | 
    
         
             
                  .unknown(true)
         
     | 
| 
       537 
564 
     | 
    
         
             
                  .default({})
         
     | 
| 
         @@ -46,6 +46,7 @@ export enum FormDefinitionError { 
     | 
|
| 
       46 
46 
     | 
    
         
             
              RefConditionConditionId = 'ref_condition_condition_id',
         
     | 
| 
       47 
47 
     | 
    
         
             
              RefPageComponentList = 'ref_page_component_list',
         
     | 
| 
       48 
48 
     | 
    
         
             
              IncompatibleConditionComponentType = 'incompatible_condition_component_type',
         
     | 
| 
      
 49 
     | 
    
         
            +
              IncompatibleQuestionRegex = 'incompatible_question_regex',
         
     | 
| 
       49 
50 
     | 
    
         
             
              Other = 'other'
         
     | 
| 
       50 
51 
     | 
    
         
             
            }
         
     | 
| 
       51 
52 
     | 
    
         | 
| 
         @@ -142,6 +143,10 @@ export const formDefinitionErrors: FormDefinitionErrors = { 
     | 
|
| 
       142 
143 
     | 
    
         
             
                key: 'componentId',
         
     | 
| 
       143 
144 
     | 
    
         
             
                type: FormDefinitionErrorType.Incompatible
         
     | 
| 
       144 
145 
     | 
    
         
             
              },
         
     | 
| 
      
 146 
     | 
    
         
            +
              [FormDefinitionError.IncompatibleQuestionRegex]: {
         
     | 
| 
      
 147 
     | 
    
         
            +
                key: 'regex',
         
     | 
| 
      
 148 
     | 
    
         
            +
                type: FormDefinitionErrorType.Incompatible
         
     | 
| 
      
 149 
     | 
    
         
            +
              },
         
     | 
| 
       145 
150 
     | 
    
         
             
              [FormDefinitionError.Other]: {
         
     | 
| 
       146 
151 
     | 
    
         
             
                key: '',
         
     | 
| 
       147 
152 
     | 
    
         
             
                type: FormDefinitionErrorType.Type
         
     |