@contentful/experiences-validators 3.8.10 → 3.8.11-beta.0

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/index.js CHANGED
@@ -135,7 +135,7 @@ const breakpointsRefinement = (value, ctx) => {
135
135
  });
136
136
  }
137
137
  };
138
- const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));
138
+ const ValuesByBreakpointSchema = z.record(z.string(), z.lazy(() => PrimitiveValueSchema));
139
139
  const BindingSourceTypeEnumSchema = z
140
140
  .array(z.enum(['entry', 'asset', 'manual', 'experience']))
141
141
  .nonempty();
@@ -309,11 +309,10 @@ const VariableMappingSchema = z.object({
309
309
  pathsByContentType: z
310
310
  .record(z.string(), z.object({ path: z.string() }))
311
311
  .superRefine((paths, ctx) => {
312
- const variableId = ctx.path[ctx.path.length - 2];
313
312
  if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {
314
313
  ctx.addIssue({
315
314
  code: z.ZodIssueCode.custom,
316
- message: `Too many paths defined for variable mapping with id "${variableId}", maximum allowed is ${MAX_ALLOWED_PATHS}`,
315
+ message: `Too many paths defined for variable mapping, maximum allowed is ${MAX_ALLOWED_PATHS}`,
317
316
  });
318
317
  }
319
318
  }),
@@ -488,7 +487,7 @@ const ComponentDefinitionSchema = z
488
487
  if (typeof val.defaultValue !== 'undefined') {
489
488
  ctx.addIssue({
490
489
  code: z.ZodIssueCode.custom,
491
- message: `defaultValue is not supported for "Array" type for ${ctx.path.join('.')}`,
490
+ message: `defaultValue is not supported for "Array" type`,
492
491
  fatal: false,
493
492
  });
494
493
  }
@@ -497,7 +496,7 @@ const ComponentDefinitionSchema = z
497
496
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {
498
497
  ctx.addIssue({
499
498
  code: z.ZodIssueCode.custom,
500
- message: `defaultValue must be a boolean when type is "Boolean" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
499
+ message: `defaultValue must be a boolean when type is "Boolean", got ${typeof val.defaultValue} instead`,
501
500
  fatal: false,
502
501
  });
503
502
  }
@@ -506,7 +505,7 @@ const ComponentDefinitionSchema = z
506
505
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {
507
506
  ctx.addIssue({
508
507
  code: z.ZodIssueCode.custom,
509
- message: `defaultValue must be a string when type is "Date" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
508
+ message: `defaultValue must be a string when type is "Date", got ${typeof val.defaultValue} instead`,
510
509
  fatal: false,
511
510
  });
512
511
  }
@@ -515,7 +514,7 @@ const ComponentDefinitionSchema = z
515
514
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {
516
515
  ctx.addIssue({
517
516
  code: z.ZodIssueCode.custom,
518
- message: `defaultValue must be a string when type is "Hyperlink" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
517
+ message: `defaultValue must be a string when type is "Hyperlink", got ${typeof val.defaultValue} instead`,
519
518
  fatal: false,
520
519
  });
521
520
  }
@@ -524,7 +523,7 @@ const ComponentDefinitionSchema = z
524
523
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {
525
524
  ctx.addIssue({
526
525
  code: z.ZodIssueCode.custom,
527
- message: `defaultValue is not supported for "Link" type for ${ctx.path.join('.')}`,
526
+ message: `defaultValue is not supported for "Link" type`,
528
527
  fatal: false,
529
528
  });
530
529
  }
@@ -533,7 +532,7 @@ const ComponentDefinitionSchema = z
533
532
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {
534
533
  ctx.addIssue({
535
534
  code: z.ZodIssueCode.custom,
536
- message: `defaultValue must be an object when type is "Location" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
535
+ message: `defaultValue must be an object when type is "Location", got ${typeof val.defaultValue} instead`,
537
536
  fatal: false,
538
537
  });
539
538
  }
@@ -542,7 +541,7 @@ const ComponentDefinitionSchema = z
542
541
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {
543
542
  ctx.addIssue({
544
543
  code: z.ZodIssueCode.custom,
545
- message: `defaultValue must be a string when type is "Media" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
544
+ message: `defaultValue must be a string when type is "Media", got ${typeof val.defaultValue} instead`,
546
545
  fatal: false,
547
546
  });
548
547
  }
@@ -551,7 +550,7 @@ const ComponentDefinitionSchema = z
551
550
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {
552
551
  ctx.addIssue({
553
552
  code: z.ZodIssueCode.custom,
554
- message: `defaultValue must be a number when type is "Number" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
553
+ message: `defaultValue must be a number when type is "Number", got ${typeof val.defaultValue} instead`,
555
554
  fatal: false,
556
555
  });
557
556
  }
@@ -560,7 +559,7 @@ const ComponentDefinitionSchema = z
560
559
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {
561
560
  ctx.addIssue({
562
561
  code: z.ZodIssueCode.custom,
563
- message: `defaultValue must be an object when type is "Object" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
562
+ message: `defaultValue must be an object when type is "Object", got ${typeof val.defaultValue} instead`,
564
563
  fatal: false,
565
564
  });
566
565
  }
@@ -569,7 +568,7 @@ const ComponentDefinitionSchema = z
569
568
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {
570
569
  ctx.addIssue({
571
570
  code: z.ZodIssueCode.custom,
572
- message: `defaultValue must be an object when type is "RichText" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
571
+ message: `defaultValue must be an object when type is "RichText", got ${typeof val.defaultValue} instead`,
573
572
  fatal: false,
574
573
  });
575
574
  }
@@ -578,7 +577,7 @@ const ComponentDefinitionSchema = z
578
577
  if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {
579
578
  ctx.addIssue({
580
579
  code: z.ZodIssueCode.custom,
581
- message: `defaultValue must be a string when type is "Text" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,
580
+ message: `defaultValue must be a string when type is "Text", got ${typeof val.defaultValue} instead`,
582
581
  fatal: false,
583
582
  });
584
583
  }
@@ -619,15 +618,19 @@ var CodeNames;
619
618
  CodeNames["Custom"] = "custom";
620
619
  })(CodeNames || (CodeNames = {}));
621
620
  const convertInvalidType = (issue) => {
622
- const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;
623
- const details = issue.received === 'undefined'
621
+ // Zod v4 omits 'input'/'received' from invalid_type issues; parse message instead.
622
+ // Message format: "Invalid input: expected X, received Y"
623
+ const received = issue.message?.match(/received (\S+)$/)?.[1] ?? 'undefined';
624
+ const isMissing = received === 'undefined';
625
+ const name = isMissing ? CodeNames.Required : CodeNames.Type;
626
+ const details = isMissing
624
627
  ? `The property "${issue.path.slice(-1)}" is required here`
625
628
  : `The type of "${issue.path.slice(-1)}" is incorrect, expected type: ${issue.expected}`;
626
629
  return {
627
- details: details,
628
- name: name,
630
+ details,
631
+ name,
629
632
  path: issue.path,
630
- value: issue.received.toString(),
633
+ value: received,
631
634
  };
632
635
  };
633
636
  const convertUnrecognizedKeys = (issue) => {
@@ -643,26 +646,17 @@ const convertUnrecognizedKeys = (issue) => {
643
646
  const convertInvalidString = (issue) => {
644
647
  return {
645
648
  details: issue.message || 'Invalid string',
646
- name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,
649
+ name: issue.format === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,
647
650
  path: issue.path,
648
651
  };
649
652
  };
650
- const convertInvalidEnumValue = (issue) => {
653
+ const convertInvalidValue = (issue) => {
651
654
  return {
652
655
  details: issue.message || 'Value must be one of expected values',
653
656
  name: CodeNames.In,
654
657
  path: issue.path,
655
- value: issue.received.toString(),
656
- expected: issue.options,
657
- };
658
- };
659
- const convertInvalidLiteral = (issue) => {
660
- return {
661
- details: issue.message || 'Value must be one of expected values',
662
- name: CodeNames.In,
663
- path: issue.path,
664
- value: issue.received,
665
- expected: [issue.expected],
658
+ value: String(issue.input ?? ''),
659
+ expected: issue.values,
666
660
  };
667
661
  };
668
662
  const convertTooBig = (issue) => {
@@ -694,16 +688,23 @@ const zodToContentfulError = (issue) => {
694
688
  return convertInvalidType(issue);
695
689
  case ZodIssueCode.unrecognized_keys:
696
690
  return convertUnrecognizedKeys(issue);
697
- case ZodIssueCode.invalid_enum_value:
698
- return convertInvalidEnumValue(issue);
699
- case ZodIssueCode.invalid_string:
691
+ case ZodIssueCode.invalid_value:
692
+ return convertInvalidValue(issue);
693
+ case ZodIssueCode.invalid_format:
700
694
  return convertInvalidString(issue);
701
695
  case ZodIssueCode.too_small:
702
696
  return convertTooSmall(issue);
703
697
  case ZodIssueCode.too_big:
704
698
  return convertTooBig(issue);
705
- case ZodIssueCode.invalid_literal:
706
- return convertInvalidLiteral(issue);
699
+ case ZodIssueCode.invalid_key: {
700
+ // Zod v4 wraps record key validation failures; forward to the inner issue
701
+ const innerIssues = issue.issues;
702
+ const innerIssue = innerIssues?.[0];
703
+ if (innerIssue) {
704
+ return zodToContentfulError({ ...innerIssue, path: issue.path });
705
+ }
706
+ return defaultConversion(issue);
707
+ }
707
708
  default:
708
709
  return defaultConversion(issue);
709
710
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be replaced with z.templateLiteral when upgrading to zod v4\n query: z.string().refine((s): s is BreakpointQuery => BREAKPOINT_QUERY_REGEX.test(s)),\n previewSize: z.string().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n }).superRefine(({ id, prebindingId, parameters }, ctx) => {\n // We don't fail if parameters are present but prebindingId is not because\n // older experiences (updated before 21-09-2025) always included parameters\n // and they will start failing if we do.\n if (prebindingId && !parameters) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found \"prebindingId\" but no \"parameters\" for node with id: \"${id}\"`,\n });\n }\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = (fieldSchema: ZodTypeAny) => z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n const variableId = ctx.path[ctx.path.length - 2];\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping with id \"${variableId}\", maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.'),\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n const nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue, z } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst convertInvalidType = (issue: z.ZodInvalidTypeIssue): ContentfulErrorDetails => {\n const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;\n const details =\n issue.received === 'undefined'\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details: details,\n name: name,\n path: issue.path,\n value: issue.received.toString(),\n };\n};\n\nconst convertUnrecognizedKeys = (issue: z.ZodUnrecognizedKeysIssue): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path,\n };\n};\n\nconst convertInvalidString = (issue: z.ZodInvalidStringIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path,\n };\n};\nconst convertInvalidEnumValue = (issue: z.ZodInvalidEnumValueIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received.toString(),\n expected: issue.options,\n };\n};\nconst convertInvalidLiteral = (issue: z.ZodInvalidLiteralIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received as string,\n expected: [issue.expected as string],\n };\n};\n\nconst convertTooBig = (issue: z.ZodTooBigIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path,\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (issue: z.ZodTooSmallIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path,\n min: issue.minimum,\n };\n};\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_enum_value:\n return convertInvalidEnumValue(issue);\n case ZodIssueCode.invalid_string:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_literal:\n return convertInvalidLiteral(issue);\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(\n z.string(),\n z.lazy(() => PrimitiveValueSchema),\n);\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be replaced with z.templateLiteral when upgrading to zod v4\n query: z.string().refine((s): s is BreakpointQuery => BREAKPOINT_QUERY_REGEX.test(s)),\n previewSize: z.string().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n }).superRefine(({ id, prebindingId, parameters }, ctx) => {\n // We don't fail if parameters are present but prebindingId is not because\n // older experiences (updated before 21-09-2025) always included parameters\n // and they will start failing if we do.\n if (prebindingId && !parameters) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found \"prebindingId\" but no \"parameters\" for node with id: \"${id}\"`,\n });\n }\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = <T extends ZodTypeAny>(fieldSchema: T) =>\n z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping, maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.'),\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n const nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\", got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst getInputTypeName = (input: unknown): string => {\n if (input === null) return 'null';\n if (Array.isArray(input)) return 'array';\n return typeof input;\n};\n\nconst convertInvalidType = (\n issue: Extract<ZodIssue, { code: 'invalid_type' }>,\n): ContentfulErrorDetails => {\n // Zod v4 omits 'input'/'received' from invalid_type issues; parse message instead.\n // Message format: \"Invalid input: expected X, received Y\"\n const received = issue.message?.match(/received (\\S+)$/)?.[1] ?? 'undefined';\n const isMissing = received === 'undefined';\n const name = isMissing ? CodeNames.Required : CodeNames.Type;\n const details = isMissing\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details,\n name,\n path: issue.path as (string | number)[],\n value: received,\n };\n};\n\nconst convertUnrecognizedKeys = (\n issue: Extract<ZodIssue, { code: 'unrecognized_keys' }>,\n): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path as (string | number)[],\n };\n};\n\nconst convertInvalidString = (\n issue: Extract<ZodIssue, { code: 'invalid_format' }>,\n): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.format === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path as (string | number)[],\n };\n};\n\nconst convertInvalidValue = (\n issue: Extract<ZodIssue, { code: 'invalid_value' }>,\n): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path as (string | number)[],\n value: String(issue.input ?? ''),\n expected: issue.values as (string | number)[],\n };\n};\n\nconst convertTooBig = (issue: Extract<ZodIssue, { code: 'too_big' }>): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path as (string | number)[],\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (\n issue: Extract<ZodIssue, { code: 'too_small' }>,\n): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path as (string | number)[],\n min: issue.minimum,\n };\n};\n\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_value:\n return convertInvalidValue(issue);\n case ZodIssueCode.invalid_format:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_key: {\n // Zod v4 wraps record key validation failures; forward to the inner issue\n const innerIssues = (issue as { issues?: ZodIssue[] }).issues;\n const innerIssue = innerIssues?.[0];\n if (innerIssue) {\n return zodToContentfulError({ ...innerIssue, path: issue.path } as ZodIssue);\n }\n return defaultConversion(issue);\n }\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experiences-validators",
3
- "version": "3.8.10",
3
+ "version": "3.8.11-beta.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -39,17 +39,17 @@
39
39
  }
40
40
  },
41
41
  "devDependencies": {
42
- "@vitest/coverage-v8": "^2.1.1",
43
- "typescript": "^5.2.2",
42
+ "@vitest/coverage-v8": "^4.1.11",
43
+ "typescript": "^7.0.2",
44
44
  "vite": "^5.0.8",
45
- "vite-tsconfig-paths": "^5.1.4",
46
- "vitest": "^2.1.1"
45
+ "vite-tsconfig-paths": "^6.1.1",
46
+ "vitest": "^4.1.11"
47
47
  },
48
48
  "dependencies": {
49
- "zod": "^3.22.4"
49
+ "zod": "^4.4.3"
50
50
  },
51
51
  "publishConfig": {
52
52
  "registry": "https://npm.pkg.github.com/"
53
53
  },
54
- "gitHead": "30440adfcd0fe2e55e919d888249c88c4e35b064"
54
+ "gitHead": "d8262da24d649606e35c920bd889028ed7a0b360"
55
55
  }