@contentful/experiences-validators 0.0.1-alpha.2 → 0.0.1-alpha.4
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 +6 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -12,9 +12,14 @@ const SchemaVersions = zod.z.union([
|
|
|
12
12
|
const uuidKeySchema = zod.z
|
|
13
13
|
.string()
|
|
14
14
|
.regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });
|
|
15
|
+
/**
|
|
16
|
+
* Property keys for imported components have a limit of 32 characters (to be implemented) while
|
|
17
|
+
* property keys for patterns have a limit of 54 characters (<32-char-variabl-name>_<21-char-nanoid-id>).
|
|
18
|
+
* Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.
|
|
19
|
+
*/
|
|
15
20
|
const propertyKeySchema = zod.z
|
|
16
21
|
.string()
|
|
17
|
-
.regex(/^[a-zA-Z0-9-_]{1,
|
|
22
|
+
.regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });
|
|
18
23
|
const DataSourceSchema = zod.z.record(uuidKeySchema, zod.z.object({
|
|
19
24
|
sys: zod.z.object({
|
|
20
25
|
type: zod.z.literal('Link'),
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/zodToContentfulError.ts","../src/validators.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const SchemaVersions = z.union([\n z.literal('2023-09-28'),\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n","import { z } from 'zod';\nimport { SchemaVersions } from '../schemaVersions';\n\nconst uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\nconst propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,32}$/' });\n\nconst 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\nconst 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 ComponentDefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n]);\n\nconst ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nconst DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\nconst BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\nconst UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\nconst ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nconst ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n ComponentValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\nconst BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^<[0-9*]+px$/),\n previewSize: z.string(),\n displayName: z.string(),\n })\n .strict();\n\nconst UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n definitionId: z.string(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n});\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\nconst ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> = BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n});\n\nconst ComponentSettingsSchema = z.object({\n variableDefinitions: 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 z.object({\n displayName: z.string().optional(),\n type: ComponentDefinitionPropertyTypeSchema,\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n description: z.string().optional(),\n group: z.string().optional(),\n validations: z\n .object({\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 ),\n});\n\nconst 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\nconst breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].id !== 'desktop' || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"id\": \"desktop\", \"query\": \"*\" }`,\n });\n }\n // Extract the queries boundary by removing the special characters around it\n const queries = value.map((bp) =>\n bp.query === '*' ? bp.query : parseInt(bp.query.replace(/px|<|>/, '')),\n );\n // sort updates queries array in place so we need to create a copy\n const originalQueries = [...queries];\n queries.sort((q1, q2) => {\n if (q1 === '*') {\n return -1;\n }\n if (q2 === '*') {\n return 1;\n }\n return q1 > q2 ? -1 : 1;\n });\n\n if (originalQueries.join('') !== queries.join('')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoints should be ordered from largest to smallest pixel value`,\n });\n }\n};\n\nconst componentSettingsRefinement = (value, ctx: z.RefinementCtx) => {\n const { componentSettings, usedComponents } = value as ExperienceFields;\n\n if (!componentSettings || !usedComponents) {\n return;\n }\n const localeKey = Object.keys(componentSettings ?? {})[0];\n\n if (componentSettings[localeKey] !== undefined && usedComponents[localeKey] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `'componentSettings' field cannot be used in conjunction with 'usedComponents' field`,\n path: ['componentSettings', localeKey],\n });\n }\n};\n\nconst ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\n\nconst localeWrapper = (fieldSchema: any) => z.record(z.string(), fieldSchema);\n\nexport const ExperienceFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema).optional(),\n })\n .superRefine(componentSettingsRefinement);\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 ExperienceComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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 UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\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 { Schema_2023_09_28 } from './schemas';\nimport {\n ContentfulErrorDetails,\n zodToContentfulError,\n CodeNames,\n} from './utils/zodToContentfulError';\n\nimport { type SchemaVersions } from './types';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': Schema_2023_09_28,\n};\n\ntype ValidatorReturnValue = {\n success: boolean;\n errors?: ContentfulErrorDetails[];\n};\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against. 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 experience: any,\n schemaVersionOverride?: SchemaVersions\n): ValidatorReturnValue => {\n let schemaVersion;\n if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n const schema = VERSION_SCHEMAS[schemaVersionOverride || 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 componentSettings: experience.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"],"names":["z","ZodIssueCode","Schema_2023_09_28"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/zodToContentfulError.ts","../src/validators.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const SchemaVersions = z.union([\n z.literal('2023-09-28'),\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n","import { z } from 'zod';\nimport { SchemaVersions } from '../schemaVersions';\n\nconst uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\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-variabl-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 */\nconst propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nconst 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\nconst 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 ComponentDefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n]);\n\nconst ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nconst DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\nconst BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\nconst UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\nconst ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nconst ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n ComponentValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\nconst BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^<[0-9*]+px$/),\n previewSize: z.string(),\n displayName: z.string(),\n })\n .strict();\n\nconst UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n definitionId: z.string(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n});\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\nconst ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> = BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n});\n\nconst ComponentSettingsSchema = z.object({\n variableDefinitions: 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 z.object({\n displayName: z.string().optional(),\n type: ComponentDefinitionPropertyTypeSchema,\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n description: z.string().optional(),\n group: z.string().optional(),\n validations: z\n .object({\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 ),\n});\n\nconst 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\nconst breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].id !== 'desktop' || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"id\": \"desktop\", \"query\": \"*\" }`,\n });\n }\n // Extract the queries boundary by removing the special characters around it\n const queries = value.map((bp) =>\n bp.query === '*' ? bp.query : parseInt(bp.query.replace(/px|<|>/, '')),\n );\n // sort updates queries array in place so we need to create a copy\n const originalQueries = [...queries];\n queries.sort((q1, q2) => {\n if (q1 === '*') {\n return -1;\n }\n if (q2 === '*') {\n return 1;\n }\n return q1 > q2 ? -1 : 1;\n });\n\n if (originalQueries.join('') !== queries.join('')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoints should be ordered from largest to smallest pixel value`,\n });\n }\n};\n\nconst componentSettingsRefinement = (value, ctx: z.RefinementCtx) => {\n const { componentSettings, usedComponents } = value as ExperienceFields;\n\n if (!componentSettings || !usedComponents) {\n return;\n }\n const localeKey = Object.keys(componentSettings ?? {})[0];\n\n if (componentSettings[localeKey] !== undefined && usedComponents[localeKey] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `'componentSettings' field cannot be used in conjunction with 'usedComponents' field`,\n path: ['componentSettings', localeKey],\n });\n }\n};\n\nconst ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\n\nconst localeWrapper = (fieldSchema: any) => z.record(z.string(), fieldSchema);\n\nexport const ExperienceFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema).optional(),\n })\n .superRefine(componentSettingsRefinement);\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 ExperienceComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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 UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\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 { Schema_2023_09_28 } from './schemas';\nimport {\n ContentfulErrorDetails,\n zodToContentfulError,\n CodeNames,\n} from './utils/zodToContentfulError';\n\nimport { type SchemaVersions } from './types';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': Schema_2023_09_28,\n};\n\ntype ValidatorReturnValue = {\n success: boolean;\n errors?: ContentfulErrorDetails[];\n};\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against. 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 experience: any,\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion;\n if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n const schema = VERSION_SCHEMAS[schemaVersionOverride || 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 componentSettings: experience.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"],"names":["z","ZodIssueCode","Schema_2023_09_28"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,9 +10,14 @@ const SchemaVersions = z.union([
|
|
|
10
10
|
const uuidKeySchema = z
|
|
11
11
|
.string()
|
|
12
12
|
.regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });
|
|
13
|
+
/**
|
|
14
|
+
* Property keys for imported components have a limit of 32 characters (to be implemented) while
|
|
15
|
+
* property keys for patterns have a limit of 54 characters (<32-char-variabl-name>_<21-char-nanoid-id>).
|
|
16
|
+
* Because we cannot distinguish between the two in the componentTree, we will use the larger limit for both.
|
|
17
|
+
*/
|
|
13
18
|
const propertyKeySchema = z
|
|
14
19
|
.string()
|
|
15
|
-
.regex(/^[a-zA-Z0-9-_]{1,
|
|
20
|
+
.regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });
|
|
16
21
|
const DataSourceSchema = z.record(uuidKeySchema, z.object({
|
|
17
22
|
sys: z.object({
|
|
18
23
|
type: z.literal('Link'),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/zodToContentfulError.ts","../src/validators.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const SchemaVersions = z.union([\n z.literal('2023-09-28'),\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n","import { z } from 'zod';\nimport { SchemaVersions } from '../schemaVersions';\n\nconst uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\nconst propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,32}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,32}$/' });\n\nconst 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\nconst 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 ComponentDefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n]);\n\nconst ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nconst DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\nconst BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\nconst UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\nconst ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nconst ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n ComponentValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\nconst BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^<[0-9*]+px$/),\n previewSize: z.string(),\n displayName: z.string(),\n })\n .strict();\n\nconst UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n definitionId: z.string(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n});\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\nconst ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> = BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n});\n\nconst ComponentSettingsSchema = z.object({\n variableDefinitions: 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 z.object({\n displayName: z.string().optional(),\n type: ComponentDefinitionPropertyTypeSchema,\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n description: z.string().optional(),\n group: z.string().optional(),\n validations: z\n .object({\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 ),\n});\n\nconst 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\nconst breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].id !== 'desktop' || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"id\": \"desktop\", \"query\": \"*\" }`,\n });\n }\n // Extract the queries boundary by removing the special characters around it\n const queries = value.map((bp) =>\n bp.query === '*' ? bp.query : parseInt(bp.query.replace(/px|<|>/, '')),\n );\n // sort updates queries array in place so we need to create a copy\n const originalQueries = [...queries];\n queries.sort((q1, q2) => {\n if (q1 === '*') {\n return -1;\n }\n if (q2 === '*') {\n return 1;\n }\n return q1 > q2 ? -1 : 1;\n });\n\n if (originalQueries.join('') !== queries.join('')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoints should be ordered from largest to smallest pixel value`,\n });\n }\n};\n\nconst componentSettingsRefinement = (value, ctx: z.RefinementCtx) => {\n const { componentSettings, usedComponents } = value as ExperienceFields;\n\n if (!componentSettings || !usedComponents) {\n return;\n }\n const localeKey = Object.keys(componentSettings ?? {})[0];\n\n if (componentSettings[localeKey] !== undefined && usedComponents[localeKey] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `'componentSettings' field cannot be used in conjunction with 'usedComponents' field`,\n path: ['componentSettings', localeKey],\n });\n }\n};\n\nconst ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\n\nconst localeWrapper = (fieldSchema: any) => z.record(z.string(), fieldSchema);\n\nexport const ExperienceFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema).optional(),\n })\n .superRefine(componentSettingsRefinement);\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 ExperienceComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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 UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\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 { Schema_2023_09_28 } from './schemas';\nimport {\n ContentfulErrorDetails,\n zodToContentfulError,\n CodeNames,\n} from './utils/zodToContentfulError';\n\nimport { type SchemaVersions } from './types';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': Schema_2023_09_28,\n};\n\ntype ValidatorReturnValue = {\n success: boolean;\n errors?: ContentfulErrorDetails[];\n};\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against. 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 experience: any,\n schemaVersionOverride?: SchemaVersions\n): ValidatorReturnValue => {\n let schemaVersion;\n if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n const schema = VERSION_SCHEMAS[schemaVersionOverride || 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 componentSettings: experience.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"],"names":["Schema_2023_09_28"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/schemas/schemaVersions.ts","../src/schemas/v2023_09_28/experience.ts","../src/utils/zodToContentfulError.ts","../src/validators.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const SchemaVersions = z.union([\n z.literal('2023-09-28'),\n z.literal('2023-08-23'),\n z.literal('2023-07-26'),\n z.literal('2023-06-27'),\n]);\nexport type SchemaVersions = z.infer<typeof SchemaVersions>;\n","import { z } from 'zod';\nimport { SchemaVersions } from '../schemaVersions';\n\nconst uuidKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,21}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,21}$/' });\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-variabl-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 */\nconst propertyKeySchema = z\n .string()\n .regex(/^[a-zA-Z0-9-_]{1,54}$/, { message: 'Does not match /^[a-zA-Z0-9-_]{1,54}$/' });\n\nconst 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\nconst 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 ComponentDefinitionPropertyTypeSchema = z.enum([\n 'Text',\n 'RichText',\n 'Number',\n 'Date',\n 'Boolean',\n 'Location',\n 'Media',\n 'Object',\n]);\n\nconst ValuesByBreakpointSchema = z.record(z.lazy(() => PrimitiveValueSchema));\n\nconst DesignValueSchema = z\n .object({\n type: z.literal('DesignValue'),\n valuesByBreakpoint: ValuesByBreakpointSchema,\n })\n .strict();\nconst BoundValueSchema = z\n .object({\n type: z.literal('BoundValue'),\n path: z.string(),\n })\n .strict();\nconst UnboundValueSchema = z\n .object({\n type: z.literal('UnboundValue'),\n key: z.string(),\n })\n .strict();\nconst ComponentValueSchema = z\n .object({\n type: z.literal('ComponentValue'),\n key: z.string(),\n })\n .strict();\n\nconst ComponentPropertyValueSchema = z.discriminatedUnion('type', [\n DesignValueSchema,\n BoundValueSchema,\n UnboundValueSchema,\n ComponentValueSchema,\n]);\n\nexport type ComponentPropertyValue = z.infer<typeof ComponentPropertyValueSchema>;\n\nconst BreakpointSchema = z\n .object({\n id: propertyKeySchema,\n query: z.string().regex(/^\\*$|^<[0-9*]+px$/),\n previewSize: z.string(),\n displayName: z.string(),\n })\n .strict();\n\nconst UnboundValuesSchema = z.record(\n uuidKeySchema,\n z.object({\n value: PrimitiveValueSchema,\n }),\n);\n\n// Use helper schema to define a recursive schema with its type correctly below\nconst BaseComponentTreeNodeSchema = z.object({\n definitionId: z.string(),\n variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),\n});\nexport type ComponentTreeNode = z.infer<typeof BaseComponentTreeNodeSchema> & {\n children: ComponentTreeNode[];\n};\nconst ComponentTreeNodeSchema: z.ZodType<ComponentTreeNode> = BaseComponentTreeNodeSchema.extend({\n children: z.lazy(() => ComponentTreeNodeSchema.array()),\n});\n\nconst ComponentSettingsSchema = z.object({\n variableDefinitions: 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 z.object({\n displayName: z.string().optional(),\n type: ComponentDefinitionPropertyTypeSchema,\n defaultValue: PrimitiveValueSchema.or(ComponentPropertyValueSchema).optional(),\n description: z.string().optional(),\n group: z.string().optional(),\n validations: z\n .object({\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 ),\n});\n\nconst 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\nconst breakpointsRefinement = (value: Breakpoint[], ctx: z.RefinementCtx) => {\n if (!value.length || value[0].id !== 'desktop' || value[0].query !== '*') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The first breakpoint should include the following attributes: { \"id\": \"desktop\", \"query\": \"*\" }`,\n });\n }\n // Extract the queries boundary by removing the special characters around it\n const queries = value.map((bp) =>\n bp.query === '*' ? bp.query : parseInt(bp.query.replace(/px|<|>/, '')),\n );\n // sort updates queries array in place so we need to create a copy\n const originalQueries = [...queries];\n queries.sort((q1, q2) => {\n if (q1 === '*') {\n return -1;\n }\n if (q2 === '*') {\n return 1;\n }\n return q1 > q2 ? -1 : 1;\n });\n\n if (originalQueries.join('') !== queries.join('')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Breakpoints should be ordered from largest to smallest pixel value`,\n });\n }\n};\n\nconst componentSettingsRefinement = (value, ctx: z.RefinementCtx) => {\n const { componentSettings, usedComponents } = value as ExperienceFields;\n\n if (!componentSettings || !usedComponents) {\n return;\n }\n const localeKey = Object.keys(componentSettings ?? {})[0];\n\n if (componentSettings[localeKey] !== undefined && usedComponents[localeKey] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `'componentSettings' field cannot be used in conjunction with 'usedComponents' field`,\n path: ['componentSettings', localeKey],\n });\n }\n};\n\nconst ComponentTreeSchema = z\n .object({\n breakpoints: z.array(BreakpointSchema).superRefine(breakpointsRefinement),\n children: z.array(ComponentTreeNodeSchema),\n schemaVersion: SchemaVersions,\n })\n .strict();\n\nconst localeWrapper = (fieldSchema: any) => z.record(z.string(), fieldSchema);\n\nexport const ExperienceFieldsCMAShapeSchema = z\n .object({\n componentTree: localeWrapper(ComponentTreeSchema),\n dataSource: localeWrapper(DataSourceSchema),\n unboundValues: localeWrapper(UnboundValuesSchema),\n usedComponents: localeWrapper(UsedComponentsSchema).optional(),\n componentSettings: localeWrapper(ComponentSettingsSchema).optional(),\n })\n .superRefine(componentSettingsRefinement);\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 ExperienceComponentSettings = z.infer<typeof ComponentSettingsSchema>;\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 UnboundValue = z.infer<typeof UnboundValueSchema>;\nexport type ComponentValue = z.infer<typeof ComponentValueSchema>;\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 { Schema_2023_09_28 } from './schemas';\nimport {\n ContentfulErrorDetails,\n zodToContentfulError,\n CodeNames,\n} from './utils/zodToContentfulError';\n\nimport { type SchemaVersions } from './types';\n\nconst VERSION_SCHEMAS = {\n '2023-09-28': Schema_2023_09_28,\n};\n\ntype ValidatorReturnValue = {\n success: boolean;\n errors?: ContentfulErrorDetails[];\n};\n\n/**\n *\n * @param experience The experience entry to validate\n * @param schemaVersionOverride Optional override for the schema version to validate against. 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 experience: any,\n schemaVersionOverride?: SchemaVersions,\n): ValidatorReturnValue => {\n let schemaVersion;\n if (experience.fields.componentTree) {\n const locale = Object.keys(experience.fields.componentTree)[0];\n schemaVersion = experience.fields.componentTree[locale].schemaVersion;\n }\n const schema = VERSION_SCHEMAS[schemaVersionOverride || 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 componentSettings: experience.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"],"names":["Schema_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": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.4",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"registry": "https://npm.pkg.github.com/"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "88c846c29852302aaf21ccaf395878f203665525"
|
|
47
47
|
}
|