@contentful/experiences-validators 3.7.2-dev-20250924T1519-77d453c.0 → 3.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +52 -52
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -193,7 +193,7 @@ const BREAKPOINT_QUERY_REGEX = /^\*$|^[<>][0-9]+px$/;
|
|
|
193
193
|
const BreakpointSchema = zod.z
|
|
194
194
|
.object({
|
|
195
195
|
id: propertyKeySchema,
|
|
196
|
-
// Can be
|
|
196
|
+
// Can be replaced with z.templateLiteral when upgrading to zod v4
|
|
197
197
|
query: zod.z.string().refine((s) => BREAKPOINT_QUERY_REGEX.test(s)),
|
|
198
198
|
previewSize: zod.z.string().optional(),
|
|
199
199
|
displayName: zod.z.string(),
|
|
@@ -334,8 +334,7 @@ const ParameterDefinitionSchema = zod.z.object({
|
|
|
334
334
|
contentTypes: zod.z.array(zod.z.string()).min(1),
|
|
335
335
|
passToNodes: zod.z
|
|
336
336
|
.array(PassToNodeSchema)
|
|
337
|
-
.max(1, 'At most one "passToNodes" element is allowed per parameter definition.')
|
|
338
|
-
.optional(), // we might change this to be empty array for native parameter definitions, that's why we don't use .length(1)
|
|
337
|
+
.max(1, 'At most one "passToNodes" element is allowed per parameter definition.'),
|
|
339
338
|
});
|
|
340
339
|
const ParameterDefinitionsSchema = zod.z.record(propertyKeySchema, ParameterDefinitionSchema);
|
|
341
340
|
const VariableMappingsSchema = zod.z.record(propertyKeySchema, VariableMappingSchema);
|
|
@@ -437,7 +436,7 @@ const validatePassToNodes = (rootChildren, componentSettings, ctx) => {
|
|
|
437
436
|
return;
|
|
438
437
|
}
|
|
439
438
|
const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];
|
|
440
|
-
|
|
439
|
+
const nodeIds = new Set();
|
|
441
440
|
for (const paramDef of Object.values(parameterDefinitions || {})) {
|
|
442
441
|
paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));
|
|
443
442
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -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/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be 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().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = (fieldSchema: ZodTypeAny) => z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n const variableId = ctx.path[ctx.path.length - 2];\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping with id \"${variableId}\", maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.')\n .optional(), // we might change this to be empty array for native parameter definitions, that's why we don't use .length(1)\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n let nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue, z } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst convertInvalidType = (issue: z.ZodInvalidTypeIssue): ContentfulErrorDetails => {\n const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;\n const details =\n issue.received === 'undefined'\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details: details,\n name: name,\n path: issue.path,\n value: issue.received.toString(),\n };\n};\n\nconst convertUnrecognizedKeys = (issue: z.ZodUnrecognizedKeysIssue): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path,\n };\n};\n\nconst convertInvalidString = (issue: z.ZodInvalidStringIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path,\n };\n};\nconst convertInvalidEnumValue = (issue: z.ZodInvalidEnumValueIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received.toString(),\n expected: issue.options,\n };\n};\nconst convertInvalidLiteral = (issue: z.ZodInvalidLiteralIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received as string,\n expected: [issue.expected as string],\n };\n};\n\nconst convertTooBig = (issue: z.ZodTooBigIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path,\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (issue: z.ZodTooSmallIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path,\n min: issue.minimum,\n };\n};\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_enum_value:\n return convertInvalidEnumValue(issue);\n case ZodIssueCode.invalid_string:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_literal:\n return convertInvalidLiteral(issue);\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["z","ZodIssueCode","VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":";;;;AACA;AACO,MAAM,cAAc,GAAGA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAItD;AACyCA,KAAC,CAAC,KAAK,CAAC;AAC/C,IAAAA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACvB,IAAAA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACvB,IAAAA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACxB,CAAA;;ACPM,MAAM,4BAA4B,GAAGA,KAAC,CAAC,IAAI,CAAC;IACjD,MAAM;IACN,UAAU;IACV,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,WAAW;IACX,OAAO;IACP,MAAM;AACP,CAAA,CAAC,CAAC;AAEI,MAAM,2BAA2B,GAAGA,KAAC;AACzC,KAAA,MAAM,EAAE;KACR,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC,CAAC;AAE5F,MAAM,oBAAoB,GAAGA,KAAC,CAAC,KAAK,CAAC;IAC1CA,KAAC,CAAC,MAAM,EAAE;IACVA,KAAC,CAAC,OAAO,EAAE;IACXA,KAAC,CAAC,MAAM,EAAE;AACV,IAAAA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,GAAG,EAAE,EAAEA,KAAC,CAAC,GAAG,EAAE,CAAC;IAC1BA,KAAC,CAAC,SAAS,EAAE;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,oBAAoB,GAAGA,KAAC,CAAC,KAAK,CACzCA,KAAC,CAAC,MAAM,CAAC;AACP,IAAA,GAAG,EAAEA,KAAC,CAAC,MAAM,CAAC;AACZ,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,QAAA,EAAE,EAAEA,KAAC,CAAC,MAAM,EAAE;AACd,QAAA,QAAQ,EAAEA,KAAC,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B,CAAC;AACH,CAAA,CAAC,CACH,CAAC;AAEK,MAAM,aAAa,GAAGA,KAAC;AAC3B,KAAA,MAAM,EAAE;KACR,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;AAElF,MAAM,gBAAgB,GAAGA,KAAC,CAAC,MAAM,CACtC,aAAa,EACbA,KAAC,CAAC,MAAM,CAAC;AACP,IAAA,GAAG,EAAEA,KAAC,CAAC,MAAM,CAAC;AACZ,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,QAAA,EAAE,EAAEA,KAAC,CAAC,MAAM,EAAE;QACd,QAAQ,EAAEA,KAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;AACH,CAAA,CAAC,CACH,CAAC;AAEK,MAAM,mBAAmB,GAAGA,KAAC,CAAC,MAAM,CACzC,aAAa,EACbA,KAAC,CAAC,MAAM,CAAC;AACP,IAAA,KAAK,EAAE,oBAAoB;AAC5B,CAAA,CAAC,CACH,CAAC;AAEF;;;;AAIG;AACI,MAAM,iBAAiB,GAAGA,KAAC;AAC/B,KAAA,MAAM,EAAE;KACR,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;AAElF,MAAM,yBAAyB,GAAGA,KAAC;AACvC,KAAA,MAAM,EAAE;KACR,KAAK,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;AAE5E,MAAM,qBAAqB,GAAG,CAAC,KAAmB,EAAE,GAAoB,KAAI;AACjF,IAAA,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE;QAC3C,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,CAAgF,8EAAA,CAAA;AAC1F,SAAA,CAAC,CAAC;QACH,OAAO;KACR;;AAGD,IAAA,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,IAAI,wBAAwB,EAAE;QAC5B,OAAO;KACR;;AAGD,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC;IACzD,IAAI,eAAe,EAAE;QACnB,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,CAA+B,6BAAA,CAAA;AACzC,SAAA,CAAC,CAAC;QACH,OAAO;KACR;;IAGD,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAA,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1E,IAAA,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE3E,IAAI,qBAAqB,EAAE;QACzB,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,EAAE;YACtB,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAgF,8EAAA,CAAA;AAC1F,aAAA,CAAC,CAAC;SACJ;;QAGD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;;AAGzF,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAChC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,CAAC,YAAY,EAAE;YACjB,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAgG,8FAAA,CAAA;AAC1G,aAAA,CAAC,CAAC;SACJ;KACF;SAAM,IAAI,sBAAsB,EAAE;QACjC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,EAAE;YACtB,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAiF,+EAAA,CAAA;AAC3F,aAAA,CAAC,CAAC;SACJ;;QAGD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;;AAGzF,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAChC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,CAAC,YAAY,EAAE;YACjB,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAiG,+FAAA,CAAA;AAC3G,aAAA,CAAC,CAAC;SACJ;KACF;AAAM,SAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,sBAAsB,EAAE;QAC5D,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,CAAoG,kGAAA,CAAA;AAC9G,SAAA,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAGA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC;AAE9E,MAAM,2BAA2B,GAAGA,KAAC;AACzC,KAAA,KAAK,CAACA,KAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AACzD,KAAA,QAAQ,EAAE,CAAC;AAEP,MAAM,iBAAiB,GAAGA,KAAC;AAC/B,KAAA,MAAM,CAAC;AACN,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AAC9B,IAAA,kBAAkB,EAAE,wBAAwB;CAC7C,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEL,MAAM,gBAAgB,GAAGA,KAAC;AAC9B,KAAA,MAAM,CAAC;AACN,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7B,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;CACjB,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEL,MAAM,oBAAoB,GAAGA,KAAC;AAClC,KAAA,MAAM,CAAC;AACN,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACjC,IAAA,aAAa,EAAEA,KAAC,CAAC,MAAM,EAAE;;IAEzB,SAAS,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnC,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEL,MAAM,kBAAkB,GAAGA,KAAC;AAChC,KAAA,MAAM,CAAC;AACN,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,cAAc,CAAC;AAC/B,IAAA,GAAG,EAAEA,KAAC,CAAC,MAAM,EAAE;CAChB,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEL,MAAM,oBAAoB,GAAGA,KAAC;AAClC,KAAA,MAAM,CAAC;AACN,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACjC,IAAA,GAAG,EAAEA,KAAC,CAAC,MAAM,EAAE;CAChB,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEL,MAAM,aAAa,GAAGA,KAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAExE,MAAM,4BAA4B,GAAGA,KAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvE,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,aAAa;AACd,CAAA,CAAC,CAAC;AAIH;AACA;AACO,MAAM,eAAe,GAAGA,KAAC,CAAC,MAAM,CAAC;AACtC,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7B,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;AACjB,CAAA,CAAC,CAAC;AAEI,MAAM,gBAAgB,GAAGA,KAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;AAG7E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAE9C,MAAM,gBAAgB,GAAGA,KAAC;AAC9B,KAAA,MAAM,CAAC;AACN,IAAA,EAAE,EAAE,iBAAiB;;AAErB,IAAA,KAAK,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAA2B,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE;AACvB,IAAA,WAAW,EAAEA,KAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEZ;AACA,MAAM,2BAA2B,GAAGA,KAAC,CAAC,MAAM,CAAC;AAC3C,IAAA,EAAE,EAAE,yBAAyB,CAAC,QAAQ,EAAE;AACxC,IAAA,YAAY,EAAE,2BAA2B;AACzC,IAAA,YAAY,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAA,MAAM,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAEA,KAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;AACpE,IAAA,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;AACxC,CAAA,CAAC,CAAC;AAMI,MAAM,uBAAuB,GAAGA,KAAC,CAAC,MAAM,CAAC;AAC9C,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAA,IAAI,EAAE,4BAA4B;AAClC,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAA,KAAK,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,oBAAoB,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;AAC9E,IAAA,WAAW,EAAEA,KAAC;AACX,SAAA,MAAM,CAAC;AACN,QAAA,iBAAiB,EAAE,2BAA2B,CAAC,QAAQ,EAAE;AACzD,QAAA,QAAQ,EAAEA,KAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAEA,KAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnC,QAAA,EAAE,EAAEA,KAAC;AACF,aAAA,KAAK,CACJA,KAAC,CAAC,MAAM,CAAC;AACP,YAAA,KAAK,EAAEA,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,MAAM,EAAE,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,YAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACnC,SAAA,CAAC,CACH;AACA,aAAA,QAAQ,EAAE;KACd,CAAC;AACD,SAAA,QAAQ,EAAE;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,uBAAuB,GAClC,2BAA2B,CAAC,MAAM,CAAC;AACjC,IAAA,QAAQ,EAAEA,KAAC,CAAC,IAAI,CAAC,MAAM,uBAAuB,CAAC,KAAK,EAAE,CAAC;AACxD,CAAA,CAAC,CAAC;AAEE,MAAM,mBAAmB,GAAGA,KAAC;AACjC,KAAA,MAAM,CAAC;IACN,WAAW,EAAEA,KAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC;AACzE,IAAA,QAAQ,EAAEA,KAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;AAC1C,IAAA,aAAa,EAAE,cAAc;CAC9B,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AACL,MAAM,aAAa,GAAG,CAAC,WAAuB,KAAKA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC;;AC1Q9E,MAAA,8BAA8B,GAAGA,KAAC,CAAC,MAAM,CAAC;AACrD,IAAA,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;AACjD,IAAA,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC;AAC3C,IAAA,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;AACjD,IAAA,cAAc,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;AAC/D,CAAA;;ACtBe,SAAA,SAAS,CACvB,WAAoB,EACpB,MAAyB,EAAA;AAEzB,IAAA,MAAM,UAAU,GAAG,CAAC,WAAc,KAAU;QAC1C,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC;AACpB,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,UAAU,CAAC,KAAK,CAAC,CAAC;SACnB;AACH,KAAC,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9B,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;KACF;SAAM;QACL,UAAU,CAAC,WAAW,CAAC,CAAC;KACzB;AACH;;ACVO,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,kBAAkB;IAClB,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,aAAa;IACb,SAAS;IACT,OAAO;IACP,MAAM;IACN,eAAe;IACf,cAAc;IACd,MAAM;IACN,kBAAkB;IAClB,YAAY;IACZ,cAAc;IACd,UAAU;IACV,WAAW;IACX,cAAc;IACd,OAAO;IACP,aAAa;IACb,QAAQ;CACA,CAAC;AAEX;AACA;AACA,MAAM,qBAAqB,GAAGA,KAAC,CAAC,MAAM,CAAC;AACrC,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACrC,IAAA,kBAAkB,EAAEA,KAAC;AAClB,SAAA,MAAM,CAACA,KAAC,CAAC,MAAM,EAAE,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAClD,SAAA,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AAC1B,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE;YACjD,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAA,qDAAA,EAAwD,UAAU,CAAA,sBAAA,EAAyB,iBAAiB,CAAE,CAAA;AACxH,aAAA,CAAC,CAAC;SACJ;AACH,KAAC,CAAC;AACL,CAAA,CAAC,CAAC;AAEI,MAAM,gBAAgB,GAAGA,KAAC;AAC9B,KAAA,MAAM,CAAC;AACN,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,YAAY,EAAE,iBAAiB;CAChC,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEZ,MAAM,yBAAyB,GAAGA,KAAC,CAAC,MAAM,CAAC;AACzC,IAAA,aAAa,EAAEA,KAAC;AACb,SAAA,YAAY,CAAC;QACZ,IAAI,EAAEA,KAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACvB,QAAA,aAAa,EAAEA,KAAC,CAAC,MAAM,EAAE;AACzB,QAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC;AACnB,YAAA,GAAG,EAAEA,KAAC,CAAC,YAAY,CAAC;AAClB,gBAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,gBAAA,EAAE,EAAEA,KAAC,CAAC,MAAM,EAAE;gBACd,QAAQ,EAAEA,KAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;aAC5B,CAAC;SACH,CAAC;KACH,CAAC;AACD,SAAA,QAAQ,EAAE;AACb,IAAA,YAAY,EAAEA,KAAC,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,IAAA,WAAW,EAAEA,KAAC;SACX,KAAK,CAAC,gBAAgB,CAAC;AACvB,SAAA,GAAG,CAAC,CAAC,EAAE,wEAAwE,CAAC;SAChF,QAAQ,EAAE;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,0BAA0B,GAAGA,KAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AAEjG,MAAM,sBAAsB,GAAGA,KAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAE3E,MAAM,wBAAwB,GAAGA,KAAC,CAAC,MAAM,CAC9CA,KAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACzC,uBAAuB,CACxB,CAAC;AAEK,MAAM,0BAA0B,GAAGA,KAAC;AACxC,KAAA,MAAM,CAAC;AACN,IAAA,EAAE,EAAE,iBAAiB;AACrB,IAAA,oBAAoB,EAAE,0BAA0B;AAChD,IAAA,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;AACnD,IAAA,wBAAwB,EAAEA,KAAC,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC;AACD,KAAA,MAAM,EAAE,CAAC;AAEZ,MAAM,uBAAuB,GAAGA,KAAC;AAC9B,KAAA,MAAM,CAAC;AACN,IAAA,mBAAmB,EAAE,wBAAwB;IAC7C,WAAW,EAAEA,KAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;AAC7C,IAAA,QAAQ,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC,QAAQ,EAAE;AACtF,IAAA,qBAAqB,EAAEA,KAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChF,CAAC;AACD,KAAA,MAAM,EAAE;AACR,KAAA,WAAW,CAAC,CAAC,iBAAiB,EAAE,GAAG,KAAI;AACtC,IAAA,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,iBAAiB,CAAC;IACzE,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;QAChE,OAAO;KACR;AACD,IAAA,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,GACxE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE3B,IAAA,0CAA0C,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;AACtE,IAAA,2CAA2C,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC7F,0CAA0C,CACxC,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,GAAG,CACJ,CAAC;AACF,IAAA,2CAA2C,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEE,MAAM,2BAA2B,GAAGA,KAAC;AACzC,KAAA,MAAM,CAAC;AACN,IAAA,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;AACjD,IAAA,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC;AAC3C,IAAA,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;AACjD,IAAA,cAAc,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;AAC9D,IAAA,iBAAiB,EAAE,aAAa,CAAC,uBAAuB,CAAC;CAC1D,CAAC;AACD,KAAA,WAAW,CAAC,CAAC,aAAa,EAAE,GAAG,KAAI;AAClC,IAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;;IAG3D,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E,IAAA,IAAI,CAAC,6BAA6B,IAAI,CAAC,yBAAyB,EAAE;QAChE,OAAO;KACR;AAED,IAAA,mBAAmB,CACjB,yBAAyB,CAAC,QAAQ,IAAK,EAAsD,EAC7F,6BAA6B,IAAK,EAA+B,EACjE,GAAG,CACJ,CAAC;AACJ,CAAC,EAAE;AAEL,MAAM,0CAA0C,GAAG,CACjD,oBAAyD,EACzD,GAAoB,KAClB;AACF,IAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,MAAM,CACvE,CAAC,eAAe,KAAK,EAAE,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9F,CAAC;AAEF,IAAA,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,CAAuH,qHAAA,CAAA;AACjI,SAAA,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEF,MAAM,2CAA2C,GAAG,CAClD,gBAA8C,EAC9C,wBAA8C,EAC9C,GAAoB,KAClB;IACF,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,IAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,4EAA4E,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAI,CAAA,EAAA,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAG,CAAA,CAAA;AACpI,SAAA,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEF,MAAM,0CAA0C,GAAG,CACjD,gBAA8C,EAC9C,wBAA8C,EAC9C,mBAA4E,EAC5E,GAAoB,KAClB;AACF,IAAA,MAAM,+BAA+B,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;AACxE,SAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAEvB,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;AAEhE,IAAA,MAAM,OAAO,GAAG,CAAC,GAAG,mBAAmB,EAAE,IAAI,wBAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9E,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,+BAA+B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG,IAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,2FAA2F,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAI,CAAA,EAAA,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAG,CAAA,CAAA;AAC3J,SAAA,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEF,MAAM,2CAA2C,GAAG,CAClD,gBAA8C,EAC9C,oBAA0C,EAC1C,GAAoB,KAClB;IACF,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;AACxE,IAAA,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE;QAC/E,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC/D,GAAG,CAAC,QAAQ,CAAC;AACX,gBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,gBAAA,OAAO,EAAE,CAAiC,8BAAA,EAAA,UAAU,4CAA4C,YAAY,CAAC,WAAW,CAAI,EAAA,CAAA;AAC7H,aAAA,CAAC,CAAC;SACJ;KACF;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,YAA6D,EAC7D,iBAA2C,EAC3C,GAAoB,KAClB;IACF,IACE,CAAC,iBAAiB,CAAC,qBAAqB;AACxC,QAAA,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EACpD;QACA,OAAO;KACR;IACD,MAAM,EAAE,oBAAoB,EAAE,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE5E,IAAA,IAAI,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;AACrC,IAAA,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE;AAChE,QAAA,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,KAAI;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACxB,YAAA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzB;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE;AACpB,QAAA,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aAC3C,GAAG,CAAC,CAAC,EAAE,KAAK,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,CAA2F,wFAAA,EAAA,kBAAkB,CAAG,CAAA,CAAA;AAC1H,SAAA,CAAC,CAAC;KACJ;AACH,CAAC;;AC9PM,MAAM,yBAAyB,GAAGA,KAAC;AACvC,KAAA,MAAM,CAAC;AACN,IAAA,EAAE,EAAE,2BAA2B;AAC/B,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;AAChB,IAAA,QAAQ,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC/B,IAAA,YAAY,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAA,gBAAgB,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACvC,IAAA,QAAQ,EAAEA,KAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAA,KAAK,EAAEA,KAAC;AACL,SAAA,MAAM,CAAC,2BAA2B,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrF,SAAA,QAAQ,EAAE;AACb,IAAA,aAAa,EAAEA,KAAC,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,OAAO,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAEA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1F,SAAS,EAAEA,KAAC,CAAC,MAAM,CACjB,2BAA2B,EAC3B,uBAAuB,CAAC,MAAM,CAAC;AAC7B,QAAA,YAAY,EAAE,oBAAoB,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC1B,QAAA,QAAQ,GAAG,CAAC,IAAI;AACd,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,EAAE;oBAC3C,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,CAAsD,mDAAA,EAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;AACnF,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE;oBACpF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,0DAAA,EAA6D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AAClI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,sDAAA,EAAyD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AAC9H,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,2DAAA,EAA8D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AACnI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,CAAqD,kDAAA,EAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;AAClF,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,2DAAA,EAA8D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AACnI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,uDAAA,EAA0D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AAC/H,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,wDAAA,EAA2D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AAChI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,yDAAA,EAA4D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AACjI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,2DAAA,EAA8D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AACnI,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;oBACnF,GAAG,CAAC,QAAQ,CAAC;AACX,wBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,wBAAA,OAAO,EAAE,CAAA,sDAAA,EAAyD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,OAAO,GAAG,CAAC,YAAY,CAAU,QAAA,CAAA;AAC9H,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA,CAAC,CAAC;iBACJ;gBACD,MAAM;SACT;AACH,KAAC,CAAC,CACH;CACF,CAAC;AACD,KAAA,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;IACxB,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QAChF,GAAG,CAAC,QAAQ,CAAC;AACX,YAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,CAA0F,wFAAA,CAAA;AACnG,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAC;KACJ;;IAED,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE;AAC9B,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1C,YAAA,IAAI,GAAG,CAAC,KAAM,CAAC,IAAI,CAAC,EAAE;gBACpB,GAAG,CAAC,QAAQ,CAAC;AACX,oBAAA,IAAI,EAAEA,KAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,CAAgD,6CAAA,EAAA,IAAI,CAAE,CAAA;AAC/D,oBAAA,KAAK,EAAE,KAAK;AACb,iBAAA,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;KACJ;AACH,CAAC;;ACrJH,IAAY,SAQX,CAAA;AARD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA,CAAA;AAYD,MAAM,kBAAkB,GAAG,CAAC,KAA4B,KAA4B;AAClF,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,WAAW,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;AAClF,IAAA,MAAM,OAAO,GACX,KAAK,CAAC,QAAQ,KAAK,WAAW;UAC1B,CAAiB,cAAA,EAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAoB,kBAAA,CAAA;AAC3D,UAAE,CAAgB,aAAA,EAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAkC,+BAAA,EAAA,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE7F,OAAO;AACL,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiC,KAA4B;IAC5F,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO;AACL,QAAA,OAAO,EACL,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;cACjB,CAAkB,eAAA,EAAA,iBAAiB,CAAmB,iBAAA,CAAA;cACtD,CAAgB,aAAA,EAAA,iBAAiB,CAAkB,gBAAA,CAAA;QACzD,IAAI,EAAE,SAAS,CAAC,UAAU;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAA8B,KAA4B;IACtF,OAAO;AACL,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,gBAAgB;AAC1C,QAAA,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU;QAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,uBAAuB,GAAG,CAAC,KAAiC,KAA4B;IAC5F,OAAO;AACL,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,sCAAsC;QAChE,IAAI,EAAE,SAAS,CAAC,EAAE;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,KAAK,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,KAA+B,KAA4B;IACxF,OAAO;AACL,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,sCAAsC;QAChE,IAAI,EAAE,SAAS,CAAC,EAAE;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,QAAkB;AAC/B,QAAA,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAkB,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAuB,KAA4B;IACxE,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAA0B,uBAAA,EAAA,KAAK,CAAC,OAAO,CAAE,CAAA;QACnE,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAyB,KAA4B;IAC5E,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAA2B,wBAAA,EAAA,KAAK,CAAC,OAAO,CAAE,CAAA;QACpE,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,KAAe,KAA4B;IACpE,OAAO;AACL,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,8BAA8B;QACxD,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,KAAe,KAA4B;AAC9E,IAAA,QAAQ,KAAK,CAAC,IAAI;QAChB,KAAKC,gBAAY,CAAC,YAAY;AAC5B,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnC,KAAKA,gBAAY,CAAC,iBAAiB;AACjC,YAAA,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAKA,gBAAY,CAAC,kBAAkB;AAClC,YAAA,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxC,KAAKA,gBAAY,CAAC,cAAc;AAC9B,YAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrC,KAAKA,gBAAY,CAAC,SAAS;AACzB,YAAA,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,KAAKA,gBAAY,CAAC,OAAO;AACvB,YAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAKA,gBAAY,CAAC,eAAe;AAC/B,YAAA,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA;AACE,YAAA,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACnC;AACH,CAAC;;AClHY,MAAA,6BAA6B,GAAG,CAAC,WAAyB,KAA0B;IAC/F,MAAM,MAAM,GAAGD,KAAC;SACb,KAAK,CAAC,gBAAgB,CAAC;SACvB,WAAW,CAAC,qBAAqB,CAAC;SAClC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC1B,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;SACtD,CAAC;KACH;AACD,IAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B;;ACba,MAAA,2BAA2B,GAAG,CAAC,UAAU,KAA0B;IAC9E,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/D,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;SACtD,CAAC;KACH;AACD,IAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B;;ACRA,MAAME,iBAAe,GAAG;AACtB,IAAA,YAAY,EAAEC,2BAAwB;CACvC,CAAC;AAEF;;;;;;AAMG;AACI,MAAM,qBAAqB,GAAG;AACnC;AACA,OAAwC,EACxC,qBAAsC,KACd;AACxB,IAAA,IAAI,aAAyC,CAAC;IAE9C,IAAI,qBAAqB,EAAE;QACzB,aAAa,GAAG,qBAAqB,CAAC;KACvC;AAAM,SAAA,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;AACvC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;KACpE;IAED,MAAM,MAAM,GAAG,aAAa,IAAID,iBAAe,CAAC,aAAa,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ;AACvD,oBAAA,QAAQ,EAAE,MAAM,CAAC,IAAI,CAACA,iBAAe,CAAC;AACtC,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC;AAClD,oBAAA,OAAO,EAAE,aAAa;AACpB,0BAAE,4BAA4B;AAC9B,0BAAE,+CAA+C;AACpD,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,MAAM,gBAAgB,GAAG;AACvB,QAAA,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa;AAC3C,QAAA,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU;AACrC,QAAA,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa;AAC3C,QAAA,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;AAC7C,QAAA,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB;KACpD,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAClD,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;SACtD,CAAC;KACH;AACD,IAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;;AC3DD,MAAM,eAAe,GAAG;AACtB,IAAA,YAAY,EAAEE,8BAA2B;CAC1C,CAAC;AAEF;AACA,SAAS,SAAS,CAAC,UAAe,EAAA;AAChC,IAAA,OAAO,UAAU,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC;AAC3D,CAAC;AAED;;;;;;AAMG;AACU,MAAA,wBAAwB,GAAG;AACtC;AACA,UAA2C,EAC3C,qBAAsC,KACd;;AAExB,IAAA,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE;AACzB,QAAA,OAAO,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,aAAyC,CAAC;IAC9C,IAAI,qBAAqB,EAAE;QACzB,aAAa,GAAG,qBAAqB,CAAC;KACvC;AAAM,SAAA,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE;AAC1C,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;KACvE;IAED,MAAM,MAAM,GAAG,aAAa,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ;oBACvD,QAAQ,EAAE,CAAC,YAAY,CAAC;AACxB,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC;AAClD,oBAAA,OAAO,EAAE,aAAa;AACpB,0BAAE,4BAA4B;AAC9B,0BAAE,+CAA+C;AACpD,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,MAAM,gBAAgB,GAAG;AACvB,QAAA,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;AAC9C,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU;AACxC,QAAA,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;AAC9C,QAAA,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc;KACjD,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAClD,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;SACtD,CAAC;KACH;AACD,IAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;;;;;;"}
|
|
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/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be replaced with z.templateLiteral when upgrading to zod v4\n query: z.string().refine((s): s is BreakpointQuery => BREAKPOINT_QUERY_REGEX.test(s)),\n previewSize: z.string().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = (fieldSchema: ZodTypeAny) => z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n const variableId = ctx.path[ctx.path.length - 2];\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping with id \"${variableId}\", maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.'),\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n const nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue, z } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst convertInvalidType = (issue: z.ZodInvalidTypeIssue): ContentfulErrorDetails => {\n const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;\n const details =\n issue.received === 'undefined'\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details: details,\n name: name,\n path: issue.path,\n value: issue.received.toString(),\n };\n};\n\nconst convertUnrecognizedKeys = (issue: z.ZodUnrecognizedKeysIssue): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path,\n };\n};\n\nconst convertInvalidString = (issue: z.ZodInvalidStringIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path,\n };\n};\nconst convertInvalidEnumValue = (issue: z.ZodInvalidEnumValueIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received.toString(),\n expected: issue.options,\n };\n};\nconst convertInvalidLiteral = (issue: z.ZodInvalidLiteralIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received as string,\n expected: [issue.expected as string],\n };\n};\n\nconst convertTooBig = (issue: z.ZodTooBigIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path,\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (issue: z.ZodTooSmallIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path,\n min: issue.minimum,\n };\n};\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_enum_value:\n return convertInvalidEnumValue(issue);\n case ZodIssueCode.invalid_string:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_literal:\n return convertInvalidLiteral(issue);\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["z","ZodIssueCode","VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -501,7 +501,7 @@ declare const ParameterDefinitionSchema: z.ZodObject<{
|
|
|
501
501
|
};
|
|
502
502
|
}>>;
|
|
503
503
|
contentTypes: z.ZodArray<z.ZodString, "many">;
|
|
504
|
-
passToNodes: z.
|
|
504
|
+
passToNodes: z.ZodArray<z.ZodObject<{
|
|
505
505
|
nodeId: z.ZodString;
|
|
506
506
|
parameterId: z.ZodString;
|
|
507
507
|
prebindingId: z.ZodString;
|
|
@@ -513,9 +513,14 @@ declare const ParameterDefinitionSchema: z.ZodObject<{
|
|
|
513
513
|
prebindingId: string;
|
|
514
514
|
parameterId: string;
|
|
515
515
|
nodeId: string;
|
|
516
|
-
}>, "many"
|
|
516
|
+
}>, "many">;
|
|
517
517
|
}, "strip", z.ZodTypeAny, {
|
|
518
518
|
contentTypes: string[];
|
|
519
|
+
passToNodes: {
|
|
520
|
+
prebindingId: string;
|
|
521
|
+
parameterId: string;
|
|
522
|
+
nodeId: string;
|
|
523
|
+
}[];
|
|
519
524
|
defaultSource?: {
|
|
520
525
|
type: "Entry";
|
|
521
526
|
contentTypeId: string;
|
|
@@ -527,13 +532,13 @@ declare const ParameterDefinitionSchema: z.ZodObject<{
|
|
|
527
532
|
};
|
|
528
533
|
};
|
|
529
534
|
} | undefined;
|
|
530
|
-
|
|
535
|
+
}, {
|
|
536
|
+
contentTypes: string[];
|
|
537
|
+
passToNodes: {
|
|
531
538
|
prebindingId: string;
|
|
532
539
|
parameterId: string;
|
|
533
540
|
nodeId: string;
|
|
534
|
-
}[]
|
|
535
|
-
}, {
|
|
536
|
-
contentTypes: string[];
|
|
541
|
+
}[];
|
|
537
542
|
defaultSource?: {
|
|
538
543
|
type: "Entry";
|
|
539
544
|
contentTypeId: string;
|
|
@@ -545,11 +550,6 @@ declare const ParameterDefinitionSchema: z.ZodObject<{
|
|
|
545
550
|
};
|
|
546
551
|
};
|
|
547
552
|
} | undefined;
|
|
548
|
-
passToNodes?: {
|
|
549
|
-
prebindingId: string;
|
|
550
|
-
parameterId: string;
|
|
551
|
-
nodeId: string;
|
|
552
|
-
}[] | undefined;
|
|
553
553
|
}>;
|
|
554
554
|
declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
555
555
|
variableDefinitions: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -767,7 +767,7 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
767
767
|
};
|
|
768
768
|
}>>;
|
|
769
769
|
contentTypes: z.ZodArray<z.ZodString, "many">;
|
|
770
|
-
passToNodes: z.
|
|
770
|
+
passToNodes: z.ZodArray<z.ZodObject<{
|
|
771
771
|
nodeId: z.ZodString;
|
|
772
772
|
parameterId: z.ZodString;
|
|
773
773
|
prebindingId: z.ZodString;
|
|
@@ -779,9 +779,14 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
779
779
|
prebindingId: string;
|
|
780
780
|
parameterId: string;
|
|
781
781
|
nodeId: string;
|
|
782
|
-
}>, "many"
|
|
782
|
+
}>, "many">;
|
|
783
783
|
}, "strip", z.ZodTypeAny, {
|
|
784
784
|
contentTypes: string[];
|
|
785
|
+
passToNodes: {
|
|
786
|
+
prebindingId: string;
|
|
787
|
+
parameterId: string;
|
|
788
|
+
nodeId: string;
|
|
789
|
+
}[];
|
|
785
790
|
defaultSource?: {
|
|
786
791
|
type: "Entry";
|
|
787
792
|
contentTypeId: string;
|
|
@@ -793,13 +798,13 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
793
798
|
};
|
|
794
799
|
};
|
|
795
800
|
} | undefined;
|
|
796
|
-
|
|
801
|
+
}, {
|
|
802
|
+
contentTypes: string[];
|
|
803
|
+
passToNodes: {
|
|
797
804
|
prebindingId: string;
|
|
798
805
|
parameterId: string;
|
|
799
806
|
nodeId: string;
|
|
800
|
-
}[]
|
|
801
|
-
}, {
|
|
802
|
-
contentTypes: string[];
|
|
807
|
+
}[];
|
|
803
808
|
defaultSource?: {
|
|
804
809
|
type: "Entry";
|
|
805
810
|
contentTypeId: string;
|
|
@@ -811,11 +816,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
811
816
|
};
|
|
812
817
|
};
|
|
813
818
|
} | undefined;
|
|
814
|
-
passToNodes?: {
|
|
815
|
-
prebindingId: string;
|
|
816
|
-
parameterId: string;
|
|
817
|
-
nodeId: string;
|
|
818
|
-
}[] | undefined;
|
|
819
819
|
}>>;
|
|
820
820
|
variableMappings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
821
821
|
parameterId: z.ZodString;
|
|
@@ -849,6 +849,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
849
849
|
id: string;
|
|
850
850
|
parameterDefinitions: Record<string, {
|
|
851
851
|
contentTypes: string[];
|
|
852
|
+
passToNodes: {
|
|
853
|
+
prebindingId: string;
|
|
854
|
+
parameterId: string;
|
|
855
|
+
nodeId: string;
|
|
856
|
+
}[];
|
|
852
857
|
defaultSource?: {
|
|
853
858
|
type: "Entry";
|
|
854
859
|
contentTypeId: string;
|
|
@@ -860,11 +865,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
860
865
|
};
|
|
861
866
|
};
|
|
862
867
|
} | undefined;
|
|
863
|
-
passToNodes?: {
|
|
864
|
-
prebindingId: string;
|
|
865
|
-
parameterId: string;
|
|
866
|
-
nodeId: string;
|
|
867
|
-
}[] | undefined;
|
|
868
868
|
}>;
|
|
869
869
|
variableMappings?: Record<string, {
|
|
870
870
|
type: "ContentTypeMapping";
|
|
@@ -878,6 +878,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
878
878
|
id: string;
|
|
879
879
|
parameterDefinitions: Record<string, {
|
|
880
880
|
contentTypes: string[];
|
|
881
|
+
passToNodes: {
|
|
882
|
+
prebindingId: string;
|
|
883
|
+
parameterId: string;
|
|
884
|
+
nodeId: string;
|
|
885
|
+
}[];
|
|
881
886
|
defaultSource?: {
|
|
882
887
|
type: "Entry";
|
|
883
888
|
contentTypeId: string;
|
|
@@ -889,11 +894,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
889
894
|
};
|
|
890
895
|
};
|
|
891
896
|
} | undefined;
|
|
892
|
-
passToNodes?: {
|
|
893
|
-
prebindingId: string;
|
|
894
|
-
parameterId: string;
|
|
895
|
-
nodeId: string;
|
|
896
|
-
}[] | undefined;
|
|
897
897
|
}>;
|
|
898
898
|
variableMappings?: Record<string, {
|
|
899
899
|
type: "ContentTypeMapping";
|
|
@@ -945,6 +945,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
945
945
|
id: string;
|
|
946
946
|
parameterDefinitions: Record<string, {
|
|
947
947
|
contentTypes: string[];
|
|
948
|
+
passToNodes: {
|
|
949
|
+
prebindingId: string;
|
|
950
|
+
parameterId: string;
|
|
951
|
+
nodeId: string;
|
|
952
|
+
}[];
|
|
948
953
|
defaultSource?: {
|
|
949
954
|
type: "Entry";
|
|
950
955
|
contentTypeId: string;
|
|
@@ -956,11 +961,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
956
961
|
};
|
|
957
962
|
};
|
|
958
963
|
} | undefined;
|
|
959
|
-
passToNodes?: {
|
|
960
|
-
prebindingId: string;
|
|
961
|
-
parameterId: string;
|
|
962
|
-
nodeId: string;
|
|
963
|
-
}[] | undefined;
|
|
964
964
|
}>;
|
|
965
965
|
variableMappings?: Record<string, {
|
|
966
966
|
type: "ContentTypeMapping";
|
|
@@ -1012,6 +1012,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1012
1012
|
id: string;
|
|
1013
1013
|
parameterDefinitions: Record<string, {
|
|
1014
1014
|
contentTypes: string[];
|
|
1015
|
+
passToNodes: {
|
|
1016
|
+
prebindingId: string;
|
|
1017
|
+
parameterId: string;
|
|
1018
|
+
nodeId: string;
|
|
1019
|
+
}[];
|
|
1015
1020
|
defaultSource?: {
|
|
1016
1021
|
type: "Entry";
|
|
1017
1022
|
contentTypeId: string;
|
|
@@ -1023,11 +1028,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1023
1028
|
};
|
|
1024
1029
|
};
|
|
1025
1030
|
} | undefined;
|
|
1026
|
-
passToNodes?: {
|
|
1027
|
-
prebindingId: string;
|
|
1028
|
-
parameterId: string;
|
|
1029
|
-
nodeId: string;
|
|
1030
|
-
}[] | undefined;
|
|
1031
1031
|
}>;
|
|
1032
1032
|
variableMappings?: Record<string, {
|
|
1033
1033
|
type: "ContentTypeMapping";
|
|
@@ -1079,6 +1079,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1079
1079
|
id: string;
|
|
1080
1080
|
parameterDefinitions: Record<string, {
|
|
1081
1081
|
contentTypes: string[];
|
|
1082
|
+
passToNodes: {
|
|
1083
|
+
prebindingId: string;
|
|
1084
|
+
parameterId: string;
|
|
1085
|
+
nodeId: string;
|
|
1086
|
+
}[];
|
|
1082
1087
|
defaultSource?: {
|
|
1083
1088
|
type: "Entry";
|
|
1084
1089
|
contentTypeId: string;
|
|
@@ -1090,11 +1095,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1090
1095
|
};
|
|
1091
1096
|
};
|
|
1092
1097
|
} | undefined;
|
|
1093
|
-
passToNodes?: {
|
|
1094
|
-
prebindingId: string;
|
|
1095
|
-
parameterId: string;
|
|
1096
|
-
nodeId: string;
|
|
1097
|
-
}[] | undefined;
|
|
1098
1098
|
}>;
|
|
1099
1099
|
variableMappings?: Record<string, {
|
|
1100
1100
|
type: "ContentTypeMapping";
|
|
@@ -1146,6 +1146,11 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1146
1146
|
id: string;
|
|
1147
1147
|
parameterDefinitions: Record<string, {
|
|
1148
1148
|
contentTypes: string[];
|
|
1149
|
+
passToNodes: {
|
|
1150
|
+
prebindingId: string;
|
|
1151
|
+
parameterId: string;
|
|
1152
|
+
nodeId: string;
|
|
1153
|
+
}[];
|
|
1149
1154
|
defaultSource?: {
|
|
1150
1155
|
type: "Entry";
|
|
1151
1156
|
contentTypeId: string;
|
|
@@ -1157,11 +1162,6 @@ declare const ComponentSettingsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1157
1162
|
};
|
|
1158
1163
|
};
|
|
1159
1164
|
} | undefined;
|
|
1160
|
-
passToNodes?: {
|
|
1161
|
-
prebindingId: string;
|
|
1162
|
-
parameterId: string;
|
|
1163
|
-
nodeId: string;
|
|
1164
|
-
}[] | undefined;
|
|
1165
1165
|
}>;
|
|
1166
1166
|
variableMappings?: Record<string, {
|
|
1167
1167
|
type: "ContentTypeMapping";
|
package/dist/index.js
CHANGED
|
@@ -191,7 +191,7 @@ const BREAKPOINT_QUERY_REGEX = /^\*$|^[<>][0-9]+px$/;
|
|
|
191
191
|
const BreakpointSchema = z
|
|
192
192
|
.object({
|
|
193
193
|
id: propertyKeySchema,
|
|
194
|
-
// Can be
|
|
194
|
+
// Can be replaced with z.templateLiteral when upgrading to zod v4
|
|
195
195
|
query: z.string().refine((s) => BREAKPOINT_QUERY_REGEX.test(s)),
|
|
196
196
|
previewSize: z.string().optional(),
|
|
197
197
|
displayName: z.string(),
|
|
@@ -332,8 +332,7 @@ const ParameterDefinitionSchema = z.object({
|
|
|
332
332
|
contentTypes: z.array(z.string()).min(1),
|
|
333
333
|
passToNodes: z
|
|
334
334
|
.array(PassToNodeSchema)
|
|
335
|
-
.max(1, 'At most one "passToNodes" element is allowed per parameter definition.')
|
|
336
|
-
.optional(), // we might change this to be empty array for native parameter definitions, that's why we don't use .length(1)
|
|
335
|
+
.max(1, 'At most one "passToNodes" element is allowed per parameter definition.'),
|
|
337
336
|
});
|
|
338
337
|
const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);
|
|
339
338
|
const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
|
|
@@ -435,7 +434,7 @@ const validatePassToNodes = (rootChildren, componentSettings, ctx) => {
|
|
|
435
434
|
return;
|
|
436
435
|
}
|
|
437
436
|
const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];
|
|
438
|
-
|
|
437
|
+
const nodeIds = new Set();
|
|
439
438
|
for (const paramDef of Object.values(parameterDefinitions || {})) {
|
|
440
439
|
paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));
|
|
441
440
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be 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().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = (fieldSchema: ZodTypeAny) => z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n const variableId = ctx.path[ctx.path.length - 2];\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping with id \"${variableId}\", maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.')\n .optional(), // we might change this to be empty array for native parameter definitions, that's why we don't use .length(1)\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n let nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue, z } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst convertInvalidType = (issue: z.ZodInvalidTypeIssue): ContentfulErrorDetails => {\n const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;\n const details =\n issue.received === 'undefined'\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details: details,\n name: name,\n path: issue.path,\n value: issue.received.toString(),\n };\n};\n\nconst convertUnrecognizedKeys = (issue: z.ZodUnrecognizedKeysIssue): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path,\n };\n};\n\nconst convertInvalidString = (issue: z.ZodInvalidStringIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path,\n };\n};\nconst convertInvalidEnumValue = (issue: z.ZodInvalidEnumValueIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received.toString(),\n expected: issue.options,\n };\n};\nconst convertInvalidLiteral = (issue: z.ZodInvalidLiteralIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received as string,\n expected: [issue.expected as string],\n };\n};\n\nconst convertTooBig = (issue: z.ZodTooBigIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path,\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (issue: z.ZodTooSmallIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path,\n min: issue.minimum,\n };\n};\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_enum_value:\n return convertInvalidEnumValue(issue);\n case ZodIssueCode.invalid_string:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_literal:\n return convertInvalidLiteral(issue);\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/common.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/treeVisit.ts","../src/schemas/v2023_09_28/pattern.ts","../src/schemas/componentDefinition.ts","../src/utils/zodToContentfulError.ts","../src/validators/validateBreakpointDefinitions.ts","../src/validators/validateComponentDefinition.ts","../src/validators/validatePatternFields.ts","../src/validators/validateExperienceFields.ts"],"sourcesContent":["import { z } from 'zod';\n// If more than one version is supported, use z.union\nexport const SchemaVersions = z.literal('2023-09-28');\n\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n\n// Keep deprecated versions here just for reference\nexport const UnsupportedSchemaVersions = z.union([\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\n","import { z, ZodTypeAny } from 'zod';\nimport { Breakpoint } from '@/schemas/v2023_09_28/experience';\nimport { SchemaVersions } from '@/schemas/schemaVersions';\n\nexport const DefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n 'Hyperlink',\n 'Array',\n 'Link',\n]);\n\nexport const DefinitionPropertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Property needs to match: /^[a-zA-Z0-9-_]{1,32}$/' });\n\nexport const PrimitiveValueSchema = z.union([\n z.string(),\n z.boolean(),\n z.number(),\n z.record(z.any(), z.any()),\n z.undefined(),\n]);\n\nexport const UsedComponentsSchema = z.array(\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.literal('Entry'),\n }),\n }),\n);\n\nexport const uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\n\nexport const DataSourceSchema = z.record(\n uuidKeySchema,\n z.object({\n sys: z.object({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry', 'Asset']),\n }),\n }),\n);\n\nexport const UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n/**\n * Property keys for imported components have a limit of 32 characters (to be implemented) while\n * property keys for patterns have a limit of 54 characters (<32-char-variable-name>_<21-char-nanoid-id>).\n * Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.\n */\nexport const propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nexport const ComponentTreeNodeIdSchema = z\n .string()\n .regex(/^[a-zA-Z0-9]{1,8}$/, { message: 'Does not match /^[a-zA-Z0-9]{1,8}$/' });\n\nexport const breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"query\": \"*\" }`,\n });\n return;\n }\n\n // Return early if there's only one generic breakpoint\n const hasNoBreakpointsStrategy = value.length === 1;\n if (hasNoBreakpointsStrategy) {\n return;\n }\n\n // Check if any breakpoint id occurs twice\n const ids = value.map((breakpoint) => breakpoint.id);\n const hasDuplicateIds = new Set(ids).size !== ids.length;\n if (hasDuplicateIds) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint IDs must be unique`,\n });\n return;\n }\n\n // Skip the first one which is guaranteed to be a wildcard query\n const nonBaseBreakpoints = value.slice(1);\n const isMobileFirstStrategy = nonBaseBreakpoints[0].query.startsWith('>');\n const isDesktopFirstStrategy = nonBaseBreakpoints[0].query.startsWith('<');\n\n if (isMobileFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('>'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \">[size]px\" for mobile-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is higher than the one above\n const isIncreasing = queries.every(\n (value, index, array) => index === 0 || value > array[index - 1],\n );\n if (!isIncreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a mobile-first strategy, all breakpoints must have strictly increasing pixel values`,\n });\n }\n } else if (isDesktopFirstStrategy) {\n const areOperatorsEqual = nonBaseBreakpoints.every(({ query }) => query.startsWith('<'));\n if (!areOperatorsEqual) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoint queries must be in the format \"<[size]px\" for desktop-first strategy`,\n });\n }\n\n // Extract the queries boundary by removing the special characters around it\n const queries = nonBaseBreakpoints.map((bp) => parseInt(bp.query.replace(/px|<|>/, '')));\n\n // Starting with the third breakpoint, check that every query is lower than the one above\n const isDecreasing = queries.every(\n (value, index, array) => index === 0 || value < array[index - 1],\n );\n if (!isDecreasing) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `When using a desktop-first strategy, all breakpoints must have strictly decreasing pixel values`,\n });\n }\n } else if (!isMobileFirstStrategy && !isDesktopFirstStrategy) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `You may only use a mobile-first or desktop-first strategy for breakpoints using '<' or '>' queries`,\n });\n }\n};\n\nexport const ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nexport const BindingSourceTypeEnumSchema = z\n .array(z.enum(['entry', 'asset', 'manual', 'experience']))\n .nonempty();\n\nexport const DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\n\nexport const BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\n\nexport const HyperlinkValueSchema = z\n .object({\n type: z.literal('HyperlinkValue'),\n linkTargetKey: z.string(),\n /** Allows to override parts of the URL, e.g. the locale */\n overrides: z.object({}).optional(),\n })\n .strict();\n\nexport const UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\n\nexport const ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nexport const NoValueSchema = z.object({ type: z.literal('NoValue') }).strict();\n\nexport const ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n HyperlinkValueSchema,\n ComponentValueSchema,\n NoValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nexport const ParameterSchema = z.object({\n type: z.literal('BoundValue'),\n path: z.string(),\n});\n\nexport const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);\n\ntype BreakpointQuery = '*' | `>${number}px` | `<${number}px`;\nconst BREAKPOINT_QUERY_REGEX = /^\\*$|^[<>][0-9]+px$/;\n\nexport const BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n // Can be replaced with z.templateLiteral when upgrading to zod v4\n query: z.string().refine((s): s is BreakpointQuery => BREAKPOINT_QUERY_REGEX.test(s)),\n previewSize: z.string().optional(),\n displayName: z.string(),\n displayIcon: z.enum(['desktop', 'tablet', 'mobile']).optional(),\n })\n .strict();\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n id: ComponentTreeNodeIdSchema.optional(),\n definitionId: DefinitionPropertyKeySchema,\n prebindingId: z.string().optional(),\n displayName: z.string().optional(),\n slotId: z.string().optional(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n parameters: ParametersSchema.optional(),\n});\n\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\n\nexport const ComponentVariableSchema = z.object({\n displayName: z.string().optional(),\n type: DefinitionPropertyTypeSchema,\n description: z.string().optional(),\n group: z.string().optional(),\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n validations: z\n .object({\n bindingSourceType: BindingSourceTypeEnumSchema.optional(),\n required: z.boolean().optional(),\n format: z.literal('URL').optional(),\n in: z\n .array(\n z.object({\n value: z.union([z.string(), z.number()]),\n displayName: z.string().optional(),\n }),\n )\n .optional(),\n })\n .optional(),\n});\n\nexport const ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> =\n BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n });\n\nexport const ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\nexport const localeWrapper = (fieldSchema: ZodTypeAny) => z.record(z.string(), fieldSchema);\n","import { z } from 'zod';\nimport {\n BindingSourceTypeEnumSchema,\n BoundValueSchema,\n BreakpointSchema,\n breakpointsRefinement,\n ComponentTreeSchema,\n ComponentValueSchema,\n DataSourceSchema,\n DesignValueSchema,\n HyperlinkValueSchema,\n localeWrapper,\n NoValueSchema,\n ParameterSchema,\n PrimitiveValueSchema,\n UnboundValueSchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n ValuesByBreakpointSchema,\n} from './common';\n\nexport const ExperienceFieldsCMAShapeSchema = z.object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n});\n\nexport type ExperienceFields = z.infer<typeof ExperienceFieldsCMAShapeSchema>;\nexport type ExperienceDataSource = z.infer<typeof DataSourceSchema>;\nexport type ExperienceUnboundValues = z.infer<typeof UnboundValuesSchema>;\nexport type ExperienceUsedComponents = z.infer<typeof UsedComponentsSchema>;\nexport type ExperienceComponentTree = z.infer<typeof ComponentTreeSchema>;\nexport type ValuesByBreakpoint = z.infer<typeof ValuesByBreakpointSchema>;\nexport type Breakpoint = z.infer<typeof BreakpointSchema>;\nexport type PrimitiveValue = z.infer<typeof PrimitiveValueSchema>;\nexport type DesignValue = z.infer<typeof DesignValueSchema>;\nexport type BoundValue = z.infer<typeof BoundValueSchema>;\nexport type NoValue = z.infer<typeof NoValueSchema>;\nexport type UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type HyperlinkValue = z.infer<typeof HyperlinkValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\nexport type BindingSourceTypeEnum = z.infer<typeof BindingSourceTypeEnumSchema>;\nexport type Parameter = z.infer<typeof ParameterSchema>;\nexport { breakpointsRefinement };\n","type NodeWithChildren<T> = {\n children: T[];\n};\n\nexport function treeVisit<T extends NodeWithChildren<T>>(\n initialNode: T | T[],\n onNode: (node: T) => void,\n) {\n const _treeVisit = (currentNode: T): void => {\n const children = [...currentNode.children];\n onNode(currentNode);\n for (const child of children) {\n _treeVisit(child);\n }\n };\n if (Array.isArray(initialNode)) {\n for (const node of initialNode) {\n _treeVisit(node);\n }\n } else {\n _treeVisit(initialNode);\n }\n}\n","import { z } from 'zod';\nimport {\n ComponentTreeSchema,\n ComponentVariableSchema,\n DataSourceSchema,\n localeWrapper,\n propertyKeySchema,\n UnboundValuesSchema,\n UsedComponentsSchema,\n} from '../v2023_09_28/common';\nimport { treeVisit } from '@/utils/treeVisit';\n\nexport const MAX_ALLOWED_PATHS = 200;\n\nexport const THUMBNAIL_IDS = [\n 'columns',\n 'columnsPlusRight',\n 'imagesSquare',\n 'subtitles',\n 'rowsPlusBottom',\n 'userRectangle',\n 'textbox',\n 'monitorPlay',\n 'article',\n 'table',\n 'star',\n 'heartStraight',\n 'frameCorners',\n 'rows',\n 'dotsThreeOutline',\n 'listDashes',\n 'checkerBoard',\n 'gridFour',\n 'slideshow',\n 'diamondsFour',\n 'cards',\n 'textColumns',\n 'duplex',\n] as const;\n\n// TODO: finalize schema structure before release\n// https://contentful.atlassian.net/browse/LUMOS-523\nconst VariableMappingSchema = z.object({\n parameterId: propertyKeySchema,\n type: z.literal('ContentTypeMapping'),\n pathsByContentType: z\n .record(z.string(), z.object({ path: z.string() }))\n .superRefine((paths, ctx) => {\n const variableId = ctx.path[ctx.path.length - 2];\n if (Object.keys(paths).length > MAX_ALLOWED_PATHS) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Too many paths defined for variable mapping with id \"${variableId}\", maximum allowed is ${MAX_ALLOWED_PATHS}`,\n });\n }\n }),\n});\n\nexport const PassToNodeSchema = z\n .object({\n nodeId: propertyKeySchema,\n parameterId: propertyKeySchema,\n prebindingId: propertyKeySchema,\n })\n .strict();\n\nconst ParameterDefinitionSchema = z.object({\n defaultSource: z\n .strictObject({\n type: z.enum(['Entry']),\n contentTypeId: z.string(),\n link: z.strictObject({\n sys: z.strictObject({\n type: z.literal('Link'),\n id: z.string(),\n linkType: z.enum(['Entry']),\n }),\n }),\n })\n .optional(),\n contentTypes: z.array(z.string()).min(1),\n passToNodes: z\n .array(PassToNodeSchema)\n .max(1, 'At most one \"passToNodes\" element is allowed per parameter definition.'),\n});\n\nexport const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);\n\nconst VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);\n\nexport const ComponentVariablesSchema = z.record(\n z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length\n ComponentVariableSchema,\n);\n\nexport const PrebindingDefinitionSchema = z\n .object({\n id: propertyKeySchema,\n parameterDefinitions: ParameterDefinitionsSchema,\n variableMappings: VariableMappingsSchema.optional(),\n allowedVariableOverrides: z.array(z.string()).optional(),\n })\n .strict();\n\nconst ComponentSettingsSchema = z\n .object({\n variableDefinitions: ComponentVariablesSchema,\n thumbnailId: z.enum(THUMBNAIL_IDS).optional(),\n category: z.string().max(50, 'Category must contain at most 50 characters').optional(),\n prebindingDefinitions: z.array(PrebindingDefinitionSchema).length(1).optional(),\n })\n .strict()\n .superRefine((componentSettings, ctx) => {\n const { variableDefinitions, prebindingDefinitions } = componentSettings;\n if (!prebindingDefinitions || prebindingDefinitions.length === 0) {\n return;\n }\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions[0];\n\n validateAtMostOneNativeParameterDefinition(parameterDefinitions, ctx);\n validateNoOverlapBetweenMappingAndOverrides(variableMappings, allowedVariableOverrides, ctx);\n validateMappingsAgainstVariableDefinitions(\n variableMappings,\n allowedVariableOverrides,\n variableDefinitions,\n ctx,\n );\n validateMappingsAgainstParameterDefinitions(variableMappings, parameterDefinitions, ctx);\n });\n\nexport const PatternFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema),\n })\n .superRefine((patternFields, ctx) => {\n const { componentTree, componentSettings } = patternFields;\n\n // values at this point are wrapped under locale code\n const nonLocalisedComponentTree = Object.values(componentTree)[0];\n const nonLocalisedComponentSettings = Object.values(componentSettings)[0];\n\n if (!nonLocalisedComponentSettings || !nonLocalisedComponentTree) {\n return;\n }\n\n validatePassToNodes(\n nonLocalisedComponentTree.children || ([] as z.infer<typeof ComponentTreeSchema>['children']),\n nonLocalisedComponentSettings || ({} as PatternComponentSettings),\n ctx,\n );\n });\n\nconst validateAtMostOneNativeParameterDefinition = (\n parameterDefinitions: Record<string, ParameterDefinition>,\n ctx: z.RefinementCtx,\n) => {\n const nativeParamDefinitions = Object.values(parameterDefinitions).filter(\n (paramDefinition) => !(paramDefinition.passToNodes && paramDefinition.passToNodes.length > 0),\n );\n\n if (nativeParamDefinitions.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Only one native parameter definition (parameter definition without passToNodes) is allowed per prebinding definition.`,\n });\n }\n};\n\nconst validateNoOverlapBetweenMappingAndOverrides = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n ctx: z.RefinementCtx,\n) => {\n const variableMappingKeys = Object.keys(variableMappings || {});\n const overridesSet = new Set(allowedVariableOverrides || []);\n const overlap = variableMappingKeys.filter((key) => overridesSet.has(key));\n if (overlap.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Found both variable mapping and allowed override for the following keys: ${overlap.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstVariableDefinitions = (\n variableMappings: VariableMappings | undefined,\n allowedVariableOverrides: string[] | undefined,\n variableDefinitions: Record<string, z.infer<typeof ComponentVariableSchema>>,\n ctx: z.RefinementCtx,\n) => {\n const nonDesignVariableDefinitionKeys = Object.entries(variableDefinitions)\n .filter(([_, def]) => def.group !== 'style')\n .map(([key]) => key);\n\n const variableMappingKeys = Object.keys(variableMappings || {});\n\n const allKeys = [...variableMappingKeys, ...(allowedVariableOverrides || [])];\n const invalidMappings = allKeys.filter((key) => !nonDesignVariableDefinitionKeys.includes(key));\n if (invalidMappings.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following variable mappings or overrides are missing from the variable definitions: ${invalidMappings.map((key) => `\"${key}\"`).join(', ')}.`,\n });\n }\n};\n\nconst validateMappingsAgainstParameterDefinitions = (\n variableMappings: VariableMappings | undefined,\n parameterDefinitions: ParameterDefinitions,\n ctx: z.RefinementCtx,\n) => {\n const parameterDefinitionKeys = Object.keys(parameterDefinitions || {});\n for (const [mappingKey, mappingValue] of Object.entries(variableMappings || {})) {\n if (!parameterDefinitionKeys.includes(mappingValue.parameterId)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The variable mapping with id \"${mappingKey}\" references a non-existing parameterId \"${mappingValue.parameterId}\".`,\n });\n }\n }\n};\n\nconst validatePassToNodes = (\n rootChildren: z.infer<typeof ComponentTreeSchema>['children'],\n componentSettings: PatternComponentSettings,\n ctx: z.RefinementCtx,\n) => {\n if (\n !componentSettings.prebindingDefinitions ||\n componentSettings.prebindingDefinitions.length === 0\n ) {\n return;\n }\n const { parameterDefinitions } = componentSettings.prebindingDefinitions[0];\n\n const nodeIds: Set<string> = new Set();\n for (const paramDef of Object.values(parameterDefinitions || {})) {\n paramDef.passToNodes?.forEach((n) => nodeIds.add(n.nodeId));\n }\n\n treeVisit(rootChildren, (node) => {\n if (!node.id) return;\n if (nodeIds.has(node.id)) {\n nodeIds.delete(node.id);\n }\n });\n\n if (nodeIds.size > 0) {\n const stringifiedNodeIds = Array.from(nodeIds)\n .map((id) => `\"${id}\"`)\n .join(', ');\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The following node IDs referenced in passToNodes are not present in the component tree: ${stringifiedNodeIds}.`,\n });\n }\n};\n\nexport type PatternFields = z.infer<typeof PatternFieldsCMAShapeSchema>;\nexport type ParameterDefinition = z.infer<typeof ParameterDefinitionSchema>;\nexport type ParameterDefinitions = z.infer<typeof ParameterDefinitionsSchema>;\nexport type VariableMapping = z.infer<typeof VariableMappingSchema>;\nexport type VariableMappings = z.infer<typeof VariableMappingsSchema>;\nexport type PatternComponentSettings = z.infer<typeof ComponentSettingsSchema>;\nexport type PrebindingDefinition = z.infer<typeof PrebindingDefinitionSchema>;\n","import { z } from 'zod';\nimport {\n ComponentVariableSchema,\n DefinitionPropertyKeySchema,\n DefinitionPropertyTypeSchema,\n PrimitiveValueSchema,\n} from './v2023_09_28/common';\n\nexport const ComponentDefinitionSchema = z\n .object({\n id: DefinitionPropertyKeySchema,\n name: z.string(),\n category: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n thumbnailId: z.string().optional(),\n hyperlinkPattern: z.string().optional(),\n children: z.boolean().optional(),\n slots: z\n .record(DefinitionPropertyKeySchema, z.object({ displayName: z.string().optional() }))\n .optional(),\n builtInStyles: z.array(z.string()).optional(),\n tooltip: z.object({ imageUrl: z.string().optional(), description: z.string() }).optional(),\n variables: z.record(\n DefinitionPropertyKeySchema,\n ComponentVariableSchema.extend({\n defaultValue: PrimitiveValueSchema.optional(),\n }).superRefine((val, ctx) => {\n switch (val.type) {\n case 'Array':\n if (typeof val.defaultValue !== 'undefined') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Array\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Boolean':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'boolean') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a boolean when type is \"Boolean\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Date':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Date\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Hyperlink':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Hyperlink\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Link':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue is not supported for \"Link\" type for ${ctx.path.join('.')}`,\n fatal: false,\n });\n }\n break;\n case 'Location':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Location\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Media':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Media\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Number':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'number') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a number when type is \"Number\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Object':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"Object\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'RichText':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'object') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be an object when type is \"RichText\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n case 'Text':\n if (typeof val.defaultValue !== 'undefined' && typeof val.defaultValue !== 'string') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `defaultValue must be a string when type is \"Text\" for ${ctx.path.join('.')}, got ${typeof val.defaultValue} instead`,\n fatal: false,\n });\n }\n break;\n }\n }),\n ),\n })\n .superRefine((val, ctx) => {\n if (val.children === true && (!!val.variables.children || !!val.slots?.children)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Cannot activate 'children: true' and name a variable or slot 'children' at the same time`,\n fatal: false,\n });\n }\n // Ensure that slots and variables don't use the same names\n if (val.variables && val.slots) {\n Object.keys(val.variables).forEach((name) => {\n if (val.slots![name]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Variable and slot cannot have the same name: ${name}`,\n fatal: false,\n });\n }\n });\n }\n });\n\nexport type ComponentDefinitionPropertyType = z.infer<typeof DefinitionPropertyTypeSchema>;\nexport type ComponentDefinitionType = z.infer<typeof ComponentDefinitionSchema>;\n","import { ZodIssueCode, ZodIssue, z } from 'zod';\n\nexport enum CodeNames {\n Type = 'type',\n Required = 'required',\n Unexpected = 'unexpected',\n Regex = 'regex',\n In = 'in',\n Size = 'size',\n Custom = 'custom',\n}\n\nexport type ContentfulErrorDetails = {\n details: string;\n min?: number | bigint;\n max?: number | bigint;\n name: (typeof CodeNames)[keyof typeof CodeNames];\n path: (string | number)[];\n value?: string;\n expected?: (string | number)[];\n};\n\nconst convertInvalidType = (issue: z.ZodInvalidTypeIssue): ContentfulErrorDetails => {\n const name = issue.received === 'undefined' ? CodeNames.Required : CodeNames.Type;\n const details =\n issue.received === 'undefined'\n ? `The property \"${issue.path.slice(-1)}\" is required here`\n : `The type of \"${issue.path.slice(-1)}\" is incorrect, expected type: ${issue.expected}`;\n\n return {\n details: details,\n name: name,\n path: issue.path,\n value: issue.received.toString(),\n };\n};\n\nconst convertUnrecognizedKeys = (issue: z.ZodUnrecognizedKeysIssue): ContentfulErrorDetails => {\n const missingProperties = issue.keys.map((k) => `\"${k}\"`).join(', ');\n return {\n details:\n issue.keys.length > 1\n ? `The properties ${missingProperties} are not expected`\n : `The property ${missingProperties} is not expected`,\n name: CodeNames.Unexpected,\n path: issue.path,\n };\n};\n\nconst convertInvalidString = (issue: z.ZodInvalidStringIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Invalid string',\n name: issue.validation === 'regex' ? CodeNames.Regex : CodeNames.Unexpected,\n path: issue.path,\n };\n};\nconst convertInvalidEnumValue = (issue: z.ZodInvalidEnumValueIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received.toString(),\n expected: issue.options,\n };\n};\nconst convertInvalidLiteral = (issue: z.ZodInvalidLiteralIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'Value must be one of expected values',\n name: CodeNames.In,\n path: issue.path,\n value: issue.received as string,\n expected: [issue.expected as string],\n };\n};\n\nconst convertTooBig = (issue: z.ZodTooBigIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at most ${issue.maximum}`,\n name: CodeNames.Size,\n path: issue.path,\n max: issue.maximum,\n };\n};\n\nconst convertTooSmall = (issue: z.ZodTooSmallIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || `Size should be at least ${issue.minimum}`,\n name: CodeNames.Size,\n path: issue.path,\n min: issue.minimum,\n };\n};\nconst defaultConversion = (issue: ZodIssue): ContentfulErrorDetails => {\n return {\n details: issue.message || 'An unexpected error occurred',\n name: CodeNames.Custom,\n path: issue.path.map(String),\n };\n};\n\nexport const zodToContentfulError = (issue: ZodIssue): ContentfulErrorDetails => {\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n return convertInvalidType(issue);\n case ZodIssueCode.unrecognized_keys:\n return convertUnrecognizedKeys(issue);\n case ZodIssueCode.invalid_enum_value:\n return convertInvalidEnumValue(issue);\n case ZodIssueCode.invalid_string:\n return convertInvalidString(issue);\n case ZodIssueCode.too_small:\n return convertTooSmall(issue);\n case ZodIssueCode.too_big:\n return convertTooBig(issue);\n case ZodIssueCode.invalid_literal:\n return convertInvalidLiteral(issue);\n default:\n return defaultConversion(issue);\n }\n};\n","import { z } from 'zod';\nimport { Breakpoint, BreakpointSchema, breakpointsRefinement } from '../schemas/latest';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '@/utils/zodToContentfulError';\n\nexport const validateBreakpointsDefinition = (breakpoints: Breakpoint[]): ValidatorReturnValue => {\n const result = z\n .array(BreakpointSchema)\n .superRefine(breakpointsRefinement)\n .safeParse(breakpoints);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { ComponentDefinitionSchema } from '../schemas';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { zodToContentfulError } from '../utils/zodToContentfulError';\n\nexport const validateComponentDefinition = (definition): ValidatorReturnValue => {\n const result = ComponentDefinitionSchema.safeParse(definition);\n if (!result.success) {\n return {\n success: false,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { PatternSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': PatternSchema_2023_09_28,\n};\n\n/**\n *\n * @param pattern The pattern entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the pattern entry\n * @returns object with success property and optional errors array\n */\nexport const validatePatternFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n pattern: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion: SchemaVersions | undefined;\n\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (pattern.fields.componentTree) {\n const locale = Object.keys(pattern.fields.componentTree)[0];\n schemaVersion = pattern.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: Object.keys(VERSION_SCHEMAS),\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: pattern.fields.componentTree,\n dataSource: pattern.fields.dataSource,\n unboundValues: pattern.fields.unboundValues,\n usedComponents: pattern.fields.usedComponents,\n componentSettings: pattern.fields.componentSettings,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n","import { type SchemaVersions } from '../types';\nimport { ValidatorReturnValue } from './ValidatorReturnValue';\nimport { ExperienceSchema_2023_09_28 } from '../schemas';\nimport { zodToContentfulError, CodeNames } from '@/utils/zodToContentfulError';\nimport { validatePatternFields } from '@/validators/validatePatternFields';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': ExperienceSchema_2023_09_28,\n};\n\n// TODO: fix typing when the Entry type is exposed\nfunction isPattern(experience: any): boolean {\n return experience.fields.componentSettings !== undefined;\n}\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against.\n * By default, the schema version is read from the experience entry\n * @returns object with success property and optional errors array\n */\nexport const validateExperienceFields = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches KeyValueMap in EntryProps['fields']\n experience: { fields: Record<string, any> },\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n // If this is a pattern, use the pattern validator\n if (isPattern(experience)) {\n return validatePatternFields(experience, schemaVersionOverride);\n }\n\n let schemaVersion: SchemaVersions | undefined;\n if (schemaVersionOverride) {\n schemaVersion = schemaVersionOverride;\n } else if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n\n const schema = schemaVersion && VERSION_SCHEMAS[schemaVersion];\n\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n name: schemaVersion ? CodeNames.In : CodeNames.Required,\n expected: ['2023-09-28'],\n value: schemaVersion,\n path: ['fields', 'componentTree', 'schemaVersion'],\n details: schemaVersion\n ? 'Unsupported schema version'\n : 'The property \"schemaVersion\" is required here',\n },\n ],\n };\n }\n\n const fieldsToValidate = {\n componentTree: experience.fields.componentTree,\n dataSource: experience.fields.dataSource,\n unboundValues: experience.fields.unboundValues,\n usedComponents: experience.fields.usedComponents,\n };\n\n const result = schema.safeParse(fieldsToValidate);\n if (!result.success) {\n return {\n success: result.success,\n errors: result.error.issues.map(zodToContentfulError),\n };\n }\n return { success: true };\n};\n"],"names":["VERSION_SCHEMAS","PatternSchema_2023_09_28","ExperienceSchema_2023_09_28"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/experiences-validators",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0-beta.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": "
|
|
54
|
+
"gitHead": "c5459ec84f8c2d5313f22f8aef601dfdbf42c04c"
|
|
55
55
|
}
|