@contentful/experiences-validators 3.2.0-dev-20250812T1437-66fa8cb.0 → 3.2.1-dev-20250818T1739-df3d95e.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.cjs CHANGED
@@ -189,10 +189,12 @@ const ParameterSchema = zod.z.object({
189
189
  path: zod.z.string(),
190
190
  });
191
191
  const ParametersSchema = zod.z.record(propertyKeySchema, ParameterSchema);
192
+ const BREAKPOINT_QUERY_REGEX = /^\*$|^[<>][0-9]+px$/;
192
193
  const BreakpointSchema = zod.z
193
194
  .object({
194
195
  id: propertyKeySchema,
195
- query: zod.z.string().regex(/^\*$|^[<>][0-9*]+px$/),
196
+ // Can be replace with z.templateLiteral when upgrading to zod v4
197
+ query: zod.z.string().refine((s) => BREAKPOINT_QUERY_REGEX.test(s)),
196
198
  previewSize: zod.z.string(),
197
199
  displayName: zod.z.string(),
198
200
  displayIcon: zod.z.enum(['desktop', 'tablet', 'mobile']).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.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\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^[<>][0-9*]+px$/),\n previewSize: z.string(),\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 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 });\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","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';\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.record(z.string(), z.object({ path: z.string() })),\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.array(PassToNodeSchema).optional(),\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\nexport const PatternFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n});\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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.object({\n id: DefinitionPropertyKeySchema,\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\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 { BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints): 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":["z","ZodIssueCode","VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.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 replace 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(),\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 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 });\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","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';\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.record(z.string(), z.object({ path: z.string() })),\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.array(PassToNodeSchema).optional(),\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\nexport const PatternFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n});\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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.object({\n id: DefinitionPropertyKeySchema,\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\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 { BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints): 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":["z","ZodIssueCode","VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -179,15 +179,16 @@ declare const ParameterSchema: z.ZodObject<{
179
179
  path: string;
180
180
  type: "BoundValue";
181
181
  }>;
182
+ type BreakpointQuery = '*' | `>${number}px` | `<${number}px`;
182
183
  declare const BreakpointSchema: z.ZodObject<{
183
184
  id: z.ZodString;
184
- query: z.ZodString;
185
+ query: z.ZodEffects<z.ZodString, BreakpointQuery, string>;
185
186
  previewSize: z.ZodString;
186
187
  displayName: z.ZodString;
187
188
  displayIcon: z.ZodOptional<z.ZodEnum<["desktop", "tablet", "mobile"]>>;
188
189
  }, "strict", z.ZodTypeAny, {
189
190
  id: string;
190
- query: string;
191
+ query: BreakpointQuery;
191
192
  previewSize: string;
192
193
  displayName: string;
193
194
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -332,13 +333,13 @@ type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {
332
333
  declare const ComponentTreeSchema: z.ZodObject<{
333
334
  breakpoints: z.ZodEffects<z.ZodArray<z.ZodObject<{
334
335
  id: z.ZodString;
335
- query: z.ZodString;
336
+ query: z.ZodEffects<z.ZodString, BreakpointQuery, string>;
336
337
  previewSize: z.ZodString;
337
338
  displayName: z.ZodString;
338
339
  displayIcon: z.ZodOptional<z.ZodEnum<["desktop", "tablet", "mobile"]>>;
339
340
  }, "strict", z.ZodTypeAny, {
340
341
  id: string;
341
- query: string;
342
+ query: BreakpointQuery;
342
343
  previewSize: string;
343
344
  displayName: string;
344
345
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -350,7 +351,7 @@ declare const ComponentTreeSchema: z.ZodObject<{
350
351
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
351
352
  }>, "many">, {
352
353
  id: string;
353
- query: string;
354
+ query: BreakpointQuery;
354
355
  previewSize: string;
355
356
  displayName: string;
356
357
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -367,7 +368,7 @@ declare const ComponentTreeSchema: z.ZodObject<{
367
368
  children: ComponentTreeNode[];
368
369
  breakpoints: {
369
370
  id: string;
370
- query: string;
371
+ query: BreakpointQuery;
371
372
  previewSize: string;
372
373
  displayName: string;
373
374
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
package/dist/index.js CHANGED
@@ -187,10 +187,12 @@ const ParameterSchema = z.object({
187
187
  path: z.string(),
188
188
  });
189
189
  const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);
190
+ const BREAKPOINT_QUERY_REGEX = /^\*$|^[<>][0-9]+px$/;
190
191
  const BreakpointSchema = z
191
192
  .object({
192
193
  id: propertyKeySchema,
193
- query: z.string().regex(/^\*$|^[<>][0-9*]+px$/),
194
+ // Can be replace with z.templateLiteral when upgrading to zod v4
195
+ query: z.string().refine((s) => BREAKPOINT_QUERY_REGEX.test(s)),
194
196
  previewSize: z.string(),
195
197
  displayName: z.string(),
196
198
  displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),
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/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\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^[<>][0-9*]+px$/),\n previewSize: z.string(),\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 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 });\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","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';\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.record(z.string(), z.object({ path: z.string() })),\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.array(PassToNodeSchema).optional(),\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\nexport const PatternFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n});\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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.object({\n id: DefinitionPropertyKeySchema,\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\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 { BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints): 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/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 replace 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(),\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 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 });\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","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';\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.record(z.string(), z.object({ path: z.string() })),\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.array(PassToNodeSchema).optional(),\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\nexport const PatternFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n});\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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.object({\n id: DefinitionPropertyKeySchema,\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\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 { BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints): 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/dist/types.d.ts CHANGED
@@ -178,15 +178,16 @@ declare const ParameterSchema: z.ZodObject<{
178
178
  path: string;
179
179
  type: "BoundValue";
180
180
  }>;
181
+ type BreakpointQuery = '*' | `>${number}px` | `<${number}px`;
181
182
  declare const BreakpointSchema: z.ZodObject<{
182
183
  id: z.ZodString;
183
- query: z.ZodString;
184
+ query: z.ZodEffects<z.ZodString, BreakpointQuery, string>;
184
185
  previewSize: z.ZodString;
185
186
  displayName: z.ZodString;
186
187
  displayIcon: z.ZodOptional<z.ZodEnum<["desktop", "tablet", "mobile"]>>;
187
188
  }, "strict", z.ZodTypeAny, {
188
189
  id: string;
189
- query: string;
190
+ query: BreakpointQuery;
190
191
  previewSize: string;
191
192
  displayName: string;
192
193
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -331,13 +332,13 @@ type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {
331
332
  declare const ComponentTreeSchema: z.ZodObject<{
332
333
  breakpoints: z.ZodEffects<z.ZodArray<z.ZodObject<{
333
334
  id: z.ZodString;
334
- query: z.ZodString;
335
+ query: z.ZodEffects<z.ZodString, BreakpointQuery, string>;
335
336
  previewSize: z.ZodString;
336
337
  displayName: z.ZodString;
337
338
  displayIcon: z.ZodOptional<z.ZodEnum<["desktop", "tablet", "mobile"]>>;
338
339
  }, "strict", z.ZodTypeAny, {
339
340
  id: string;
340
- query: string;
341
+ query: BreakpointQuery;
341
342
  previewSize: string;
342
343
  displayName: string;
343
344
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -349,7 +350,7 @@ declare const ComponentTreeSchema: z.ZodObject<{
349
350
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
350
351
  }>, "many">, {
351
352
  id: string;
352
- query: string;
353
+ query: BreakpointQuery;
353
354
  previewSize: string;
354
355
  displayName: string;
355
356
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
@@ -366,7 +367,7 @@ declare const ComponentTreeSchema: z.ZodObject<{
366
367
  children: ComponentTreeNode[];
367
368
  breakpoints: {
368
369
  id: string;
369
- query: string;
370
+ query: BreakpointQuery;
370
371
  previewSize: string;
371
372
  displayName: string;
372
373
  displayIcon?: "desktop" | "tablet" | "mobile" | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experiences-validators",
3
- "version": "3.2.0-dev-20250812T1437-66fa8cb.0",
3
+ "version": "3.2.1-dev-20250818T1739-df3d95e.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -51,5 +51,5 @@
51
51
  "publishConfig": {
52
52
  "registry": "https://npm.pkg.github.com/"
53
53
  },
54
- "gitHead": "bc143a691120e520dd64a918f11255bc3d2e60a7"
54
+ "gitHead": "e890a262adcdbba32ca2364efac1f74d5e2a7445"
55
55
  }