@strapi/content-type-builder 5.58.0 → 5.59.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.
Files changed (126) hide show
  1. package/dist/admin/components/AIChat/FeedbackModal.js +13 -7
  2. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
  3. package/dist/admin/components/AIChat/FeedbackModal.mjs +14 -8
  4. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/UploadCodeModal.js +12 -6
  6. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/UploadCodeModal.mjs +13 -7
  8. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/UploadFigmaModal.js +12 -6
  10. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  11. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +13 -7
  12. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +6 -3
  14. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
  15. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +7 -4
  16. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/components/Collapsible.js +9 -4
  18. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
  19. package/dist/admin/components/AIChat/components/Collapsible.mjs +10 -5
  20. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/components/Dropzone.js +13 -6
  22. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
  23. package/dist/admin/components/AIChat/components/Dropzone.mjs +14 -7
  24. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/components/FloatingPanel.js +11 -4
  26. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
  27. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +12 -5
  28. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
  29. package/dist/admin/components/AIChat/components/FullScreenImage.js +16 -8
  30. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
  31. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +17 -9
  32. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
  33. package/dist/admin/components/AIChat/components/Input.js +6 -3
  34. package/dist/admin/components/AIChat/components/Input.js.map +1 -1
  35. package/dist/admin/components/AIChat/components/Input.mjs +7 -4
  36. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
  37. package/dist/admin/components/AIChat/components/Messages/Message.js +88 -12
  38. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  39. package/dist/admin/components/AIChat/components/Messages/Message.mjs +87 -13
  40. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  41. package/dist/admin/components/AIChat/components/StepModal.js +44 -17
  42. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
  43. package/dist/admin/components/AIChat/components/StepModal.mjs +45 -18
  44. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
  45. package/dist/admin/components/AIChat/providers/ChatProvider.js +79 -27
  46. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
  47. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +80 -28
  48. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
  49. package/dist/admin/components/AIChat/providers/SchemaProvider.js +6 -3
  50. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  51. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +7 -4
  52. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  53. package/dist/admin/components/AttributeOptions/AttributeOption.js +2 -2
  54. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  55. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +2 -2
  56. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  57. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.js.map +1 -1
  58. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.mjs.map +1 -1
  59. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.js.map +1 -1
  60. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.mjs.map +1 -1
  61. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +2 -1
  62. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  63. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +2 -1
  64. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  65. package/dist/admin/components/DataManager/DataManagerProvider.js +317 -275
  66. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  67. package/dist/admin/components/DataManager/DataManagerProvider.mjs +319 -277
  68. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  69. package/dist/admin/components/DataManager/RenameMigrationModal.js.map +1 -1
  70. package/dist/admin/components/DataManager/RenameMigrationModal.mjs.map +1 -1
  71. package/dist/admin/components/DataManager/reducer.js +31 -4
  72. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  73. package/dist/admin/components/DataManager/reducer.mjs +31 -4
  74. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  75. package/dist/admin/components/DynamicZoneList.js +2 -1
  76. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  77. package/dist/admin/components/DynamicZoneList.mjs +2 -1
  78. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  79. package/dist/admin/components/FormModal/attributes/ConditionForm.js +2 -1
  80. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  81. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +2 -1
  82. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  83. package/dist/admin/components/FormModal/attributes/types.js +2 -2
  84. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  85. package/dist/admin/components/FormModal/attributes/types.mjs +2 -2
  86. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  87. package/dist/admin/components/FormModal/forms/forms.js +1 -1
  88. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  89. package/dist/admin/components/FormModal/forms/forms.mjs +1 -1
  90. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  91. package/dist/admin/components/GenericInputs.js +2 -1
  92. package/dist/admin/components/GenericInputs.js.map +1 -1
  93. package/dist/admin/components/GenericInputs.mjs +2 -1
  94. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  95. package/dist/admin/components/TabForm.js.map +1 -1
  96. package/dist/admin/components/TabForm.mjs.map +1 -1
  97. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +8 -0
  98. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +20 -0
  99. package/dist/admin/utils/folderTelemetry.js.map +1 -1
  100. package/dist/admin/utils/folderTelemetry.mjs.map +1 -1
  101. package/dist/admin/utils/formAPI.js.map +1 -1
  102. package/dist/admin/utils/formAPI.mjs.map +1 -1
  103. package/dist/server/controllers/validation/schema.js +3 -2
  104. package/dist/server/controllers/validation/schema.js.map +1 -1
  105. package/dist/server/controllers/validation/schema.mjs +4 -3
  106. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  107. package/dist/server/register.js.map +1 -1
  108. package/dist/server/register.mjs.map +1 -1
  109. package/dist/server/services/migration-builder/index.js.map +1 -1
  110. package/dist/server/services/migration-builder/index.mjs.map +1 -1
  111. package/dist/server/services/schema.js +34 -1
  112. package/dist/server/services/schema.js.map +1 -1
  113. package/dist/server/services/schema.mjs +34 -1
  114. package/dist/server/services/schema.mjs.map +1 -1
  115. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  116. package/dist/server/src/register.d.ts.map +1 -1
  117. package/dist/server/src/services/migration-builder/index.d.ts.map +1 -1
  118. package/dist/server/src/services/schema-builder/types.d.ts.map +1 -1
  119. package/dist/server/src/services/schema.d.ts.map +1 -1
  120. package/dist/server/src/utils/uid-target.d.ts +18 -0
  121. package/dist/server/src/utils/uid-target.d.ts.map +1 -0
  122. package/dist/server/utils/uid-target.js +34 -0
  123. package/dist/server/utils/uid-target.js.map +1 -0
  124. package/dist/server/utils/uid-target.mjs +31 -0
  125. package/dist/server/utils/uid-target.mjs.map +1 -0
  126. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import * as z from 'zod/v4';\nimport { strings, validateZodSchema, contentTypes } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isNumber, isObject, snakeCase } from 'lodash';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds, VALID_UID_TARGETS } from '../../services/constants';\nimport { isConfigurable } from '../../utils/attributes';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\nimport { contentStructureFileSchema, type ContentStructureFileInput } from './content-structure';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\ntype SuperRefinement<T> = (value: T, ctx: z.RefinementCtx) => void | Promise<void>;\n\nconst uniqueAttributeName: SuperRefinement<{ name: string }[]> = (attributes, ctx) => {\n const names = new Set(attributes.map((attribute) => snakeCase(attribute.name)));\n if (names.size !== attributes.length) {\n ctx.addIssue({\n code: 'custom',\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: SuperRefinement<\n {\n action: 'create' | 'update' | 'delete';\n name: string;\n properties?: {\n type: unknown;\n targetField?: string | null;\n };\n }[]\n> = (attributes, ctx) => {\n attributes.forEach((attribute) => {\n if (!attribute.properties) {\n return;\n }\n\n const { properties, action } = attribute;\n\n if (properties.type === 'uid' && properties.targetField) {\n const targetAttr = attributes.find((attr) => attr.name === properties.targetField);\n\n if (!targetAttr) {\n // NOTE: on update we are setting it to undefined later in the process instead to handle renames\n if (action === 'create') {\n ctx.addIssue({\n code: 'custom',\n message: 'Target does not exist',\n });\n }\n } else if (\n !VALID_UID_TARGETS.some((validUIdTarget) => validUIdTarget === targetAttr.properties?.type)\n ) {\n ctx.addIssue({\n code: 'custom',\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: SuperRefinement<Record<string, unknown>> = (obj, ctx) => {\n // singular and plural can only be provided on creation\n if (obj.action !== 'create') {\n return;\n }\n\n if (obj.singularName === obj.pluralName) {\n ctx.addIssue({\n code: 'custom',\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\ntype ContentTypeSchemaAction = {\n action: 'create' | 'update' | 'delete';\n draftAndPublish?: boolean;\n uid?: UID.ContentType;\n renames?: Array<{ oldName: string; newName: string }>;\n attributes?: Array<{ action: 'create' | 'update' | 'delete'; name: string }>;\n};\n\n// The payload carries the full attribute list and the saved schema is built from\n// it, so the names that will be written are the payload attributes that are not\n// deleted. The rename hops do not decide what is saved. The one exception is\n// non-configurable attributes: the builder keeps them from the current schema\n// whatever the payload says, so they are always part of the saved schema.\nconst getEffectiveAttributeNames = (contentType: ContentTypeSchemaAction): string[] => {\n const names = new Set(\n (contentType.attributes ?? [])\n .filter((attribute) => attribute.action !== 'delete')\n .map((attribute) => attribute.name)\n );\n\n if (contentType.action === 'update' && contentType.uid) {\n const existingAttributes = strapi.contentTypes[contentType.uid]?.attributes ?? {};\n\n for (const [name, attribute] of Object.entries(existingAttributes)) {\n if (!isConfigurable(attribute)) {\n names.add(name);\n }\n }\n }\n\n return [...names];\n};\n\nexport const verifyDraftAndPublishReservedAttributes: SuperRefinement<ContentTypeSchemaAction> = (\n contentType,\n ctx\n) => {\n if (contentType.action === 'delete' || !contentType.draftAndPublish) {\n return;\n }\n\n const reservedAttributeNames = contentTypes.findDraftAndPublishReservedAttributeNames(\n getEffectiveAttributeNames(contentType)\n );\n\n if (reservedAttributeNames.length > 0) {\n ctx.addIssue({\n code: 'custom',\n message: contentTypes.getDraftAndPublishEnableBlockedMessage(reservedAttributeNames),\n path: ['draftAndPublish'],\n });\n }\n};\n\nexport const maxLengthGreaterThanMinLength: SuperRefinement<Record<string, unknown>> = (\n value,\n ctx\n) => {\n if (\n value.maxLength != null &&\n value.minLength != null &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength < value.minLength) {\n ctx.addIssue({\n code: 'custom',\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nexport const maxGreaterThanMin: SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (value.max != null && value.min != null && isNumber(value.max) && isNumber(value.min)) {\n if (value.max < value.min) {\n ctx.addIssue({\n code: 'custom',\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: SuperRefinement<{\n type: string;\n target?: string;\n relation?: string;\n targetAttribute?: string | null;\n}> = (value, ctx) => {\n if (value.type !== 'relation') {\n return;\n }\n\n if (value.target === undefined || value.relation === undefined) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || targetAttribute !== undefined)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['relation'],\n message: `Relations to ${coreUids.STRAPI_USER} must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')} without targetAttribute`,\n });\n }\n};\n\nconst uidRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (value.targetField != null && value.default != null) {\n ctx.addIssue({\n code: 'custom',\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && value.default != null && value.enum != null) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\n};\n\nconst conditionSchema = z.object({\n visible: z.record(z.string(), z.array(z.any())),\n});\n\nconst basePropertiesSchema = z.object({\n type: z.enum([\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'time',\n 'datetime',\n 'date',\n 'timestamp',\n 'boolean',\n 'component',\n 'uid',\n 'customField',\n 'media',\n 'relation',\n 'dynamiczone',\n ]),\n configurable: z.boolean().nullish(),\n private: z.boolean().nullish(),\n // Keep null invalid so searchability is always an explicit boolean when provided.\n searchable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst maxLengthSchema = z.number().int().positive().optional();\nconst minLengthSchema = z.number().int().positive().optional();\n\nconst requiredSchema = z.boolean().optional();\nconst uniqueSchema = z.boolean().optional();\n\nconst STRAPI_USER_RELATIONS = ['oneToOne', 'oneToMany'];\n\nconst baseRelationSchema = z.object({\n type: z.literal('relation'),\n relation: z.enum([\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ]),\n configurable: z.boolean().nullish(),\n required: requiredSchema,\n private: z.boolean().nullish(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst oneToOneSchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst oneWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n});\n\nconst oneToManySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n});\n\nconst manyToOneSchema = baseRelationSchema.extend({\n relation: z.literal('manyToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyToManySchema = baseRelationSchema.extend({\n relation: z.literal('manyToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphManySchema = baseRelationSchema.extend({\n relation: z.literal('morphMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphToOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphToOne'),\n});\n\nconst morphToManySchema = baseRelationSchema.extend({\n relation: z.literal('morphToMany'),\n});\n\nconst createRelationSchema = (meta: SchemaMeta) => {\n switch (meta.modelType) {\n case 'contentType': {\n switch (meta.kind) {\n case 'singleType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n\n case 'collectionType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n manyToOneSchema,\n manyToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n default:\n throw new Error('Invalid content type kind');\n }\n }\n\n case 'component': {\n return z.discriminatedUnion('relation', [oneWaySchema, manyWaySchema]);\n }\n default:\n throw new Error('Invalid model type');\n }\n};\n\nconst richTextSchema = basePropertiesSchema.extend({\n type: z.literal('richtext'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().optional(),\n});\n\nconst blocksSchema = basePropertiesSchema.extend({\n type: z.literal('blocks'),\n required: requiredSchema,\n});\n\nconst jsonSchema = basePropertiesSchema.extend({\n type: z.literal('json'),\n required: requiredSchema,\n default: z\n .unknown()\n .optional()\n .refine((value) => {\n if (value === undefined) {\n return true;\n }\n\n if (isNumber(value) || value === null || isObject(value) || Array.isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch {\n return false;\n }\n }),\n});\n\nconst enumerationSchema = basePropertiesSchema.extend({\n type: z.literal('enumeration'),\n required: requiredSchema,\n default: z.string().optional(),\n enumName: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || NAME_REGEX.test(value as string);\n }, 'Invalid enum name'),\n enum: z\n .array(\n z.string().refine((value) => {\n return value === '' || !strings.startsWithANumber(value as string);\n })\n )\n .min(1)\n .refine((values) => {\n const filtered = [...new Set(values)];\n return filtered.length === values.length;\n }),\n});\n\nconst textSchema = basePropertiesSchema.extend({\n type: z.literal('text'),\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n required: requiredSchema,\n unique: uniqueSchema,\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst stringSchema = textSchema.extend({\n type: z.literal('string'),\n});\n\nconst passwordSchema = basePropertiesSchema.extend({\n type: z.literal('password'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n});\n\nconst emailSchema = basePropertiesSchema.extend({\n type: z.literal('email'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().email().optional(),\n unique: uniqueSchema,\n});\n\nconst integerSchema = basePropertiesSchema.extend({\n type: z.literal('integer'),\n required: requiredSchema,\n default: z.number().int().optional(),\n unique: uniqueSchema,\n min: z.number().int().optional(),\n max: z.number().int().optional(),\n});\n\nconst bigIntegerSchema = basePropertiesSchema.extend({\n type: z.literal('biginteger'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().regex(/^\\d*$/).nullish(),\n min: z.string().regex(/^\\d*$/).nullish(),\n max: z.string().regex(/^\\d*$/).nullish(),\n});\n\nconst floatSchema = basePropertiesSchema.extend({\n type: z.literal('float'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst decimalSchema = basePropertiesSchema.extend({\n type: z.literal('decimal'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst timeSchema = basePropertiesSchema.extend({\n type: z.literal('time'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().optional(),\n});\n\nconst dateSchema = timeSchema.extend({\n type: z.literal('date'),\n});\n\nconst dateTimeSchema = timeSchema.extend({\n type: z.literal('datetime'),\n});\n\nconst timeStampSchema = basePropertiesSchema.extend({\n type: z.literal('timestamp'),\n});\n\nconst booleanSchema = basePropertiesSchema.extend({\n type: z.literal('boolean'),\n required: requiredSchema,\n default: z.boolean().optional(),\n});\n\nconst componentSchema = basePropertiesSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean().optional(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneSchema = basePropertiesSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string()).nonempty(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst mediaSchema = basePropertiesSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean().optional(),\n required: requiredSchema,\n allowedTypes: z\n .array(z.enum(['images', 'videos', 'files', 'audios']))\n .nonempty()\n .optional(),\n});\n\nconst uidSchema = basePropertiesSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().nullish(),\n required: requiredSchema,\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n options: z\n .object({\n separator: z.string().optional(),\n lowercase: z.boolean().optional(),\n decamelize: z.boolean().optional(),\n customReplacements: z.array(z.array(z.string()).length(2)).optional(),\n preserveLeadingUnderscore: z.boolean().optional(),\n })\n .optional(),\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst customFieldSchema = basePropertiesSchema.extend({\n type: z.literal('customField'),\n customField: z.string(),\n});\n\nconst attributePropertiesSchema = (meta: SchemaMeta) => {\n const relationSchema = createRelationSchema(meta);\n\n const base = z.union([\n mediaSchema,\n textSchema,\n stringSchema,\n richTextSchema,\n blocksSchema,\n jsonSchema,\n enumerationSchema,\n passwordSchema,\n emailSchema,\n integerSchema,\n bigIntegerSchema,\n floatSchema,\n decimalSchema,\n timeSchema,\n dateSchema,\n dateTimeSchema,\n timeStampSchema,\n booleanSchema,\n componentSchema,\n customFieldSchema.passthrough(),\n\n relationSchema,\n ]);\n\n if (meta.modelType === 'component') {\n return base\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n }\n\n return z\n .union([...base.options, uidSchema, dynamicZoneSchema])\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(uidRefinement)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n};\n\nconst createAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('create'),\n name: z\n .string()\n .regex(NAME_REGEX)\n .refine((value) => !isReservedAttributeName(value), 'Attribute name is reserved'),\n properties: attributePropertiesSchema(meta),\n });\n\nconst updateAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('update'),\n name: z.string(),\n properties: attributePropertiesSchema(meta),\n });\n\n// Ordered list of attribute rename hops performed by the user for a given\n// content-type / component, used to generate a data-preserving rename migration.\n// The order is significant: the migration replays each hop verbatim.\n// Names end up in generated migration code, so they are held to the attribute\n// name rules. The new name is held to the same reserved-name rules as a newly\n// created attribute. The old name only has to be a name an attribute can\n// legally carry today: `status` is reserved only while draft and publish is\n// enabled, and renaming it away is exactly how a type gets to enable it.\nconst renameHopNameSchema = z.string().min(1).max(64).regex(NAME_REGEX);\n\nconst renameHopOldNameSchema = renameHopNameSchema.refine(\n (value) => !contentTypes.isReservedAttributeName(value, { draftAndPublish: false }),\n 'Attribute name is reserved'\n);\n\nconst renameHopNewNameSchema = renameHopNameSchema.refine(\n (value) => !isReservedAttributeName(value),\n 'Attribute name is reserved'\n);\n\nconst renamesSchema = z\n .array(\n z\n .object({\n oldName: renameHopOldNameSchema,\n newName: renameHopNewNameSchema,\n })\n .refine((hop) => hop.oldName !== hop.newName, 'A rename must change the attribute name')\n )\n .max(200)\n .optional();\n\nconst deleteAttributeSchema = z.object({\n action: z.literal('delete'),\n name: z.string(),\n});\n\nconst contentTypeUIDSchema = z.custom<UID.ContentType>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst componentUIDSchema = z.custom<UID.Component>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst categorySchema = z.string().min(1).regex(CATEGORY_NAME_REGEX);\n\nconst baseComponentSchema = z.object({\n uid: componentUIDSchema,\n displayName: z.string().min(1),\n icon: z.string().regex(ICON_REGEX).optional(),\n description: z.string().optional(),\n category: categorySchema,\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createComponentSchema = baseComponentSchema.extend({\n action: z.literal('create'),\n config: z.record(z.string(), z.unknown()).optional().default({}),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'component',\n })\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst updateComponentSchema = baseComponentSchema.extend({\n action: z.literal('update'),\n category: categorySchema.optional(),\n renames: renamesSchema,\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'component',\n }),\n updateAttributeSchema({\n modelType: 'component',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst deleteComponentSchema = z.object({\n action: z.literal('delete'),\n uid: componentUIDSchema,\n});\n\nconst baseContentTypeSchema = z.object({\n uid: contentTypeUIDSchema,\n displayName: z.string().min(1),\n description: z.string().optional(),\n draftAndPublish: z.boolean(),\n options: z.record(z.string(), z.unknown()).optional().default({}),\n pluginOptions: z.record(z.string(), z.unknown()).optional().default({}),\n kind: z.enum([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]).optional(),\n});\n\nconst baseCreateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('create'),\n plugin: z.string().min(1).optional(),\n collectionName: z.string().regex(COLLECTION_NAME_REGEX).optional(),\n singularName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n pluralName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n config: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createSingleTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst createCollectionTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst baseUpdateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('update'),\n renames: renamesSchema,\n});\n\nconst updateSingleTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE).optional(),\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst updateCollectionTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE).optional(),\n attributes: z\n .array(\n z.union([\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst deleteContentTypeSchema = z.object({\n action: z.literal('delete'),\n uid: contentTypeUIDSchema,\n});\n\nconst schemaSchema = z.object({\n components: z\n .array(z.union([createComponentSchema, updateComponentSchema, deleteComponentSchema]))\n .optional()\n .default([]),\n contentTypes: z\n .array(\n z\n .union([\n createSingleTypeSchema,\n createCollectionTypeSchema,\n updateSingleTypeSchema,\n updateCollectionTypeSchema,\n deleteContentTypeSchema,\n ])\n .superRefine(verifySingularAndPluralNames)\n .superRefine(verifyDraftAndPublishReservedAttributes)\n )\n .optional()\n .default([]),\n contentStructure: contentStructureFileSchema.optional(),\n});\n\ntype CreateComponentType = z.infer<typeof createComponentSchema>;\ntype UpdateComponentType = z.infer<typeof updateComponentSchema>;\ntype DeleteComponentType = z.infer<typeof deleteComponentSchema>;\ntype CreateCollectionType = z.infer<typeof createCollectionTypeSchema>;\ntype CreateSingleType = z.infer<typeof createSingleTypeSchema>;\ntype UpdateSingleType = z.infer<typeof updateSingleTypeSchema>;\ntype UpdateCollectionType = z.infer<typeof updateCollectionTypeSchema>;\ntype DeleteContentType = z.infer<typeof deleteContentTypeSchema>;\n\nexport type Schema = {\n components: Array<CreateComponentType | UpdateComponentType | DeleteComponentType>;\n contentTypes: Array<\n | CreateSingleType\n | CreateCollectionType\n | UpdateSingleType\n | UpdateCollectionType\n | DeleteContentType\n >;\n contentStructure?: ContentStructureFileInput;\n};\n\nconst updateSchemaInput = z.object(\n {\n data: schemaSchema,\n },\n {\n error: (issue) =>\n issue.input === undefined\n ? 'Schema is required'\n : 'Invalid schema, expected an object with a data property',\n }\n);\n\nexport const validateUpdateSchema = validateZodSchema(updateSchemaInput);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","VALID_UID_TARGETS","some","validUIdTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","getEffectiveAttributeNames","contentType","filter","uid","existingAttributes","strapi","contentTypes","Object","entries","isConfigurable","add","verifyDraftAndPublishReservedAttributes","draftAndPublish","reservedAttributeNames","findDraftAndPublishReservedAttributeNames","getDraftAndPublishEnableBlockedMessage","maxLengthGreaterThanMinLength","value","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","target","undefined","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","v","conditionSchema","z","object","visible","record","string","array","any","basePropertiesSchema","configurable","boolean","nullish","private","searchable","optional","pluginOptions","unknown","conditions","preprocess","val","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","required","oneToOneSchema","extend","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","blocksSchema","jsonSchema","refine","isObject","Array","isArray","JSON","parse","enumerationSchema","enumName","NAME_REGEX","test","strings","startsWithANumber","values","filtered","textSchema","unique","regex","RegExp","stringSchema","passwordSchema","emailSchema","email","integerSchema","bigIntegerSchema","floatSchema","decimalSchema","timeSchema","dateSchema","dateTimeSchema","timeStampSchema","booleanSchema","componentSchema","component","repeatable","dynamicZoneSchema","components","nonempty","mediaSchema","multiple","allowedTypes","uidSchema","options","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","customFieldSchema","customField","attributePropertiesSchema","relationSchema","base","union","passthrough","superRefine","createAttributeSchema","isReservedAttributeName","updateAttributeSchema","renameHopNameSchema","renameHopOldNameSchema","renameHopNewNameSchema","renamesSchema","oldName","newName","hop","deleteAttributeSchema","contentTypeUIDSchema","custom","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","renames","deleteComponentSchema","baseContentTypeSchema","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","plugin","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentStructure","contentStructureFileSchema","updateSchemaInput","data","error","issue","input","validateUpdateSchema","validateZodSchema"],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import * as z from 'zod/v4';\nimport { strings, validateZodSchema, contentTypes } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isNumber, isObject, snakeCase } from 'lodash';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds } from '../../services/constants';\nimport { isConfigurable } from '../../utils/attributes';\nimport { isValidUidTarget } from '../../utils/uid-target';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\nimport { contentStructureFileSchema, type ContentStructureFileInput } from './content-structure';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\ntype SuperRefinement<T> = (value: T, ctx: z.RefinementCtx) => void | Promise<void>;\n\nconst uniqueAttributeName: SuperRefinement<{ name: string }[]> = (attributes, ctx) => {\n const names = new Set(attributes.map((attribute) => snakeCase(attribute.name)));\n if (names.size !== attributes.length) {\n ctx.addIssue({\n code: 'custom',\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: SuperRefinement<\n {\n action: 'create' | 'update' | 'delete';\n name: string;\n properties?: {\n type: unknown;\n customField?: unknown;\n targetField?: string | null;\n };\n }[]\n> = (attributes, ctx) => {\n attributes.forEach((attribute) => {\n if (!attribute.properties) {\n return;\n }\n\n const { properties, action } = attribute;\n\n if (properties.type === 'uid' && properties.targetField) {\n const targetAttr = attributes.find(\n (attr) => attr.action !== 'delete' && attr.name === properties.targetField\n );\n\n if (!targetAttr) {\n // NOTE: on update we are setting it to undefined later in the process instead to handle renames\n if (action === 'create') {\n ctx.addIssue({\n code: 'custom',\n message: 'Target does not exist',\n });\n }\n } else if (!targetAttr.properties || !isValidUidTarget(targetAttr.properties)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: SuperRefinement<Record<string, unknown>> = (obj, ctx) => {\n // singular and plural can only be provided on creation\n if (obj.action !== 'create') {\n return;\n }\n\n if (obj.singularName === obj.pluralName) {\n ctx.addIssue({\n code: 'custom',\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\ntype ContentTypeSchemaAction = {\n action: 'create' | 'update' | 'delete';\n draftAndPublish?: boolean;\n uid?: UID.ContentType;\n renames?: Array<{ oldName: string; newName: string }>;\n attributes?: Array<{ action: 'create' | 'update' | 'delete'; name: string }>;\n};\n\n// The payload carries the full attribute list and the saved schema is built from\n// it, so the names that will be written are the payload attributes that are not\n// deleted. The rename hops do not decide what is saved. The one exception is\n// non-configurable attributes: the builder keeps them from the current schema\n// whatever the payload says, so they are always part of the saved schema.\nconst getEffectiveAttributeNames = (contentType: ContentTypeSchemaAction): string[] => {\n const names = new Set(\n (contentType.attributes ?? [])\n .filter((attribute) => attribute.action !== 'delete')\n .map((attribute) => attribute.name)\n );\n\n if (contentType.action === 'update' && contentType.uid) {\n const existingAttributes = strapi.contentTypes[contentType.uid]?.attributes ?? {};\n\n for (const [name, attribute] of Object.entries(existingAttributes)) {\n if (!isConfigurable(attribute)) {\n names.add(name);\n }\n }\n }\n\n return [...names];\n};\n\nexport const verifyDraftAndPublishReservedAttributes: SuperRefinement<ContentTypeSchemaAction> = (\n contentType,\n ctx\n) => {\n if (contentType.action === 'delete' || !contentType.draftAndPublish) {\n return;\n }\n\n const reservedAttributeNames = contentTypes.findDraftAndPublishReservedAttributeNames(\n getEffectiveAttributeNames(contentType)\n );\n\n if (reservedAttributeNames.length > 0) {\n ctx.addIssue({\n code: 'custom',\n message: contentTypes.getDraftAndPublishEnableBlockedMessage(reservedAttributeNames),\n path: ['draftAndPublish'],\n });\n }\n};\n\nexport const maxLengthGreaterThanMinLength: SuperRefinement<Record<string, unknown>> = (\n value,\n ctx\n) => {\n if (\n value.maxLength != null &&\n value.minLength != null &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength < value.minLength) {\n ctx.addIssue({\n code: 'custom',\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nexport const maxGreaterThanMin: SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (value.max != null && value.min != null && isNumber(value.max) && isNumber(value.min)) {\n if (value.max < value.min) {\n ctx.addIssue({\n code: 'custom',\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: SuperRefinement<{\n type: string;\n target?: string;\n relation?: string;\n targetAttribute?: string | null;\n}> = (value, ctx) => {\n if (value.type !== 'relation') {\n return;\n }\n\n if (value.target === undefined || value.relation === undefined) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || targetAttribute !== undefined)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['relation'],\n message: `Relations to ${coreUids.STRAPI_USER} must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')} without targetAttribute`,\n });\n }\n};\n\nconst uidRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (value.targetField != null && value.default != null) {\n ctx.addIssue({\n code: 'custom',\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && value.default != null && value.enum != null) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\n};\n\nconst conditionSchema = z.object({\n visible: z.record(z.string(), z.array(z.any())),\n});\n\nconst basePropertiesSchema = z.object({\n type: z.enum([\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'time',\n 'datetime',\n 'date',\n 'timestamp',\n 'boolean',\n 'component',\n 'uid',\n 'customField',\n 'media',\n 'relation',\n 'dynamiczone',\n ]),\n configurable: z.boolean().nullish(),\n private: z.boolean().nullish(),\n // Keep null invalid so searchability is always an explicit boolean when provided.\n searchable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst maxLengthSchema = z.number().int().positive().optional();\nconst minLengthSchema = z.number().int().positive().optional();\n\nconst requiredSchema = z.boolean().optional();\nconst uniqueSchema = z.boolean().optional();\n\nconst STRAPI_USER_RELATIONS = ['oneToOne', 'oneToMany'];\n\nconst baseRelationSchema = z.object({\n type: z.literal('relation'),\n relation: z.enum([\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ]),\n configurable: z.boolean().nullish(),\n required: requiredSchema,\n private: z.boolean().nullish(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst oneToOneSchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst oneWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n});\n\nconst oneToManySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n});\n\nconst manyToOneSchema = baseRelationSchema.extend({\n relation: z.literal('manyToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyToManySchema = baseRelationSchema.extend({\n relation: z.literal('manyToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphManySchema = baseRelationSchema.extend({\n relation: z.literal('morphMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphToOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphToOne'),\n});\n\nconst morphToManySchema = baseRelationSchema.extend({\n relation: z.literal('morphToMany'),\n});\n\nconst createRelationSchema = (meta: SchemaMeta) => {\n switch (meta.modelType) {\n case 'contentType': {\n switch (meta.kind) {\n case 'singleType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n\n case 'collectionType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n manyToOneSchema,\n manyToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n default:\n throw new Error('Invalid content type kind');\n }\n }\n\n case 'component': {\n return z.discriminatedUnion('relation', [oneWaySchema, manyWaySchema]);\n }\n default:\n throw new Error('Invalid model type');\n }\n};\n\nconst richTextSchema = basePropertiesSchema.extend({\n type: z.literal('richtext'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().optional(),\n});\n\nconst blocksSchema = basePropertiesSchema.extend({\n type: z.literal('blocks'),\n required: requiredSchema,\n});\n\nconst jsonSchema = basePropertiesSchema.extend({\n type: z.literal('json'),\n required: requiredSchema,\n default: z\n .unknown()\n .optional()\n .refine((value) => {\n if (value === undefined) {\n return true;\n }\n\n if (isNumber(value) || value === null || isObject(value) || Array.isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch {\n return false;\n }\n }),\n});\n\nconst enumerationSchema = basePropertiesSchema.extend({\n type: z.literal('enumeration'),\n required: requiredSchema,\n default: z.string().optional(),\n enumName: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || NAME_REGEX.test(value as string);\n }, 'Invalid enum name'),\n enum: z\n .array(\n z.string().refine((value) => {\n return value === '' || !strings.startsWithANumber(value as string);\n })\n )\n .min(1)\n .refine((values) => {\n const filtered = [...new Set(values)];\n return filtered.length === values.length;\n }),\n});\n\nconst textSchema = basePropertiesSchema.extend({\n type: z.literal('text'),\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n required: requiredSchema,\n unique: uniqueSchema,\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst stringSchema = textSchema.extend({\n type: z.literal('string'),\n});\n\nconst passwordSchema = basePropertiesSchema.extend({\n type: z.literal('password'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n});\n\nconst emailSchema = basePropertiesSchema.extend({\n type: z.literal('email'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().email().optional(),\n unique: uniqueSchema,\n});\n\nconst integerSchema = basePropertiesSchema.extend({\n type: z.literal('integer'),\n required: requiredSchema,\n default: z.number().int().optional(),\n unique: uniqueSchema,\n min: z.number().int().optional(),\n max: z.number().int().optional(),\n});\n\nconst bigIntegerSchema = basePropertiesSchema.extend({\n type: z.literal('biginteger'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().regex(/^\\d*$/).nullish(),\n min: z.string().regex(/^\\d*$/).nullish(),\n max: z.string().regex(/^\\d*$/).nullish(),\n});\n\nconst floatSchema = basePropertiesSchema.extend({\n type: z.literal('float'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst decimalSchema = basePropertiesSchema.extend({\n type: z.literal('decimal'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst timeSchema = basePropertiesSchema.extend({\n type: z.literal('time'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().optional(),\n});\n\nconst dateSchema = timeSchema.extend({\n type: z.literal('date'),\n});\n\nconst dateTimeSchema = timeSchema.extend({\n type: z.literal('datetime'),\n});\n\nconst timeStampSchema = basePropertiesSchema.extend({\n type: z.literal('timestamp'),\n});\n\nconst booleanSchema = basePropertiesSchema.extend({\n type: z.literal('boolean'),\n required: requiredSchema,\n default: z.boolean().optional(),\n});\n\nconst componentSchema = basePropertiesSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean().optional(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneSchema = basePropertiesSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string()).nonempty(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst mediaSchema = basePropertiesSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean().optional(),\n required: requiredSchema,\n allowedTypes: z\n .array(z.enum(['images', 'videos', 'files', 'audios']))\n .nonempty()\n .optional(),\n});\n\nconst uidSchema = basePropertiesSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().nullish(),\n required: requiredSchema,\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n options: z\n .object({\n separator: z.string().optional(),\n lowercase: z.boolean().optional(),\n decamelize: z.boolean().optional(),\n customReplacements: z.array(z.array(z.string()).length(2)).optional(),\n preserveLeadingUnderscore: z.boolean().optional(),\n })\n .optional(),\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst customFieldSchema = basePropertiesSchema.extend({\n type: z.literal('customField'),\n customField: z.string(),\n});\n\nconst attributePropertiesSchema = (meta: SchemaMeta) => {\n const relationSchema = createRelationSchema(meta);\n\n const base = z.union([\n mediaSchema,\n textSchema,\n stringSchema,\n richTextSchema,\n blocksSchema,\n jsonSchema,\n enumerationSchema,\n passwordSchema,\n emailSchema,\n integerSchema,\n bigIntegerSchema,\n floatSchema,\n decimalSchema,\n timeSchema,\n dateSchema,\n dateTimeSchema,\n timeStampSchema,\n booleanSchema,\n componentSchema,\n customFieldSchema.passthrough(),\n\n relationSchema,\n ]);\n\n if (meta.modelType === 'component') {\n return base\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n }\n\n return z\n .union([...base.options, uidSchema, dynamicZoneSchema])\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(uidRefinement)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n};\n\nconst createAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('create'),\n name: z\n .string()\n .regex(NAME_REGEX)\n .refine((value) => !isReservedAttributeName(value), 'Attribute name is reserved'),\n properties: attributePropertiesSchema(meta),\n });\n\nconst updateAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('update'),\n name: z.string(),\n properties: attributePropertiesSchema(meta),\n });\n\n// Ordered list of attribute rename hops performed by the user for a given\n// content-type / component, used to generate a data-preserving rename migration.\n// The order is significant: the migration replays each hop verbatim.\n// Names end up in generated migration code, so they are held to the attribute\n// name rules. The new name is held to the same reserved-name rules as a newly\n// created attribute. The old name only has to be a name an attribute can\n// legally carry today: `status` is reserved only while draft and publish is\n// enabled, and renaming it away is exactly how a type gets to enable it.\nconst renameHopNameSchema = z.string().min(1).max(64).regex(NAME_REGEX);\n\nconst renameHopOldNameSchema = renameHopNameSchema.refine(\n (value) => !contentTypes.isReservedAttributeName(value, { draftAndPublish: false }),\n 'Attribute name is reserved'\n);\n\nconst renameHopNewNameSchema = renameHopNameSchema.refine(\n (value) => !isReservedAttributeName(value),\n 'Attribute name is reserved'\n);\n\nconst renamesSchema = z\n .array(\n z\n .object({\n oldName: renameHopOldNameSchema,\n newName: renameHopNewNameSchema,\n })\n .refine((hop) => hop.oldName !== hop.newName, 'A rename must change the attribute name')\n )\n .max(200)\n .optional();\n\nconst deleteAttributeSchema = z.object({\n action: z.literal('delete'),\n name: z.string(),\n});\n\nconst contentTypeUIDSchema = z.custom<UID.ContentType>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst componentUIDSchema = z.custom<UID.Component>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst categorySchema = z.string().min(1).regex(CATEGORY_NAME_REGEX);\n\nconst baseComponentSchema = z.object({\n uid: componentUIDSchema,\n displayName: z.string().min(1),\n icon: z.string().regex(ICON_REGEX).optional(),\n description: z.string().optional(),\n category: categorySchema,\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createComponentSchema = baseComponentSchema.extend({\n action: z.literal('create'),\n config: z.record(z.string(), z.unknown()).optional().default({}),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'component',\n })\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst updateComponentSchema = baseComponentSchema.extend({\n action: z.literal('update'),\n category: categorySchema.optional(),\n renames: renamesSchema,\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'component',\n }),\n updateAttributeSchema({\n modelType: 'component',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst deleteComponentSchema = z.object({\n action: z.literal('delete'),\n uid: componentUIDSchema,\n});\n\nconst baseContentTypeSchema = z.object({\n uid: contentTypeUIDSchema,\n displayName: z.string().min(1),\n description: z.string().optional(),\n draftAndPublish: z.boolean(),\n options: z.record(z.string(), z.unknown()).optional().default({}),\n pluginOptions: z.record(z.string(), z.unknown()).optional().default({}),\n kind: z.enum([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]).optional(),\n});\n\nconst baseCreateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('create'),\n plugin: z.string().min(1).optional(),\n collectionName: z.string().regex(COLLECTION_NAME_REGEX).optional(),\n singularName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n pluralName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n config: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createSingleTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst createCollectionTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst baseUpdateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('update'),\n renames: renamesSchema,\n});\n\nconst updateSingleTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE).optional(),\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst updateCollectionTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE).optional(),\n attributes: z\n .array(\n z.union([\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst deleteContentTypeSchema = z.object({\n action: z.literal('delete'),\n uid: contentTypeUIDSchema,\n});\n\nconst schemaSchema = z.object({\n components: z\n .array(z.union([createComponentSchema, updateComponentSchema, deleteComponentSchema]))\n .optional()\n .default([]),\n contentTypes: z\n .array(\n z\n .union([\n createSingleTypeSchema,\n createCollectionTypeSchema,\n updateSingleTypeSchema,\n updateCollectionTypeSchema,\n deleteContentTypeSchema,\n ])\n .superRefine(verifySingularAndPluralNames)\n .superRefine(verifyDraftAndPublishReservedAttributes)\n )\n .optional()\n .default([]),\n contentStructure: contentStructureFileSchema.optional(),\n});\n\ntype CreateComponentType = z.infer<typeof createComponentSchema>;\ntype UpdateComponentType = z.infer<typeof updateComponentSchema>;\ntype DeleteComponentType = z.infer<typeof deleteComponentSchema>;\ntype CreateCollectionType = z.infer<typeof createCollectionTypeSchema>;\ntype CreateSingleType = z.infer<typeof createSingleTypeSchema>;\ntype UpdateSingleType = z.infer<typeof updateSingleTypeSchema>;\ntype UpdateCollectionType = z.infer<typeof updateCollectionTypeSchema>;\ntype DeleteContentType = z.infer<typeof deleteContentTypeSchema>;\n\nexport type Schema = {\n components: Array<CreateComponentType | UpdateComponentType | DeleteComponentType>;\n contentTypes: Array<\n | CreateSingleType\n | CreateCollectionType\n | UpdateSingleType\n | UpdateCollectionType\n | DeleteContentType\n >;\n contentStructure?: ContentStructureFileInput;\n};\n\nconst updateSchemaInput = z.object(\n {\n data: schemaSchema,\n },\n {\n error: (issue) =>\n issue.input === undefined\n ? 'Schema is required'\n : 'Invalid schema, expected an object with a data property',\n }\n);\n\nexport const validateUpdateSchema = validateZodSchema(updateSchemaInput);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","isValidUidTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","getEffectiveAttributeNames","contentType","filter","uid","existingAttributes","strapi","contentTypes","Object","entries","isConfigurable","add","verifyDraftAndPublishReservedAttributes","draftAndPublish","reservedAttributeNames","findDraftAndPublishReservedAttributeNames","getDraftAndPublishEnableBlockedMessage","maxLengthGreaterThanMinLength","value","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","target","undefined","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","some","v","conditionSchema","z","object","visible","record","string","array","any","basePropertiesSchema","configurable","boolean","nullish","private","searchable","optional","pluginOptions","unknown","conditions","preprocess","val","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","required","oneToOneSchema","extend","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","blocksSchema","jsonSchema","refine","isObject","Array","isArray","JSON","parse","enumerationSchema","enumName","NAME_REGEX","test","strings","startsWithANumber","values","filtered","textSchema","unique","regex","RegExp","stringSchema","passwordSchema","emailSchema","email","integerSchema","bigIntegerSchema","floatSchema","decimalSchema","timeSchema","dateSchema","dateTimeSchema","timeStampSchema","booleanSchema","componentSchema","component","repeatable","dynamicZoneSchema","components","nonempty","mediaSchema","multiple","allowedTypes","uidSchema","options","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","customFieldSchema","customField","attributePropertiesSchema","relationSchema","base","union","passthrough","superRefine","createAttributeSchema","isReservedAttributeName","updateAttributeSchema","renameHopNameSchema","renameHopOldNameSchema","renameHopNewNameSchema","renamesSchema","oldName","newName","hop","deleteAttributeSchema","contentTypeUIDSchema","custom","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","renames","deleteComponentSchema","baseContentTypeSchema","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","plugin","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentStructure","contentStructureFileSchema","updateSchemaInput","data","error","issue","input","validateUpdateSchema","validateZodSchema"],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as z from 'zod/v4';
2
2
  import { strings, contentTypes, validateZodSchema } from '@strapi/utils';
3
3
  import { isNumber, isObject, snakeCase } from 'lodash';
4
4
  import { isReservedAttributeName, isReservedModelName } from '../../services/builder.mjs';
5
- import { typeKinds, VALID_UID_TARGETS, coreUids } from '../../services/constants.mjs';
5
+ import { typeKinds, coreUids } from '../../services/constants.mjs';
6
6
  import { isConfigurable } from '../../utils/attributes.mjs';
7
+ import { isValidUidTarget } from '../../utils/uid-target.mjs';
7
8
  import { NAME_REGEX, CATEGORY_NAME_REGEX, ICON_REGEX, KEBAB_BASE_REGEX, COLLECTION_NAME_REGEX } from './common.mjs';
8
9
  import { contentStructureFileSchema } from './content-structure.mjs';
9
10
 
@@ -23,7 +24,7 @@ const verifyUidTargetField = (attributes, ctx)=>{
23
24
  }
24
25
  const { properties, action } = attribute;
25
26
  if (properties.type === 'uid' && properties.targetField) {
26
- const targetAttr = attributes.find((attr)=>attr.name === properties.targetField);
27
+ const targetAttr = attributes.find((attr)=>attr.action !== 'delete' && attr.name === properties.targetField);
27
28
  if (!targetAttr) {
28
29
  // NOTE: on update we are setting it to undefined later in the process instead to handle renames
29
30
  if (action === 'create') {
@@ -32,7 +33,7 @@ const verifyUidTargetField = (attributes, ctx)=>{
32
33
  message: 'Target does not exist'
33
34
  });
34
35
  }
35
- } else if (!VALID_UID_TARGETS.some((validUIdTarget)=>validUIdTarget === targetAttr.properties?.type)) {
36
+ } else if (!targetAttr.properties || !isValidUidTarget(targetAttr.properties)) {
36
37
  ctx.addIssue({
37
38
  code: 'custom',
38
39
  message: 'Invalid target type'
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import * as z from 'zod/v4';\nimport { strings, validateZodSchema, contentTypes } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isNumber, isObject, snakeCase } from 'lodash';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds, VALID_UID_TARGETS } from '../../services/constants';\nimport { isConfigurable } from '../../utils/attributes';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\nimport { contentStructureFileSchema, type ContentStructureFileInput } from './content-structure';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\ntype SuperRefinement<T> = (value: T, ctx: z.RefinementCtx) => void | Promise<void>;\n\nconst uniqueAttributeName: SuperRefinement<{ name: string }[]> = (attributes, ctx) => {\n const names = new Set(attributes.map((attribute) => snakeCase(attribute.name)));\n if (names.size !== attributes.length) {\n ctx.addIssue({\n code: 'custom',\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: SuperRefinement<\n {\n action: 'create' | 'update' | 'delete';\n name: string;\n properties?: {\n type: unknown;\n targetField?: string | null;\n };\n }[]\n> = (attributes, ctx) => {\n attributes.forEach((attribute) => {\n if (!attribute.properties) {\n return;\n }\n\n const { properties, action } = attribute;\n\n if (properties.type === 'uid' && properties.targetField) {\n const targetAttr = attributes.find((attr) => attr.name === properties.targetField);\n\n if (!targetAttr) {\n // NOTE: on update we are setting it to undefined later in the process instead to handle renames\n if (action === 'create') {\n ctx.addIssue({\n code: 'custom',\n message: 'Target does not exist',\n });\n }\n } else if (\n !VALID_UID_TARGETS.some((validUIdTarget) => validUIdTarget === targetAttr.properties?.type)\n ) {\n ctx.addIssue({\n code: 'custom',\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: SuperRefinement<Record<string, unknown>> = (obj, ctx) => {\n // singular and plural can only be provided on creation\n if (obj.action !== 'create') {\n return;\n }\n\n if (obj.singularName === obj.pluralName) {\n ctx.addIssue({\n code: 'custom',\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\ntype ContentTypeSchemaAction = {\n action: 'create' | 'update' | 'delete';\n draftAndPublish?: boolean;\n uid?: UID.ContentType;\n renames?: Array<{ oldName: string; newName: string }>;\n attributes?: Array<{ action: 'create' | 'update' | 'delete'; name: string }>;\n};\n\n// The payload carries the full attribute list and the saved schema is built from\n// it, so the names that will be written are the payload attributes that are not\n// deleted. The rename hops do not decide what is saved. The one exception is\n// non-configurable attributes: the builder keeps them from the current schema\n// whatever the payload says, so they are always part of the saved schema.\nconst getEffectiveAttributeNames = (contentType: ContentTypeSchemaAction): string[] => {\n const names = new Set(\n (contentType.attributes ?? [])\n .filter((attribute) => attribute.action !== 'delete')\n .map((attribute) => attribute.name)\n );\n\n if (contentType.action === 'update' && contentType.uid) {\n const existingAttributes = strapi.contentTypes[contentType.uid]?.attributes ?? {};\n\n for (const [name, attribute] of Object.entries(existingAttributes)) {\n if (!isConfigurable(attribute)) {\n names.add(name);\n }\n }\n }\n\n return [...names];\n};\n\nexport const verifyDraftAndPublishReservedAttributes: SuperRefinement<ContentTypeSchemaAction> = (\n contentType,\n ctx\n) => {\n if (contentType.action === 'delete' || !contentType.draftAndPublish) {\n return;\n }\n\n const reservedAttributeNames = contentTypes.findDraftAndPublishReservedAttributeNames(\n getEffectiveAttributeNames(contentType)\n );\n\n if (reservedAttributeNames.length > 0) {\n ctx.addIssue({\n code: 'custom',\n message: contentTypes.getDraftAndPublishEnableBlockedMessage(reservedAttributeNames),\n path: ['draftAndPublish'],\n });\n }\n};\n\nexport const maxLengthGreaterThanMinLength: SuperRefinement<Record<string, unknown>> = (\n value,\n ctx\n) => {\n if (\n value.maxLength != null &&\n value.minLength != null &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength < value.minLength) {\n ctx.addIssue({\n code: 'custom',\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nexport const maxGreaterThanMin: SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (value.max != null && value.min != null && isNumber(value.max) && isNumber(value.min)) {\n if (value.max < value.min) {\n ctx.addIssue({\n code: 'custom',\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: SuperRefinement<{\n type: string;\n target?: string;\n relation?: string;\n targetAttribute?: string | null;\n}> = (value, ctx) => {\n if (value.type !== 'relation') {\n return;\n }\n\n if (value.target === undefined || value.relation === undefined) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || targetAttribute !== undefined)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['relation'],\n message: `Relations to ${coreUids.STRAPI_USER} must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')} without targetAttribute`,\n });\n }\n};\n\nconst uidRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (value.targetField != null && value.default != null) {\n ctx.addIssue({\n code: 'custom',\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && value.default != null && value.enum != null) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\n};\n\nconst conditionSchema = z.object({\n visible: z.record(z.string(), z.array(z.any())),\n});\n\nconst basePropertiesSchema = z.object({\n type: z.enum([\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'time',\n 'datetime',\n 'date',\n 'timestamp',\n 'boolean',\n 'component',\n 'uid',\n 'customField',\n 'media',\n 'relation',\n 'dynamiczone',\n ]),\n configurable: z.boolean().nullish(),\n private: z.boolean().nullish(),\n // Keep null invalid so searchability is always an explicit boolean when provided.\n searchable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst maxLengthSchema = z.number().int().positive().optional();\nconst minLengthSchema = z.number().int().positive().optional();\n\nconst requiredSchema = z.boolean().optional();\nconst uniqueSchema = z.boolean().optional();\n\nconst STRAPI_USER_RELATIONS = ['oneToOne', 'oneToMany'];\n\nconst baseRelationSchema = z.object({\n type: z.literal('relation'),\n relation: z.enum([\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ]),\n configurable: z.boolean().nullish(),\n required: requiredSchema,\n private: z.boolean().nullish(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst oneToOneSchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst oneWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n});\n\nconst oneToManySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n});\n\nconst manyToOneSchema = baseRelationSchema.extend({\n relation: z.literal('manyToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyToManySchema = baseRelationSchema.extend({\n relation: z.literal('manyToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphManySchema = baseRelationSchema.extend({\n relation: z.literal('morphMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphToOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphToOne'),\n});\n\nconst morphToManySchema = baseRelationSchema.extend({\n relation: z.literal('morphToMany'),\n});\n\nconst createRelationSchema = (meta: SchemaMeta) => {\n switch (meta.modelType) {\n case 'contentType': {\n switch (meta.kind) {\n case 'singleType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n\n case 'collectionType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n manyToOneSchema,\n manyToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n default:\n throw new Error('Invalid content type kind');\n }\n }\n\n case 'component': {\n return z.discriminatedUnion('relation', [oneWaySchema, manyWaySchema]);\n }\n default:\n throw new Error('Invalid model type');\n }\n};\n\nconst richTextSchema = basePropertiesSchema.extend({\n type: z.literal('richtext'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().optional(),\n});\n\nconst blocksSchema = basePropertiesSchema.extend({\n type: z.literal('blocks'),\n required: requiredSchema,\n});\n\nconst jsonSchema = basePropertiesSchema.extend({\n type: z.literal('json'),\n required: requiredSchema,\n default: z\n .unknown()\n .optional()\n .refine((value) => {\n if (value === undefined) {\n return true;\n }\n\n if (isNumber(value) || value === null || isObject(value) || Array.isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch {\n return false;\n }\n }),\n});\n\nconst enumerationSchema = basePropertiesSchema.extend({\n type: z.literal('enumeration'),\n required: requiredSchema,\n default: z.string().optional(),\n enumName: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || NAME_REGEX.test(value as string);\n }, 'Invalid enum name'),\n enum: z\n .array(\n z.string().refine((value) => {\n return value === '' || !strings.startsWithANumber(value as string);\n })\n )\n .min(1)\n .refine((values) => {\n const filtered = [...new Set(values)];\n return filtered.length === values.length;\n }),\n});\n\nconst textSchema = basePropertiesSchema.extend({\n type: z.literal('text'),\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n required: requiredSchema,\n unique: uniqueSchema,\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst stringSchema = textSchema.extend({\n type: z.literal('string'),\n});\n\nconst passwordSchema = basePropertiesSchema.extend({\n type: z.literal('password'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n});\n\nconst emailSchema = basePropertiesSchema.extend({\n type: z.literal('email'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().email().optional(),\n unique: uniqueSchema,\n});\n\nconst integerSchema = basePropertiesSchema.extend({\n type: z.literal('integer'),\n required: requiredSchema,\n default: z.number().int().optional(),\n unique: uniqueSchema,\n min: z.number().int().optional(),\n max: z.number().int().optional(),\n});\n\nconst bigIntegerSchema = basePropertiesSchema.extend({\n type: z.literal('biginteger'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().regex(/^\\d*$/).nullish(),\n min: z.string().regex(/^\\d*$/).nullish(),\n max: z.string().regex(/^\\d*$/).nullish(),\n});\n\nconst floatSchema = basePropertiesSchema.extend({\n type: z.literal('float'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst decimalSchema = basePropertiesSchema.extend({\n type: z.literal('decimal'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst timeSchema = basePropertiesSchema.extend({\n type: z.literal('time'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().optional(),\n});\n\nconst dateSchema = timeSchema.extend({\n type: z.literal('date'),\n});\n\nconst dateTimeSchema = timeSchema.extend({\n type: z.literal('datetime'),\n});\n\nconst timeStampSchema = basePropertiesSchema.extend({\n type: z.literal('timestamp'),\n});\n\nconst booleanSchema = basePropertiesSchema.extend({\n type: z.literal('boolean'),\n required: requiredSchema,\n default: z.boolean().optional(),\n});\n\nconst componentSchema = basePropertiesSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean().optional(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneSchema = basePropertiesSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string()).nonempty(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst mediaSchema = basePropertiesSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean().optional(),\n required: requiredSchema,\n allowedTypes: z\n .array(z.enum(['images', 'videos', 'files', 'audios']))\n .nonempty()\n .optional(),\n});\n\nconst uidSchema = basePropertiesSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().nullish(),\n required: requiredSchema,\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n options: z\n .object({\n separator: z.string().optional(),\n lowercase: z.boolean().optional(),\n decamelize: z.boolean().optional(),\n customReplacements: z.array(z.array(z.string()).length(2)).optional(),\n preserveLeadingUnderscore: z.boolean().optional(),\n })\n .optional(),\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst customFieldSchema = basePropertiesSchema.extend({\n type: z.literal('customField'),\n customField: z.string(),\n});\n\nconst attributePropertiesSchema = (meta: SchemaMeta) => {\n const relationSchema = createRelationSchema(meta);\n\n const base = z.union([\n mediaSchema,\n textSchema,\n stringSchema,\n richTextSchema,\n blocksSchema,\n jsonSchema,\n enumerationSchema,\n passwordSchema,\n emailSchema,\n integerSchema,\n bigIntegerSchema,\n floatSchema,\n decimalSchema,\n timeSchema,\n dateSchema,\n dateTimeSchema,\n timeStampSchema,\n booleanSchema,\n componentSchema,\n customFieldSchema.passthrough(),\n\n relationSchema,\n ]);\n\n if (meta.modelType === 'component') {\n return base\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n }\n\n return z\n .union([...base.options, uidSchema, dynamicZoneSchema])\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(uidRefinement)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n};\n\nconst createAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('create'),\n name: z\n .string()\n .regex(NAME_REGEX)\n .refine((value) => !isReservedAttributeName(value), 'Attribute name is reserved'),\n properties: attributePropertiesSchema(meta),\n });\n\nconst updateAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('update'),\n name: z.string(),\n properties: attributePropertiesSchema(meta),\n });\n\n// Ordered list of attribute rename hops performed by the user for a given\n// content-type / component, used to generate a data-preserving rename migration.\n// The order is significant: the migration replays each hop verbatim.\n// Names end up in generated migration code, so they are held to the attribute\n// name rules. The new name is held to the same reserved-name rules as a newly\n// created attribute. The old name only has to be a name an attribute can\n// legally carry today: `status` is reserved only while draft and publish is\n// enabled, and renaming it away is exactly how a type gets to enable it.\nconst renameHopNameSchema = z.string().min(1).max(64).regex(NAME_REGEX);\n\nconst renameHopOldNameSchema = renameHopNameSchema.refine(\n (value) => !contentTypes.isReservedAttributeName(value, { draftAndPublish: false }),\n 'Attribute name is reserved'\n);\n\nconst renameHopNewNameSchema = renameHopNameSchema.refine(\n (value) => !isReservedAttributeName(value),\n 'Attribute name is reserved'\n);\n\nconst renamesSchema = z\n .array(\n z\n .object({\n oldName: renameHopOldNameSchema,\n newName: renameHopNewNameSchema,\n })\n .refine((hop) => hop.oldName !== hop.newName, 'A rename must change the attribute name')\n )\n .max(200)\n .optional();\n\nconst deleteAttributeSchema = z.object({\n action: z.literal('delete'),\n name: z.string(),\n});\n\nconst contentTypeUIDSchema = z.custom<UID.ContentType>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst componentUIDSchema = z.custom<UID.Component>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst categorySchema = z.string().min(1).regex(CATEGORY_NAME_REGEX);\n\nconst baseComponentSchema = z.object({\n uid: componentUIDSchema,\n displayName: z.string().min(1),\n icon: z.string().regex(ICON_REGEX).optional(),\n description: z.string().optional(),\n category: categorySchema,\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createComponentSchema = baseComponentSchema.extend({\n action: z.literal('create'),\n config: z.record(z.string(), z.unknown()).optional().default({}),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'component',\n })\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst updateComponentSchema = baseComponentSchema.extend({\n action: z.literal('update'),\n category: categorySchema.optional(),\n renames: renamesSchema,\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'component',\n }),\n updateAttributeSchema({\n modelType: 'component',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst deleteComponentSchema = z.object({\n action: z.literal('delete'),\n uid: componentUIDSchema,\n});\n\nconst baseContentTypeSchema = z.object({\n uid: contentTypeUIDSchema,\n displayName: z.string().min(1),\n description: z.string().optional(),\n draftAndPublish: z.boolean(),\n options: z.record(z.string(), z.unknown()).optional().default({}),\n pluginOptions: z.record(z.string(), z.unknown()).optional().default({}),\n kind: z.enum([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]).optional(),\n});\n\nconst baseCreateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('create'),\n plugin: z.string().min(1).optional(),\n collectionName: z.string().regex(COLLECTION_NAME_REGEX).optional(),\n singularName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n pluralName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n config: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createSingleTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst createCollectionTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst baseUpdateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('update'),\n renames: renamesSchema,\n});\n\nconst updateSingleTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE).optional(),\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst updateCollectionTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE).optional(),\n attributes: z\n .array(\n z.union([\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst deleteContentTypeSchema = z.object({\n action: z.literal('delete'),\n uid: contentTypeUIDSchema,\n});\n\nconst schemaSchema = z.object({\n components: z\n .array(z.union([createComponentSchema, updateComponentSchema, deleteComponentSchema]))\n .optional()\n .default([]),\n contentTypes: z\n .array(\n z\n .union([\n createSingleTypeSchema,\n createCollectionTypeSchema,\n updateSingleTypeSchema,\n updateCollectionTypeSchema,\n deleteContentTypeSchema,\n ])\n .superRefine(verifySingularAndPluralNames)\n .superRefine(verifyDraftAndPublishReservedAttributes)\n )\n .optional()\n .default([]),\n contentStructure: contentStructureFileSchema.optional(),\n});\n\ntype CreateComponentType = z.infer<typeof createComponentSchema>;\ntype UpdateComponentType = z.infer<typeof updateComponentSchema>;\ntype DeleteComponentType = z.infer<typeof deleteComponentSchema>;\ntype CreateCollectionType = z.infer<typeof createCollectionTypeSchema>;\ntype CreateSingleType = z.infer<typeof createSingleTypeSchema>;\ntype UpdateSingleType = z.infer<typeof updateSingleTypeSchema>;\ntype UpdateCollectionType = z.infer<typeof updateCollectionTypeSchema>;\ntype DeleteContentType = z.infer<typeof deleteContentTypeSchema>;\n\nexport type Schema = {\n components: Array<CreateComponentType | UpdateComponentType | DeleteComponentType>;\n contentTypes: Array<\n | CreateSingleType\n | CreateCollectionType\n | UpdateSingleType\n | UpdateCollectionType\n | DeleteContentType\n >;\n contentStructure?: ContentStructureFileInput;\n};\n\nconst updateSchemaInput = z.object(\n {\n data: schemaSchema,\n },\n {\n error: (issue) =>\n issue.input === undefined\n ? 'Schema is required'\n : 'Invalid schema, expected an object with a data property',\n }\n);\n\nexport const validateUpdateSchema = validateZodSchema(updateSchemaInput);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","VALID_UID_TARGETS","some","validUIdTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","getEffectiveAttributeNames","contentType","filter","uid","existingAttributes","strapi","contentTypes","Object","entries","isConfigurable","add","verifyDraftAndPublishReservedAttributes","draftAndPublish","reservedAttributeNames","findDraftAndPublishReservedAttributeNames","getDraftAndPublishEnableBlockedMessage","maxLengthGreaterThanMinLength","value","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","target","undefined","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","v","conditionSchema","z","object","visible","record","string","array","any","basePropertiesSchema","configurable","boolean","nullish","private","searchable","optional","pluginOptions","unknown","conditions","preprocess","val","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","required","oneToOneSchema","extend","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","blocksSchema","jsonSchema","refine","isObject","Array","isArray","JSON","parse","enumerationSchema","enumName","NAME_REGEX","test","strings","startsWithANumber","values","filtered","textSchema","unique","regex","RegExp","stringSchema","passwordSchema","emailSchema","email","integerSchema","bigIntegerSchema","floatSchema","decimalSchema","timeSchema","dateSchema","dateTimeSchema","timeStampSchema","booleanSchema","componentSchema","component","repeatable","dynamicZoneSchema","components","nonempty","mediaSchema","multiple","allowedTypes","uidSchema","options","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","customFieldSchema","customField","attributePropertiesSchema","relationSchema","base","union","passthrough","superRefine","createAttributeSchema","isReservedAttributeName","updateAttributeSchema","renameHopNameSchema","renameHopOldNameSchema","renameHopNewNameSchema","renamesSchema","oldName","newName","hop","deleteAttributeSchema","contentTypeUIDSchema","custom","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","renames","deleteComponentSchema","baseContentTypeSchema","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","plugin","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentStructure","contentStructureFileSchema","updateSchemaInput","data","error","issue","input","validateUpdateSchema","validateZodSchema"],"mappings":"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"}
1
+ {"version":3,"file":"schema.mjs","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import * as z from 'zod/v4';\nimport { strings, validateZodSchema, contentTypes } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isNumber, isObject, snakeCase } from 'lodash';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds } from '../../services/constants';\nimport { isConfigurable } from '../../utils/attributes';\nimport { isValidUidTarget } from '../../utils/uid-target';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\nimport { contentStructureFileSchema, type ContentStructureFileInput } from './content-structure';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\ntype SuperRefinement<T> = (value: T, ctx: z.RefinementCtx) => void | Promise<void>;\n\nconst uniqueAttributeName: SuperRefinement<{ name: string }[]> = (attributes, ctx) => {\n const names = new Set(attributes.map((attribute) => snakeCase(attribute.name)));\n if (names.size !== attributes.length) {\n ctx.addIssue({\n code: 'custom',\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: SuperRefinement<\n {\n action: 'create' | 'update' | 'delete';\n name: string;\n properties?: {\n type: unknown;\n customField?: unknown;\n targetField?: string | null;\n };\n }[]\n> = (attributes, ctx) => {\n attributes.forEach((attribute) => {\n if (!attribute.properties) {\n return;\n }\n\n const { properties, action } = attribute;\n\n if (properties.type === 'uid' && properties.targetField) {\n const targetAttr = attributes.find(\n (attr) => attr.action !== 'delete' && attr.name === properties.targetField\n );\n\n if (!targetAttr) {\n // NOTE: on update we are setting it to undefined later in the process instead to handle renames\n if (action === 'create') {\n ctx.addIssue({\n code: 'custom',\n message: 'Target does not exist',\n });\n }\n } else if (!targetAttr.properties || !isValidUidTarget(targetAttr.properties)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: SuperRefinement<Record<string, unknown>> = (obj, ctx) => {\n // singular and plural can only be provided on creation\n if (obj.action !== 'create') {\n return;\n }\n\n if (obj.singularName === obj.pluralName) {\n ctx.addIssue({\n code: 'custom',\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\ntype ContentTypeSchemaAction = {\n action: 'create' | 'update' | 'delete';\n draftAndPublish?: boolean;\n uid?: UID.ContentType;\n renames?: Array<{ oldName: string; newName: string }>;\n attributes?: Array<{ action: 'create' | 'update' | 'delete'; name: string }>;\n};\n\n// The payload carries the full attribute list and the saved schema is built from\n// it, so the names that will be written are the payload attributes that are not\n// deleted. The rename hops do not decide what is saved. The one exception is\n// non-configurable attributes: the builder keeps them from the current schema\n// whatever the payload says, so they are always part of the saved schema.\nconst getEffectiveAttributeNames = (contentType: ContentTypeSchemaAction): string[] => {\n const names = new Set(\n (contentType.attributes ?? [])\n .filter((attribute) => attribute.action !== 'delete')\n .map((attribute) => attribute.name)\n );\n\n if (contentType.action === 'update' && contentType.uid) {\n const existingAttributes = strapi.contentTypes[contentType.uid]?.attributes ?? {};\n\n for (const [name, attribute] of Object.entries(existingAttributes)) {\n if (!isConfigurable(attribute)) {\n names.add(name);\n }\n }\n }\n\n return [...names];\n};\n\nexport const verifyDraftAndPublishReservedAttributes: SuperRefinement<ContentTypeSchemaAction> = (\n contentType,\n ctx\n) => {\n if (contentType.action === 'delete' || !contentType.draftAndPublish) {\n return;\n }\n\n const reservedAttributeNames = contentTypes.findDraftAndPublishReservedAttributeNames(\n getEffectiveAttributeNames(contentType)\n );\n\n if (reservedAttributeNames.length > 0) {\n ctx.addIssue({\n code: 'custom',\n message: contentTypes.getDraftAndPublishEnableBlockedMessage(reservedAttributeNames),\n path: ['draftAndPublish'],\n });\n }\n};\n\nexport const maxLengthGreaterThanMinLength: SuperRefinement<Record<string, unknown>> = (\n value,\n ctx\n) => {\n if (\n value.maxLength != null &&\n value.minLength != null &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength < value.minLength) {\n ctx.addIssue({\n code: 'custom',\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nexport const maxGreaterThanMin: SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (value.max != null && value.min != null && isNumber(value.max) && isNumber(value.min)) {\n if (value.max < value.min) {\n ctx.addIssue({\n code: 'custom',\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: SuperRefinement<{\n type: string;\n target?: string;\n relation?: string;\n targetAttribute?: string | null;\n}> = (value, ctx) => {\n if (value.type !== 'relation') {\n return;\n }\n\n if (value.target === undefined || value.relation === undefined) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || targetAttribute !== undefined)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['relation'],\n message: `Relations to ${coreUids.STRAPI_USER} must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')} without targetAttribute`,\n });\n }\n};\n\nconst uidRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (value.targetField != null && value.default != null) {\n ctx.addIssue({\n code: 'custom',\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && value.default != null && value.enum != null) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: 'custom',\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\n};\n\nconst conditionSchema = z.object({\n visible: z.record(z.string(), z.array(z.any())),\n});\n\nconst basePropertiesSchema = z.object({\n type: z.enum([\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'time',\n 'datetime',\n 'date',\n 'timestamp',\n 'boolean',\n 'component',\n 'uid',\n 'customField',\n 'media',\n 'relation',\n 'dynamiczone',\n ]),\n configurable: z.boolean().nullish(),\n private: z.boolean().nullish(),\n // Keep null invalid so searchability is always an explicit boolean when provided.\n searchable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst maxLengthSchema = z.number().int().positive().optional();\nconst minLengthSchema = z.number().int().positive().optional();\n\nconst requiredSchema = z.boolean().optional();\nconst uniqueSchema = z.boolean().optional();\n\nconst STRAPI_USER_RELATIONS = ['oneToOne', 'oneToMany'];\n\nconst baseRelationSchema = z.object({\n type: z.literal('relation'),\n relation: z.enum([\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ]),\n configurable: z.boolean().nullish(),\n required: requiredSchema,\n private: z.boolean().nullish(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n conditions: z.preprocess((val) => {\n return val;\n }, conditionSchema.optional()),\n});\n\nconst oneToOneSchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst oneWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToOne'),\n target: z.string(),\n});\n\nconst oneToManySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyWaySchema = baseRelationSchema.extend({\n relation: z.literal('oneToMany'),\n target: z.string(),\n});\n\nconst manyToOneSchema = baseRelationSchema.extend({\n relation: z.literal('manyToOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst manyToManySchema = baseRelationSchema.extend({\n relation: z.literal('manyToMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphOne'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphManySchema = baseRelationSchema.extend({\n relation: z.literal('morphMany'),\n target: z.string(),\n targetAttribute: z.string().nullish(),\n});\n\nconst morphToOneSchema = baseRelationSchema.extend({\n relation: z.literal('morphToOne'),\n});\n\nconst morphToManySchema = baseRelationSchema.extend({\n relation: z.literal('morphToMany'),\n});\n\nconst createRelationSchema = (meta: SchemaMeta) => {\n switch (meta.modelType) {\n case 'contentType': {\n switch (meta.kind) {\n case 'singleType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n\n case 'collectionType':\n return z.discriminatedUnion('relation', [\n oneToOneSchema,\n oneToManySchema,\n manyToOneSchema,\n manyToManySchema,\n morphOneSchema,\n morphManySchema,\n morphToOneSchema,\n morphToManySchema,\n ]);\n default:\n throw new Error('Invalid content type kind');\n }\n }\n\n case 'component': {\n return z.discriminatedUnion('relation', [oneWaySchema, manyWaySchema]);\n }\n default:\n throw new Error('Invalid model type');\n }\n};\n\nconst richTextSchema = basePropertiesSchema.extend({\n type: z.literal('richtext'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().optional(),\n});\n\nconst blocksSchema = basePropertiesSchema.extend({\n type: z.literal('blocks'),\n required: requiredSchema,\n});\n\nconst jsonSchema = basePropertiesSchema.extend({\n type: z.literal('json'),\n required: requiredSchema,\n default: z\n .unknown()\n .optional()\n .refine((value) => {\n if (value === undefined) {\n return true;\n }\n\n if (isNumber(value) || value === null || isObject(value) || Array.isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch {\n return false;\n }\n }),\n});\n\nconst enumerationSchema = basePropertiesSchema.extend({\n type: z.literal('enumeration'),\n required: requiredSchema,\n default: z.string().optional(),\n enumName: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || NAME_REGEX.test(value as string);\n }, 'Invalid enum name'),\n enum: z\n .array(\n z.string().refine((value) => {\n return value === '' || !strings.startsWithANumber(value as string);\n })\n )\n .min(1)\n .refine((values) => {\n const filtered = [...new Set(values)];\n return filtered.length === values.length;\n }),\n});\n\nconst textSchema = basePropertiesSchema.extend({\n type: z.literal('text'),\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n required: requiredSchema,\n unique: uniqueSchema,\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst stringSchema = textSchema.extend({\n type: z.literal('string'),\n});\n\nconst passwordSchema = basePropertiesSchema.extend({\n type: z.literal('password'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n});\n\nconst emailSchema = basePropertiesSchema.extend({\n type: z.literal('email'),\n required: requiredSchema,\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n default: z.string().email().optional(),\n unique: uniqueSchema,\n});\n\nconst integerSchema = basePropertiesSchema.extend({\n type: z.literal('integer'),\n required: requiredSchema,\n default: z.number().int().optional(),\n unique: uniqueSchema,\n min: z.number().int().optional(),\n max: z.number().int().optional(),\n});\n\nconst bigIntegerSchema = basePropertiesSchema.extend({\n type: z.literal('biginteger'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().regex(/^\\d*$/).nullish(),\n min: z.string().regex(/^\\d*$/).nullish(),\n max: z.string().regex(/^\\d*$/).nullish(),\n});\n\nconst floatSchema = basePropertiesSchema.extend({\n type: z.literal('float'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst decimalSchema = basePropertiesSchema.extend({\n type: z.literal('decimal'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.number().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst timeSchema = basePropertiesSchema.extend({\n type: z.literal('time'),\n required: requiredSchema,\n unique: uniqueSchema,\n default: z.string().optional(),\n});\n\nconst dateSchema = timeSchema.extend({\n type: z.literal('date'),\n});\n\nconst dateTimeSchema = timeSchema.extend({\n type: z.literal('datetime'),\n});\n\nconst timeStampSchema = basePropertiesSchema.extend({\n type: z.literal('timestamp'),\n});\n\nconst booleanSchema = basePropertiesSchema.extend({\n type: z.literal('boolean'),\n required: requiredSchema,\n default: z.boolean().optional(),\n});\n\nconst componentSchema = basePropertiesSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean().optional(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneSchema = basePropertiesSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string()).nonempty(),\n required: requiredSchema,\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst mediaSchema = basePropertiesSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean().optional(),\n required: requiredSchema,\n allowedTypes: z\n .array(z.enum(['images', 'videos', 'files', 'audios']))\n .nonempty()\n .optional(),\n});\n\nconst uidSchema = basePropertiesSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().nullish(),\n required: requiredSchema,\n default: z.string().nullish(),\n minLength: minLengthSchema,\n maxLength: maxLengthSchema,\n options: z\n .object({\n separator: z.string().optional(),\n lowercase: z.boolean().optional(),\n decamelize: z.boolean().optional(),\n customReplacements: z.array(z.array(z.string()).length(2)).optional(),\n preserveLeadingUnderscore: z.boolean().optional(),\n })\n .optional(),\n regex: z\n .string()\n .optional()\n .refine((value) => {\n return value === '' || !!new RegExp(value as string);\n }, 'Invalid regular expression pattern'),\n});\n\nconst customFieldSchema = basePropertiesSchema.extend({\n type: z.literal('customField'),\n customField: z.string(),\n});\n\nconst attributePropertiesSchema = (meta: SchemaMeta) => {\n const relationSchema = createRelationSchema(meta);\n\n const base = z.union([\n mediaSchema,\n textSchema,\n stringSchema,\n richTextSchema,\n blocksSchema,\n jsonSchema,\n enumerationSchema,\n passwordSchema,\n emailSchema,\n integerSchema,\n bigIntegerSchema,\n floatSchema,\n decimalSchema,\n timeSchema,\n dateSchema,\n dateTimeSchema,\n timeStampSchema,\n booleanSchema,\n componentSchema,\n customFieldSchema.passthrough(),\n\n relationSchema,\n ]);\n\n if (meta.modelType === 'component') {\n return base\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n }\n\n return z\n .union([...base.options, uidSchema, dynamicZoneSchema])\n .superRefine(enumRefinement)\n .superRefine(checkUserTarget)\n .superRefine(uidRefinement)\n .superRefine(maxGreaterThanMin)\n .superRefine(maxLengthGreaterThanMinLength);\n};\n\nconst createAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('create'),\n name: z\n .string()\n .regex(NAME_REGEX)\n .refine((value) => !isReservedAttributeName(value), 'Attribute name is reserved'),\n properties: attributePropertiesSchema(meta),\n });\n\nconst updateAttributeSchema = (meta: SchemaMeta) =>\n z.object({\n action: z.literal('update'),\n name: z.string(),\n properties: attributePropertiesSchema(meta),\n });\n\n// Ordered list of attribute rename hops performed by the user for a given\n// content-type / component, used to generate a data-preserving rename migration.\n// The order is significant: the migration replays each hop verbatim.\n// Names end up in generated migration code, so they are held to the attribute\n// name rules. The new name is held to the same reserved-name rules as a newly\n// created attribute. The old name only has to be a name an attribute can\n// legally carry today: `status` is reserved only while draft and publish is\n// enabled, and renaming it away is exactly how a type gets to enable it.\nconst renameHopNameSchema = z.string().min(1).max(64).regex(NAME_REGEX);\n\nconst renameHopOldNameSchema = renameHopNameSchema.refine(\n (value) => !contentTypes.isReservedAttributeName(value, { draftAndPublish: false }),\n 'Attribute name is reserved'\n);\n\nconst renameHopNewNameSchema = renameHopNameSchema.refine(\n (value) => !isReservedAttributeName(value),\n 'Attribute name is reserved'\n);\n\nconst renamesSchema = z\n .array(\n z\n .object({\n oldName: renameHopOldNameSchema,\n newName: renameHopNewNameSchema,\n })\n .refine((hop) => hop.oldName !== hop.newName, 'A rename must change the attribute name')\n )\n .max(200)\n .optional();\n\nconst deleteAttributeSchema = z.object({\n action: z.literal('delete'),\n name: z.string(),\n});\n\nconst contentTypeUIDSchema = z.custom<UID.ContentType>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst componentUIDSchema = z.custom<UID.Component>((value) => {\n return typeof value === 'string' && value.length > 0;\n});\n\nconst categorySchema = z.string().min(1).regex(CATEGORY_NAME_REGEX);\n\nconst baseComponentSchema = z.object({\n uid: componentUIDSchema,\n displayName: z.string().min(1),\n icon: z.string().regex(ICON_REGEX).optional(),\n description: z.string().optional(),\n category: categorySchema,\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createComponentSchema = baseComponentSchema.extend({\n action: z.literal('create'),\n config: z.record(z.string(), z.unknown()).optional().default({}),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'component',\n })\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst updateComponentSchema = baseComponentSchema.extend({\n action: z.literal('update'),\n category: categorySchema.optional(),\n renames: renamesSchema,\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'component',\n }),\n updateAttributeSchema({\n modelType: 'component',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName),\n});\n\nconst deleteComponentSchema = z.object({\n action: z.literal('delete'),\n uid: componentUIDSchema,\n});\n\nconst baseContentTypeSchema = z.object({\n uid: contentTypeUIDSchema,\n displayName: z.string().min(1),\n description: z.string().optional(),\n draftAndPublish: z.boolean(),\n options: z.record(z.string(), z.unknown()).optional().default({}),\n pluginOptions: z.record(z.string(), z.unknown()).optional().default({}),\n kind: z.enum([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]).optional(),\n});\n\nconst baseCreateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('create'),\n plugin: z.string().min(1).optional(),\n collectionName: z.string().regex(COLLECTION_NAME_REGEX).optional(),\n singularName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n pluralName: z\n .string()\n .min(1)\n .regex(KEBAB_BASE_REGEX, 'Must be kebab case')\n .refine((value) => !isReservedModelName(value), 'Model name is reserved'),\n config: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst createSingleTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst createCollectionTypeSchema = baseCreateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE),\n attributes: z\n .array(\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n })\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst baseUpdateContentTypeSchema = baseContentTypeSchema.extend({\n action: z.literal('update'),\n renames: renamesSchema,\n});\n\nconst updateSingleTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.SINGLE_TYPE).optional(),\n attributes: z\n .array(\n z.discriminatedUnion('action', [\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'singleType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst updateCollectionTypeSchema = baseUpdateContentTypeSchema.extend({\n kind: z.literal(typeKinds.COLLECTION_TYPE).optional(),\n attributes: z\n .array(\n z.union([\n createAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n updateAttributeSchema({\n modelType: 'contentType',\n kind: 'collectionType',\n }),\n deleteAttributeSchema,\n ])\n )\n .superRefine(uniqueAttributeName)\n .superRefine(verifyUidTargetField),\n});\n\nconst deleteContentTypeSchema = z.object({\n action: z.literal('delete'),\n uid: contentTypeUIDSchema,\n});\n\nconst schemaSchema = z.object({\n components: z\n .array(z.union([createComponentSchema, updateComponentSchema, deleteComponentSchema]))\n .optional()\n .default([]),\n contentTypes: z\n .array(\n z\n .union([\n createSingleTypeSchema,\n createCollectionTypeSchema,\n updateSingleTypeSchema,\n updateCollectionTypeSchema,\n deleteContentTypeSchema,\n ])\n .superRefine(verifySingularAndPluralNames)\n .superRefine(verifyDraftAndPublishReservedAttributes)\n )\n .optional()\n .default([]),\n contentStructure: contentStructureFileSchema.optional(),\n});\n\ntype CreateComponentType = z.infer<typeof createComponentSchema>;\ntype UpdateComponentType = z.infer<typeof updateComponentSchema>;\ntype DeleteComponentType = z.infer<typeof deleteComponentSchema>;\ntype CreateCollectionType = z.infer<typeof createCollectionTypeSchema>;\ntype CreateSingleType = z.infer<typeof createSingleTypeSchema>;\ntype UpdateSingleType = z.infer<typeof updateSingleTypeSchema>;\ntype UpdateCollectionType = z.infer<typeof updateCollectionTypeSchema>;\ntype DeleteContentType = z.infer<typeof deleteContentTypeSchema>;\n\nexport type Schema = {\n components: Array<CreateComponentType | UpdateComponentType | DeleteComponentType>;\n contentTypes: Array<\n | CreateSingleType\n | CreateCollectionType\n | UpdateSingleType\n | UpdateCollectionType\n | DeleteContentType\n >;\n contentStructure?: ContentStructureFileInput;\n};\n\nconst updateSchemaInput = z.object(\n {\n data: schemaSchema,\n },\n {\n error: (issue) =>\n issue.input === undefined\n ? 'Schema is required'\n : 'Invalid schema, expected an object with a data property',\n }\n);\n\nexport const validateUpdateSchema = validateZodSchema(updateSchemaInput);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","isValidUidTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","getEffectiveAttributeNames","contentType","filter","uid","existingAttributes","strapi","contentTypes","Object","entries","isConfigurable","add","verifyDraftAndPublishReservedAttributes","draftAndPublish","reservedAttributeNames","findDraftAndPublishReservedAttributeNames","getDraftAndPublishEnableBlockedMessage","maxLengthGreaterThanMinLength","value","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","target","undefined","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","some","v","conditionSchema","z","object","visible","record","string","array","any","basePropertiesSchema","configurable","boolean","nullish","private","searchable","optional","pluginOptions","unknown","conditions","preprocess","val","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","required","oneToOneSchema","extend","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","blocksSchema","jsonSchema","refine","isObject","Array","isArray","JSON","parse","enumerationSchema","enumName","NAME_REGEX","test","strings","startsWithANumber","values","filtered","textSchema","unique","regex","RegExp","stringSchema","passwordSchema","emailSchema","email","integerSchema","bigIntegerSchema","floatSchema","decimalSchema","timeSchema","dateSchema","dateTimeSchema","timeStampSchema","booleanSchema","componentSchema","component","repeatable","dynamicZoneSchema","components","nonempty","mediaSchema","multiple","allowedTypes","uidSchema","options","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","customFieldSchema","customField","attributePropertiesSchema","relationSchema","base","union","passthrough","superRefine","createAttributeSchema","isReservedAttributeName","updateAttributeSchema","renameHopNameSchema","renameHopOldNameSchema","renameHopNewNameSchema","renamesSchema","oldName","newName","hop","deleteAttributeSchema","contentTypeUIDSchema","custom","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","renames","deleteComponentSchema","baseContentTypeSchema","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","plugin","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentStructure","contentStructureFileSchema","updateSchemaInput","data","error","issue","input","validateUpdateSchema","validateZodSchema"],"mappings":"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"}