@strapi/content-type-builder 5.15.1 → 5.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +12 -23
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +12 -23
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.js +2 -4
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +2 -4
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +10 -22
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +10 -22
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js +98 -16
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.mjs +98 -16
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js +15 -28
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +15 -28
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.js +18 -3
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs +18 -3
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js +7 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +7 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +287 -273
- package/dist/admin/translations/en.json.js +2 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +2 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +4 -0
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +4 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/server/controllers/validation/common.js +0 -6
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +1 -6
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js +4 -1
- package/dist/server/controllers/validation/schema.js.map +1 -1
- package/dist/server/controllers/validation/schema.mjs +4 -1
- package/dist/server/controllers/validation/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +9 -2
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +10 -3
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +192 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +6 -0
- package/dist/server/src/services/schema.d.ts.map +1 -1
- package/dist/server/src/utils/attributes.d.ts +1 -0
- package/dist/server/src/utils/attributes.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -25,11 +25,6 @@ const isValidIcon = {
|
|
|
25
25
|
message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
|
|
26
26
|
test: (val)=>val === '' || ICON_REGEX.test(val)
|
|
27
27
|
};
|
|
28
|
-
const isValidUID = {
|
|
29
|
-
name: 'isValidUID',
|
|
30
|
-
message: `\${path} must match the following regex: ${UID_REGEX}`,
|
|
31
|
-
test: (val)=>val === '' || UID_REGEX.test(val)
|
|
32
|
-
};
|
|
33
28
|
const isValidCategoryName = {
|
|
34
29
|
name: 'isValidCategoryName',
|
|
35
30
|
message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
|
|
@@ -99,6 +94,5 @@ exports.isValidIcon = isValidIcon;
|
|
|
99
94
|
exports.isValidKey = isValidKey;
|
|
100
95
|
exports.isValidName = isValidName;
|
|
101
96
|
exports.isValidRegExpPattern = isValidRegExpPattern;
|
|
102
|
-
exports.isValidUID = isValidUID;
|
|
103
97
|
exports.validators = validators;
|
|
104
98
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\nexport const KEBAB_BASE_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","KEBAB_BASE_REGEX","isValidName","name","message","test","val","isValidIcon","
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\nexport const KEBAB_BASE_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","KEBAB_BASE_REGEX","isValidName","name","message","test","val","isValidIcon","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":"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"}
|
|
@@ -23,11 +23,6 @@ const isValidIcon = {
|
|
|
23
23
|
message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
|
|
24
24
|
test: (val)=>val === '' || ICON_REGEX.test(val)
|
|
25
25
|
};
|
|
26
|
-
const isValidUID = {
|
|
27
|
-
name: 'isValidUID',
|
|
28
|
-
message: `\${path} must match the following regex: ${UID_REGEX}`,
|
|
29
|
-
test: (val)=>val === '' || UID_REGEX.test(val)
|
|
30
|
-
};
|
|
31
26
|
const isValidCategoryName = {
|
|
32
27
|
name: 'isValidCategoryName',
|
|
33
28
|
message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
|
|
@@ -82,5 +77,5 @@ const isValidDefaultJSON = {
|
|
|
82
77
|
}
|
|
83
78
|
};
|
|
84
79
|
|
|
85
|
-
export { CATEGORY_NAME_REGEX, COLLECTION_NAME_REGEX, ICON_REGEX, KEBAB_BASE_REGEX, NAME_REGEX, UID_REGEX, areEnumValuesUnique, isValidCategoryName, isValidCollectionName, isValidDefaultJSON, isValidEnum, isValidIcon, isValidKey, isValidName, isValidRegExpPattern,
|
|
80
|
+
export { CATEGORY_NAME_REGEX, COLLECTION_NAME_REGEX, ICON_REGEX, KEBAB_BASE_REGEX, NAME_REGEX, UID_REGEX, areEnumValuesUnique, isValidCategoryName, isValidCollectionName, isValidDefaultJSON, isValidEnum, isValidIcon, isValidKey, isValidName, isValidRegExpPattern, validators };
|
|
86
81
|
//# sourceMappingURL=common.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.mjs","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\nexport const KEBAB_BASE_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","KEBAB_BASE_REGEX","isValidName","name","message","test","val","isValidIcon","
|
|
1
|
+
{"version":3,"file":"common.mjs","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\nexport const KEBAB_BASE_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","KEBAB_BASE_REGEX","isValidName","name","message","test","val","isValidIcon","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":"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"}
|
|
@@ -426,7 +426,10 @@ const uidSchema = basePropertiesSchema.extend({
|
|
|
426
426
|
decamelize: zod.z.boolean().optional(),
|
|
427
427
|
customReplacements: zod.z.array(zod.z.array(zod.z.string()).length(2)).optional(),
|
|
428
428
|
preserveLeadingUnderscore: zod.z.boolean().optional()
|
|
429
|
-
}).optional()
|
|
429
|
+
}).optional(),
|
|
430
|
+
regex: zod.z.string().optional().refine((value)=>{
|
|
431
|
+
return value === '' || !!new RegExp(value);
|
|
432
|
+
}, 'Invalid regular expression pattern')
|
|
430
433
|
});
|
|
431
434
|
const customFieldSchema = basePropertiesSchema.extend({
|
|
432
435
|
type: zod.z.literal('customField'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { strings, validateZod } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isArray, isNil, isNull, isNumber, isObject, isUndefined, snakeCase } from 'lodash/fp';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds, VALID_UID_TARGETS } from '../../services/constants';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\nconst uniqueAttributeName: z.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: z.ZodIssueCode.custom,\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: z.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: z.ZodIssueCode.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: z.ZodIssueCode.custom,\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: z.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: z.ZodIssueCode.custom,\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\nconst maxLengthGreaterThanMinLength: z.SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (\n !isNil(value.maxLength) &&\n !isNil(value.minLength) &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength <= value.minLength) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nconst maxGreaterThanMin: z.SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (!isNil(value.max) && !isNil(value.min) && isNumber(value.max) && isNumber(value.min)) {\n if (value.max <= value.min) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: z.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 (isUndefined(value.target) || isUndefined(value.relation)) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || !isUndefined(targetAttribute))\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.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: z.SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (!isNil(value.targetField) && !isNil(value.default)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: z.SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && !isNil(value.default) && !isNil(value.enum)) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\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 pluginOptions: z.record(z.unknown()).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 private: z.boolean().nullish(),\n pluginOptions: z.record(z.unknown()).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) || isNull(value) || isObject(value) || isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch (err) {\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});\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\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 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.unknown()).optional().default({}),\n pluginOptions: z.record(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 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});\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 )\n .optional()\n .default([]),\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};\n\nexport const validateUpdateSchema = validateZod(\n z.object(\n {\n data: schemaSchema,\n },\n {\n invalid_type_error: 'Invalid schema, expected an object with a data property',\n required_error: 'Schema is required',\n }\n )\n);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","z","ZodIssueCode","custom","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","VALID_UID_TARGETS","some","validUIdTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","maxLengthGreaterThanMinLength","value","isNil","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","isUndefined","target","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","v","basePropertiesSchema","object","configurable","boolean","nullish","private","pluginOptions","record","unknown","optional","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","oneToOneSchema","extend","string","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","required","blocksSchema","jsonSchema","refine","undefined","isNull","isObject","isArray","JSON","parse","err","enumerationSchema","enumName","NAME_REGEX","test","array","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","deleteAttributeSchema","contentTypeUIDSchema","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","uid","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","deleteComponentSchema","baseContentTypeSchema","draftAndPublish","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentTypes","validateUpdateSchema","validateZod","data","invalid_type_error","required_error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { strings, validateZod } from '@strapi/utils';\nimport type { Struct, UID } from '@strapi/types';\nimport { isArray, isNil, isNull, isNumber, isObject, isUndefined, snakeCase } from 'lodash/fp';\n\nimport { isReservedAttributeName, isReservedModelName } from '../../services/builder';\nimport { coreUids, typeKinds, VALID_UID_TARGETS } from '../../services/constants';\n\nimport {\n CATEGORY_NAME_REGEX,\n ICON_REGEX,\n COLLECTION_NAME_REGEX,\n KEBAB_BASE_REGEX,\n NAME_REGEX,\n} from './common';\n\ntype SchemaMeta =\n | {\n modelType: 'contentType';\n kind?: Struct.ContentTypeKind;\n }\n | {\n modelType: 'component';\n };\n\nconst uniqueAttributeName: z.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: z.ZodIssueCode.custom,\n message: 'Attributes must have unique names',\n });\n }\n};\n\nconst verifyUidTargetField: z.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: z.ZodIssueCode.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: z.ZodIssueCode.custom,\n message: 'Invalid target type',\n });\n }\n }\n });\n};\n\nconst verifySingularAndPluralNames: z.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: z.ZodIssueCode.custom,\n message: 'Singular and plural names must be different',\n path: ['singularName'],\n });\n }\n};\n\nconst maxLengthGreaterThanMinLength: z.SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (\n !isNil(value.maxLength) &&\n !isNil(value.minLength) &&\n isNumber(value.maxLength) &&\n isNumber(value.minLength)\n ) {\n if (value.maxLength <= value.minLength) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'maxLength must be greater or equal to minLength',\n path: ['maxLength'],\n });\n }\n }\n};\n\nconst maxGreaterThanMin: z.SuperRefinement<Record<string, unknown>> = (value, ctx) => {\n if (!isNil(value.max) && !isNil(value.min) && isNumber(value.max) && isNumber(value.min)) {\n if (value.max <= value.min) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'max must be greater or equal to min',\n path: ['max'],\n });\n }\n }\n};\n\nconst checkUserTarget: z.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 (isUndefined(value.target) || isUndefined(value.relation)) {\n return;\n }\n\n const { target, relation, targetAttribute } = value;\n\n if (\n target === coreUids.STRAPI_USER &&\n (!STRAPI_USER_RELATIONS.includes(relation) || !isUndefined(targetAttribute))\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.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: z.SuperRefinement<{\n type: string;\n default?: unknown;\n targetField?: string | null;\n}> = (value, ctx) => {\n if (!isNil(value.targetField) && !isNil(value.default)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Cannot define a default UID if the targetField is set',\n path: ['default'],\n });\n }\n};\n\nconst enumRefinement: z.SuperRefinement<{\n type: string;\n default?: unknown;\n enum?: string[];\n}> = (value, ctx) => {\n if (value.type === 'enumeration' && !isNil(value.default) && !isNil(value.enum)) {\n if (value.default === '' || !value.enum.some((v) => v === value.default)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Default value must be one of the enum values',\n path: ['default'],\n });\n }\n }\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 pluginOptions: z.record(z.unknown()).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 private: z.boolean().nullish(),\n pluginOptions: z.record(z.unknown()).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) || isNull(value) || isObject(value) || isArray(value)) {\n return true;\n }\n\n try {\n JSON.parse(value as string);\n\n return true;\n } catch (err) {\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\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 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.unknown()).optional().default({}),\n pluginOptions: z.record(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 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});\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 )\n .optional()\n .default([]),\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};\n\nexport const validateUpdateSchema = validateZod(\n z.object(\n {\n data: schemaSchema,\n },\n {\n invalid_type_error: 'Invalid schema, expected an object with a data property',\n required_error: 'Schema is required',\n }\n )\n);\n"],"names":["uniqueAttributeName","attributes","ctx","names","Set","map","attribute","snakeCase","name","size","length","addIssue","code","z","ZodIssueCode","custom","message","verifyUidTargetField","forEach","properties","action","type","targetField","targetAttr","find","attr","VALID_UID_TARGETS","some","validUIdTarget","verifySingularAndPluralNames","obj","singularName","pluralName","path","maxLengthGreaterThanMinLength","value","isNil","maxLength","minLength","isNumber","maxGreaterThanMin","max","min","checkUserTarget","isUndefined","target","relation","targetAttribute","coreUids","STRAPI_USER","STRAPI_USER_RELATIONS","includes","join","uidRefinement","default","enumRefinement","enum","v","basePropertiesSchema","object","configurable","boolean","nullish","private","pluginOptions","record","unknown","optional","maxLengthSchema","number","int","positive","minLengthSchema","requiredSchema","uniqueSchema","baseRelationSchema","literal","oneToOneSchema","extend","string","oneWaySchema","oneToManySchema","manyWaySchema","manyToOneSchema","manyToManySchema","morphOneSchema","morphManySchema","morphToOneSchema","morphToManySchema","createRelationSchema","meta","modelType","kind","discriminatedUnion","Error","richTextSchema","required","blocksSchema","jsonSchema","refine","undefined","isNull","isObject","isArray","JSON","parse","err","enumerationSchema","enumName","NAME_REGEX","test","array","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","deleteAttributeSchema","contentTypeUIDSchema","componentUIDSchema","categorySchema","CATEGORY_NAME_REGEX","baseComponentSchema","uid","displayName","icon","ICON_REGEX","description","category","createComponentSchema","config","updateComponentSchema","deleteComponentSchema","baseContentTypeSchema","draftAndPublish","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","baseCreateContentTypeSchema","collectionName","COLLECTION_NAME_REGEX","KEBAB_BASE_REGEX","isReservedModelName","createSingleTypeSchema","createCollectionTypeSchema","baseUpdateContentTypeSchema","updateSingleTypeSchema","updateCollectionTypeSchema","deleteContentTypeSchema","schemaSchema","contentTypes","validateUpdateSchema","validateZod","data","invalid_type_error","required_error"],"mappings":";;;;;;;;;AAyBA,MAAMA,mBAAAA,GAA6D,CAACC,UAAYC,EAAAA,GAAAA,GAAAA;IAC9E,MAAMC,KAAAA,GAAQ,IAAIC,GAAAA,CAAIH,UAAWI,CAAAA,GAAG,CAAC,CAACC,SAAAA,GAAcC,YAAUD,CAAAA,SAAAA,CAAUE,IAAI,CAAA,CAAA,CAAA;AAC5E,IAAA,IAAIL,KAAMM,CAAAA,IAAI,KAAKR,UAAAA,CAAWS,MAAM,EAAE;AACpCR,QAAAA,GAAAA,CAAIS,QAAQ,CAAC;YACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;YAC3BC,OAAS,EAAA;AACX,SAAA,CAAA;AACF;AACF,CAAA;AAEA,MAAMC,oBAAAA,GASF,CAAChB,UAAYC,EAAAA,GAAAA,GAAAA;IACfD,UAAWiB,CAAAA,OAAO,CAAC,CAACZ,SAAAA,GAAAA;QAClB,IAAI,CAACA,SAAUa,CAAAA,UAAU,EAAE;AACzB,YAAA;AACF;AAEA,QAAA,MAAM,EAAEA,UAAU,EAAEC,MAAM,EAAE,GAAGd,SAAAA;AAE/B,QAAA,IAAIa,WAAWE,IAAI,KAAK,KAASF,IAAAA,UAAAA,CAAWG,WAAW,EAAE;YACvD,MAAMC,UAAAA,GAAatB,UAAWuB,CAAAA,IAAI,CAAC,CAACC,OAASA,IAAKjB,CAAAA,IAAI,KAAKW,UAAAA,CAAWG,WAAW,CAAA;AAEjF,YAAA,IAAI,CAACC,UAAY,EAAA;;AAEf,gBAAA,IAAIH,WAAW,QAAU,EAAA;AACvBlB,oBAAAA,GAAAA,CAAIS,QAAQ,CAAC;wBACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;wBAC3BC,OAAS,EAAA;AACX,qBAAA,CAAA;AACF;aACK,MAAA,IACL,CAACU,2BAAAA,CAAkBC,IAAI,CAAC,CAACC,cAAAA,GAAmBA,cAAmBL,KAAAA,UAAAA,CAAWJ,UAAU,EAAEE,IACtF,CAAA,EAAA;AACAnB,gBAAAA,GAAAA,CAAIS,QAAQ,CAAC;oBACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;oBAC3BC,OAAS,EAAA;AACX,iBAAA,CAAA;AACF;AACF;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMa,4BAAAA,GAA2E,CAACC,GAAK5B,EAAAA,GAAAA,GAAAA;;IAErF,IAAI4B,GAAAA,CAAIV,MAAM,KAAK,QAAU,EAAA;AAC3B,QAAA;AACF;AAEA,IAAA,IAAIU,GAAIC,CAAAA,YAAY,KAAKD,GAAAA,CAAIE,UAAU,EAAE;AACvC9B,QAAAA,GAAAA,CAAIS,QAAQ,CAAC;YACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;YAC3BC,OAAS,EAAA,6CAAA;YACTiB,IAAM,EAAA;AAAC,gBAAA;AAAe;AACxB,SAAA,CAAA;AACF;AACF,CAAA;AAEA,MAAMC,6BAAAA,GAA4E,CAACC,KAAOjC,EAAAA,GAAAA,GAAAA;AACxF,IAAA,IACE,CAACkC,QAAMD,CAAAA,KAAAA,CAAME,SAAS,CAAA,IACtB,CAACD,QAAMD,CAAAA,KAAAA,CAAMG,SAAS,CAAA,IACtBC,YAASJ,KAAME,CAAAA,SAAS,KACxBE,WAASJ,CAAAA,KAAAA,CAAMG,SAAS,CACxB,EAAA;AACA,QAAA,IAAIH,KAAME,CAAAA,SAAS,IAAIF,KAAAA,CAAMG,SAAS,EAAE;AACtCpC,YAAAA,GAAAA,CAAIS,QAAQ,CAAC;gBACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;gBAC3BC,OAAS,EAAA,iDAAA;gBACTiB,IAAM,EAAA;AAAC,oBAAA;AAAY;AACrB,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMO,iBAAAA,GAAgE,CAACL,KAAOjC,EAAAA,GAAAA,GAAAA;AAC5E,IAAA,IAAI,CAACkC,QAAMD,CAAAA,KAAAA,CAAMM,GAAG,CAAA,IAAK,CAACL,QAAMD,CAAAA,KAAAA,CAAMO,GAAG,CAAA,IAAKH,YAASJ,KAAMM,CAAAA,GAAG,KAAKF,WAASJ,CAAAA,KAAAA,CAAMO,GAAG,CAAG,EAAA;AACxF,QAAA,IAAIP,KAAMM,CAAAA,GAAG,IAAIN,KAAAA,CAAMO,GAAG,EAAE;AAC1BxC,YAAAA,GAAAA,CAAIS,QAAQ,CAAC;gBACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;gBAC3BC,OAAS,EAAA,qCAAA;gBACTiB,IAAM,EAAA;AAAC,oBAAA;AAAM;AACf,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMU,eAAAA,GAKD,CAACR,KAAOjC,EAAAA,GAAAA,GAAAA;IACX,IAAIiC,KAAAA,CAAMd,IAAI,KAAK,UAAY,EAAA;AAC7B,QAAA;AACF;AAEA,IAAA,IAAIuB,eAAYT,KAAMU,CAAAA,MAAM,KAAKD,cAAYT,CAAAA,KAAAA,CAAMW,QAAQ,CAAG,EAAA;AAC5D,QAAA;AACF;AAEA,IAAA,MAAM,EAAED,MAAM,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGZ,KAAAA;AAE9C,IAAA,IACEU,MAAWG,KAAAA,kBAAAA,CAASC,WAAW,KAC9B,CAACC,qBAAsBC,CAAAA,QAAQ,CAACL,QAAAA,CAAAA,IAAa,CAACF,cAAAA,CAAYG,gBAAe,CAC1E,EAAA;AACA7C,QAAAA,GAAAA,CAAIS,QAAQ,CAAC;YACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;YAC3BkB,IAAM,EAAA;AAAC,gBAAA;AAAW,aAAA;AAClBjB,YAAAA,OAAAA,EAAS,CAAC,aAAa,EAAEgC,kBAAAA,CAASC,WAAW,CAAC,sCAAsC,EAAEC,qBAAsBE,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAM,wBAAwB;AACjJ,SAAA,CAAA;AACF;AACF,CAAA;AAEA,MAAMC,aAAAA,GAID,CAAClB,KAAOjC,EAAAA,GAAAA,GAAAA;IACX,IAAI,CAACkC,SAAMD,KAAMb,CAAAA,WAAW,KAAK,CAACc,QAAAA,CAAMD,KAAMmB,CAAAA,OAAO,CAAG,EAAA;AACtDpD,QAAAA,GAAAA,CAAIS,QAAQ,CAAC;YACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;YAC3BC,OAAS,EAAA,uDAAA;YACTiB,IAAM,EAAA;AAAC,gBAAA;AAAU;AACnB,SAAA,CAAA;AACF;AACF,CAAA;AAEA,MAAMsB,cAAAA,GAID,CAACpB,KAAOjC,EAAAA,GAAAA,GAAAA;AACX,IAAA,IAAIiC,KAAMd,CAAAA,IAAI,KAAK,aAAA,IAAiB,CAACe,QAAAA,CAAMD,KAAMmB,CAAAA,OAAO,CAAK,IAAA,CAAClB,QAAMD,CAAAA,KAAAA,CAAMqB,IAAI,CAAG,EAAA;AAC/E,QAAA,IAAIrB,KAAMmB,CAAAA,OAAO,KAAK,EAAA,IAAM,CAACnB,KAAMqB,CAAAA,IAAI,CAAC7B,IAAI,CAAC,CAAC8B,CAAAA,GAAMA,CAAMtB,KAAAA,KAAAA,CAAMmB,OAAO,CAAG,EAAA;AACxEpD,YAAAA,GAAAA,CAAIS,QAAQ,CAAC;gBACXC,IAAMC,EAAAA,KAAAA,CAAEC,YAAY,CAACC,MAAM;gBAC3BC,OAAS,EAAA,8CAAA;gBACTiB,IAAM,EAAA;AAAC,oBAAA;AAAU;AACnB,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMyB,oBAAAA,GAAuB7C,KAAE8C,CAAAA,MAAM,CAAC;IACpCtC,IAAMR,EAAAA,KAAAA,CAAE2C,IAAI,CAAC;AACX,QAAA,QAAA;AACA,QAAA,MAAA;AACA,QAAA,UAAA;AACA,QAAA,QAAA;AACA,QAAA,MAAA;AACA,QAAA,aAAA;AACA,QAAA,UAAA;AACA,QAAA,OAAA;AACA,QAAA,SAAA;AACA,QAAA,YAAA;AACA,QAAA,OAAA;AACA,QAAA,SAAA;AACA,QAAA,MAAA;AACA,QAAA,UAAA;AACA,QAAA,MAAA;AACA,QAAA,WAAA;AACA,QAAA,SAAA;AACA,QAAA,WAAA;AACA,QAAA,KAAA;AACA,QAAA,aAAA;AACA,QAAA,OAAA;AACA,QAAA,UAAA;AACA,QAAA;AACD,KAAA,CAAA;IACDI,YAAc/C,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGC,OAAO,EAAA;IACjCC,OAASlD,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGC,OAAO,EAAA;AAC5BE,IAAAA,aAAAA,EAAenD,MAAEoD,MAAM,CAACpD,KAAEqD,CAAAA,OAAO,IAAIC,QAAQ;AAC/C,CAAA,CAAA;AAEA,MAAMC,eAAAA,GAAkBvD,MAAEwD,MAAM,EAAA,CAAGC,GAAG,EAAGC,CAAAA,QAAQ,GAAGJ,QAAQ,EAAA;AAC5D,MAAMK,eAAAA,GAAkB3D,MAAEwD,MAAM,EAAA,CAAGC,GAAG,EAAGC,CAAAA,QAAQ,GAAGJ,QAAQ,EAAA;AAE5D,MAAMM,cAAiB5D,GAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;AAC3C,MAAMO,YAAe7D,GAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;AAEzC,MAAMjB,qBAAwB,GAAA;AAAC,IAAA,UAAA;AAAY,IAAA;AAAY,CAAA;AAEvD,MAAMyB,kBAAAA,GAAqB9D,KAAE8C,CAAAA,MAAM,CAAC;IAClCtC,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;IAChB9B,QAAUjC,EAAAA,KAAAA,CAAE2C,IAAI,CAAC;AACf,QAAA,UAAA;AACA,QAAA,WAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,UAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA;AACD,KAAA,CAAA;IACDI,YAAc/C,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGC,OAAO,EAAA;IACjCC,OAASlD,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGC,OAAO,EAAA;AAC5BE,IAAAA,aAAAA,EAAenD,MAAEoD,MAAM,CAACpD,KAAEqD,CAAAA,OAAO,IAAIC,QAAQ;AAC/C,CAAA,CAAA;AAEA,MAAMU,cAAAA,GAAiBF,kBAAmBG,CAAAA,MAAM,CAAC;IAC/ChC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMkB,YAAAA,GAAeL,kBAAmBG,CAAAA,MAAM,CAAC;IAC7ChC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM;AAClB,CAAA,CAAA;AAEA,MAAME,eAAAA,GAAkBN,kBAAmBG,CAAAA,MAAM,CAAC;IAChDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMoB,aAAAA,GAAgBP,kBAAmBG,CAAAA,MAAM,CAAC;IAC9ChC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM;AAClB,CAAA,CAAA;AAEA,MAAMI,eAAAA,GAAkBR,kBAAmBG,CAAAA,MAAM,CAAC;IAChDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMsB,gBAAAA,GAAmBT,kBAAmBG,CAAAA,MAAM,CAAC;IACjDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,YAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMuB,cAAAA,GAAiBV,kBAAmBG,CAAAA,MAAM,CAAC;IAC/ChC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMwB,eAAAA,GAAkBX,kBAAmBG,CAAAA,MAAM,CAAC;IAChDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA,CAAA;AACpB/B,IAAAA,MAAAA,EAAQhC,MAAEkE,MAAM,EAAA;IAChBhC,eAAiBlC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO;AACrC,CAAA,CAAA;AAEA,MAAMyB,gBAAAA,GAAmBZ,kBAAmBG,CAAAA,MAAM,CAAC;IACjDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,YAAA;AACtB,CAAA,CAAA;AAEA,MAAMY,iBAAAA,GAAoBb,kBAAmBG,CAAAA,MAAM,CAAC;IAClDhC,QAAUjC,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,aAAA;AACtB,CAAA,CAAA;AAEA,MAAMa,uBAAuB,CAACC,IAAAA,GAAAA;AAC5B,IAAA,OAAQA,KAAKC,SAAS;QACpB,KAAK,aAAA;AAAe,YAAA;AAClB,gBAAA,OAAQD,KAAKE,IAAI;oBACf,KAAK,YAAA;wBACH,OAAO/E,KAAAA,CAAEgF,kBAAkB,CAAC,UAAY,EAAA;AACtChB,4BAAAA,cAAAA;AACAI,4BAAAA,eAAAA;AACAI,4BAAAA,cAAAA;AACAC,4BAAAA,eAAAA;AACAC,4BAAAA,gBAAAA;AACAC,4BAAAA;AACD,yBAAA,CAAA;oBAEH,KAAK,gBAAA;wBACH,OAAO3E,KAAAA,CAAEgF,kBAAkB,CAAC,UAAY,EAAA;AACtChB,4BAAAA,cAAAA;AACAI,4BAAAA,eAAAA;AACAE,4BAAAA,eAAAA;AACAC,4BAAAA,gBAAAA;AACAC,4BAAAA,cAAAA;AACAC,4BAAAA,eAAAA;AACAC,4BAAAA,gBAAAA;AACAC,4BAAAA;AACD,yBAAA,CAAA;AACH,oBAAA;AACE,wBAAA,MAAM,IAAIM,KAAM,CAAA,2BAAA,CAAA;AACpB;AACF;QAEA,KAAK,WAAA;AAAa,YAAA;gBAChB,OAAOjF,KAAAA,CAAEgF,kBAAkB,CAAC,UAAY,EAAA;AAACb,oBAAAA,YAAAA;AAAcE,oBAAAA;AAAc,iBAAA,CAAA;AACvE;AACA,QAAA;AACE,YAAA,MAAM,IAAIY,KAAM,CAAA,oBAAA,CAAA;AACpB;AACF,CAAA;AAEA,MAAMC,cAAAA,GAAiBrC,oBAAqBoB,CAAAA,MAAM,CAAC;IACjDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACVnC,SAAWkC,EAAAA,eAAAA;IACXnC,SAAW+B,EAAAA,eAAAA;IACXd,OAASzC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ;AAC9B,CAAA,CAAA;AAEA,MAAM8B,YAAAA,GAAevC,oBAAqBoB,CAAAA,MAAM,CAAC;IAC/CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;IAChBoB,QAAUvB,EAAAA;AACZ,CAAA,CAAA;AAEA,MAAMyB,UAAAA,GAAaxC,oBAAqBoB,CAAAA,MAAM,CAAC;IAC7CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,MAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;AACVnB,IAAAA,OAAAA,EAASzC,MACNqD,OAAO,EAAA,CACPC,QAAQ,EACRgC,CAAAA,MAAM,CAAC,CAAChE,KAAAA,GAAAA;AACP,QAAA,IAAIA,UAAUiE,SAAW,EAAA;YACvB,OAAO,IAAA;AACT;AAEA,QAAA,IAAI7D,YAASJ,KAAUkE,CAAAA,IAAAA,SAAAA,CAAOlE,UAAUmE,WAASnE,CAAAA,KAAAA,CAAAA,IAAUoE,WAAQpE,KAAQ,CAAA,EAAA;YACzE,OAAO,IAAA;AACT;QAEA,IAAI;AACFqE,YAAAA,IAAAA,CAAKC,KAAK,CAACtE,KAAAA,CAAAA;YAEX,OAAO,IAAA;AACT,SAAA,CAAE,OAAOuE,GAAK,EAAA;YACZ,OAAO,KAAA;AACT;AACF,KAAA;AACJ,CAAA,CAAA;AAEA,MAAMC,iBAAAA,GAAoBjD,oBAAqBoB,CAAAA,MAAM,CAAC;IACpDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,aAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACVnB,OAASzC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ,EAAA;AAC5ByC,IAAAA,QAAAA,EAAU/F,MACPkE,MAAM,EAAA,CACNZ,QAAQ,EACRgC,CAAAA,MAAM,CAAC,CAAChE,KAAAA,GAAAA;AACP,QAAA,OAAOA,KAAU,KAAA,EAAA,IAAM0E,iBAAWC,CAAAA,IAAI,CAAC3E,KAAAA,CAAAA;KACtC,EAAA,mBAAA,CAAA;IACLqB,IAAM3C,EAAAA,KAAAA,CACHkG,KAAK,CACJlG,KAAAA,CAAEkE,MAAM,EAAGoB,CAAAA,MAAM,CAAC,CAAChE,KAAAA,GAAAA;AACjB,QAAA,OAAOA,KAAU,KAAA,EAAA,IAAM,CAAC6E,aAAAA,CAAQC,iBAAiB,CAAC9E,KAAAA,CAAAA;AACpD,KAAA,CAAA,CAAA,CAEDO,GAAG,CAAC,CACJyD,CAAAA,CAAAA,MAAM,CAAC,CAACe,MAAAA,GAAAA;AACP,QAAA,MAAMC,QAAW,GAAA;AAAI,YAAA,GAAA,IAAI/G,GAAI8G,CAAAA,MAAAA;AAAQ,SAAA;AACrC,QAAA,OAAOC,QAASzG,CAAAA,MAAM,KAAKwG,MAAAA,CAAOxG,MAAM;AAC1C,KAAA;AACJ,CAAA,CAAA;AAEA,MAAM0G,UAAAA,GAAa1D,oBAAqBoB,CAAAA,MAAM,CAAC;IAC7CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,MAAA,CAAA;IAChBtB,OAASzC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO,EAAA;IAC3BxB,SAAWkC,EAAAA,eAAAA;IACXnC,SAAW+B,EAAAA,eAAAA;IACX4B,QAAUvB,EAAAA,cAAAA;IACV4C,MAAQ3C,EAAAA,YAAAA;AACR4C,IAAAA,KAAAA,EAAOzG,MACJkE,MAAM,EAAA,CACNZ,QAAQ,EACRgC,CAAAA,MAAM,CAAC,CAAChE,KAAAA,GAAAA;AACP,QAAA,OAAOA,KAAU,KAAA,EAAA,IAAM,CAAC,CAAC,IAAIoF,MAAOpF,CAAAA,KAAAA,CAAAA;KACnC,EAAA,oCAAA;AACP,CAAA,CAAA;AAEA,MAAMqF,YAAAA,GAAeJ,UAAWtC,CAAAA,MAAM,CAAC;IACrCzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA;AAClB,CAAA,CAAA;AAEA,MAAM6C,cAAAA,GAAiB/D,oBAAqBoB,CAAAA,MAAM,CAAC;IACjDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACVnC,SAAWkC,EAAAA,eAAAA;IACXnC,SAAW+B,EAAAA;AACb,CAAA,CAAA;AAEA,MAAMsD,WAAAA,GAAchE,oBAAqBoB,CAAAA,MAAM,CAAC;IAC9CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,OAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACVnC,SAAWkC,EAAAA,eAAAA;IACXnC,SAAW+B,EAAAA,eAAAA;AACXd,IAAAA,OAAAA,EAASzC,KAAEkE,CAAAA,MAAM,EAAG4C,CAAAA,KAAK,GAAGxD,QAAQ,EAAA;IACpCkD,MAAQ3C,EAAAA;AACV,CAAA,CAAA;AAEA,MAAMkD,aAAAA,GAAgBlE,oBAAqBoB,CAAAA,MAAM,CAAC;IAChDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,SAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;AACVnB,IAAAA,OAAAA,EAASzC,KAAEwD,CAAAA,MAAM,EAAGC,CAAAA,GAAG,GAAGH,QAAQ,EAAA;IAClCkD,MAAQ3C,EAAAA,YAAAA;AACRhC,IAAAA,GAAAA,EAAK7B,KAAEwD,CAAAA,MAAM,EAAGC,CAAAA,GAAG,GAAGH,QAAQ,EAAA;AAC9B1B,IAAAA,GAAAA,EAAK5B,KAAEwD,CAAAA,MAAM,EAAGC,CAAAA,GAAG,GAAGH,QAAQ;AAChC,CAAA,CAAA;AAEA,MAAM0D,gBAAAA,GAAmBnE,oBAAqBoB,CAAAA,MAAM,CAAC;IACnDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,YAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACV4C,MAAQ3C,EAAAA,YAAAA;AACRpB,IAAAA,OAAAA,EAASzC,MAAEkE,MAAM,EAAA,CAAGuC,KAAK,CAAC,SAASxD,OAAO,EAAA;AAC1CpB,IAAAA,GAAAA,EAAK7B,MAAEkE,MAAM,EAAA,CAAGuC,KAAK,CAAC,SAASxD,OAAO,EAAA;AACtCrB,IAAAA,GAAAA,EAAK5B,MAAEkE,MAAM,EAAA,CAAGuC,KAAK,CAAC,SAASxD,OAAO;AACxC,CAAA,CAAA;AAEA,MAAMgE,WAAAA,GAAcpE,oBAAqBoB,CAAAA,MAAM,CAAC;IAC9CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,OAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACV4C,MAAQ3C,EAAAA,YAAAA;IACRpB,OAASzC,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IAC5BzB,GAAK7B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IACxB1B,GAAK5B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAM4D,aAAAA,GAAgBrE,oBAAqBoB,CAAAA,MAAM,CAAC;IAChDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,SAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACV4C,MAAQ3C,EAAAA,YAAAA;IACRpB,OAASzC,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IAC5BzB,GAAK7B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IACxB1B,GAAK5B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAM6D,UAAAA,GAAatE,oBAAqBoB,CAAAA,MAAM,CAAC;IAC7CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,MAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACV4C,MAAQ3C,EAAAA,YAAAA;IACRpB,OAASzC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ;AAC9B,CAAA,CAAA;AAEA,MAAM8D,UAAAA,GAAaD,UAAWlD,CAAAA,MAAM,CAAC;IACnCzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,MAAA;AAClB,CAAA,CAAA;AAEA,MAAMsD,cAAAA,GAAiBF,UAAWlD,CAAAA,MAAM,CAAC;IACvCzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,UAAA;AAClB,CAAA,CAAA;AAEA,MAAMuD,eAAAA,GAAkBzE,oBAAqBoB,CAAAA,MAAM,CAAC;IAClDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA;AAClB,CAAA,CAAA;AAEA,MAAMwD,aAAAA,GAAgB1E,oBAAqBoB,CAAAA,MAAM,CAAC;IAChDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,SAAA,CAAA;IAChBoB,QAAUvB,EAAAA,cAAAA;IACVnB,OAASzC,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ;AAC/B,CAAA,CAAA;AAEA,MAAMkE,eAAAA,GAAkB3E,oBAAqBoB,CAAAA,MAAM,CAAC;IAClDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,WAAA,CAAA;AAChB0D,IAAAA,SAAAA,EAAWzH,MAAEkE,MAAM,EAAA;IACnBwD,UAAY1H,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;IAChC6B,QAAUvB,EAAAA,cAAAA;IACV/B,GAAK7B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IACxB1B,GAAK5B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAMqE,iBAAAA,GAAoB9E,oBAAqBoB,CAAAA,MAAM,CAAC;IACpDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,aAAA,CAAA;AAChB6D,IAAAA,UAAAA,EAAY5H,MAAEkG,KAAK,CAAClG,KAAEkE,CAAAA,MAAM,IAAI2D,QAAQ,EAAA;IACxC1C,QAAUvB,EAAAA,cAAAA;IACV/B,GAAK7B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ,EAAA;IACxB1B,GAAK5B,EAAAA,KAAAA,CAAEwD,MAAM,EAAA,CAAGF,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAMwE,WAAAA,GAAcjF,oBAAqBoB,CAAAA,MAAM,CAAC;IAC9CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,OAAA,CAAA;IAChBgE,QAAU/H,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;IAC9B6B,QAAUvB,EAAAA,cAAAA;AACVoE,IAAAA,YAAAA,EAAchI,KACXkG,CAAAA,KAAK,CAAClG,KAAAA,CAAE2C,IAAI,CAAC;AAAC,QAAA,QAAA;AAAU,QAAA,QAAA;AAAU,QAAA,OAAA;AAAS,QAAA;KAAS,CACpDkF,CAAAA,CAAAA,QAAQ,GACRvE,QAAQ;AACb,CAAA,CAAA;AAEA,MAAM2E,SAAAA,GAAYpF,oBAAqBoB,CAAAA,MAAM,CAAC;IAC5CzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,KAAA,CAAA;IAChBtD,WAAaT,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO,EAAA;IAC/BkC,QAAUvB,EAAAA,cAAAA;IACVnB,OAASzC,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGjB,OAAO,EAAA;IAC3BxB,SAAWkC,EAAAA,eAAAA;IACXnC,SAAW+B,EAAAA,eAAAA;IACX2E,OAASlI,EAAAA,KAAAA,CACN8C,MAAM,CAAC;QACNqF,SAAWnI,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ,EAAA;QAC9B8E,SAAWpI,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;QAC/B+E,UAAYrI,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ,EAAA;AAChCgF,QAAAA,kBAAAA,EAAoBtI,KAAEkG,CAAAA,KAAK,CAAClG,KAAAA,CAAEkG,KAAK,CAAClG,KAAEkE,CAAAA,MAAM,EAAIrE,CAAAA,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAIyD,QAAQ,EAAA;QACnEiF,yBAA2BvI,EAAAA,KAAAA,CAAEgD,OAAO,EAAA,CAAGM,QAAQ;AACjD,KAAA,CAAA,CACCA,QAAQ,EAAA;AACXmD,IAAAA,KAAAA,EAAOzG,MACJkE,MAAM,EAAA,CACNZ,QAAQ,EACRgC,CAAAA,MAAM,CAAC,CAAChE,KAAAA,GAAAA;AACP,QAAA,OAAOA,KAAU,KAAA,EAAA,IAAM,CAAC,CAAC,IAAIoF,MAAOpF,CAAAA,KAAAA,CAAAA;KACnC,EAAA,oCAAA;AACP,CAAA,CAAA;AAEA,MAAMkH,iBAAAA,GAAoB3F,oBAAqBoB,CAAAA,MAAM,CAAC;IACpDzD,IAAMR,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,aAAA,CAAA;AAChB0E,IAAAA,WAAAA,EAAazI,MAAEkE,MAAM;AACvB,CAAA,CAAA;AAEA,MAAMwE,4BAA4B,CAAC7D,IAAAA,GAAAA;AACjC,IAAA,MAAM8D,iBAAiB/D,oBAAqBC,CAAAA,IAAAA,CAAAA;IAE5C,MAAM+D,IAAAA,GAAO5I,KAAE6I,CAAAA,KAAK,CAAC;AACnBf,QAAAA,WAAAA;AACAvB,QAAAA,UAAAA;AACAI,QAAAA,YAAAA;AACAzB,QAAAA,cAAAA;AACAE,QAAAA,YAAAA;AACAC,QAAAA,UAAAA;AACAS,QAAAA,iBAAAA;AACAc,QAAAA,cAAAA;AACAC,QAAAA,WAAAA;AACAE,QAAAA,aAAAA;AACAC,QAAAA,gBAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,UAAAA;AACAC,QAAAA,UAAAA;AACAC,QAAAA,cAAAA;AACAC,QAAAA,eAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,eAAAA;AACAgB,QAAAA,iBAAAA,CAAkBM,WAAW,EAAA;AAE7BH,QAAAA;AACD,KAAA,CAAA;IAED,IAAI9D,IAAAA,CAAKC,SAAS,KAAK,WAAa,EAAA;QAClC,OAAO8D,IAAAA,CACJG,WAAW,CAACrG,cACZqG,CAAAA,CAAAA,WAAW,CAACjH,eAAAA,CAAAA,CACZiH,WAAW,CAACpH,iBACZoH,CAAAA,CAAAA,WAAW,CAAC1H,6BAAAA,CAAAA;AACjB;IAEA,OAAOrB,KAAAA,CACJ6I,KAAK,CAAC;AAAID,QAAAA,GAAAA,IAAAA,CAAKV,OAAO;AAAED,QAAAA,SAAAA;AAAWN,QAAAA;AAAkB,KAAA,CAAA,CACrDoB,WAAW,CAACrG,cACZqG,CAAAA,CAAAA,WAAW,CAACjH,eAAAA,CAAAA,CACZiH,WAAW,CAACvG,aACZuG,CAAAA,CAAAA,WAAW,CAACpH,iBAAAA,CAAAA,CACZoH,WAAW,CAAC1H,6BAAAA,CAAAA;AACjB,CAAA;AAEA,MAAM2H,qBAAwB,GAAA,CAACnE,IAC7B7E,GAAAA,KAAAA,CAAE8C,MAAM,CAAC;QACPvC,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClBpE,QAAAA,IAAAA,EAAMK,KACHkE,CAAAA,MAAM,EACNuC,CAAAA,KAAK,CAACT,iBAAAA,CAAAA,CACNV,MAAM,CAAC,CAAChE,KAAAA,GAAU,CAAC2H,+BAAAA,CAAwB3H,KAAQ,CAAA,EAAA,4BAAA,CAAA;AACtDhB,QAAAA,UAAAA,EAAYoI,yBAA0B7D,CAAAA,IAAAA;AACxC,KAAA,CAAA;AAEF,MAAMqE,qBAAwB,GAAA,CAACrE,IAC7B7E,GAAAA,KAAAA,CAAE8C,MAAM,CAAC;QACPvC,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClBpE,QAAAA,IAAAA,EAAMK,MAAEkE,MAAM,EAAA;AACd5D,QAAAA,UAAAA,EAAYoI,yBAA0B7D,CAAAA,IAAAA;AACxC,KAAA,CAAA;AAEF,MAAMsE,qBAAAA,GAAwBnJ,KAAE8C,CAAAA,MAAM,CAAC;IACrCvC,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClBpE,IAAAA,IAAAA,EAAMK,MAAEkE,MAAM;AAChB,CAAA,CAAA;AAEA,MAAMkF,oBAAuBpJ,GAAAA,KAAAA,CAAEE,MAAM,CAAkB,CAACoB,KAAAA,GAAAA;AACtD,IAAA,OAAO,OAAOA,KAAAA,KAAU,QAAYA,IAAAA,KAAAA,CAAMzB,MAAM,GAAG,CAAA;AACrD,CAAA,CAAA;AAEA,MAAMwJ,kBAAqBrJ,GAAAA,KAAAA,CAAEE,MAAM,CAAgB,CAACoB,KAAAA,GAAAA;AAClD,IAAA,OAAO,OAAOA,KAAAA,KAAU,QAAYA,IAAAA,KAAAA,CAAMzB,MAAM,GAAG,CAAA;AACrD,CAAA,CAAA;AAEA,MAAMyJ,cAAAA,GAAiBtJ,MAAEkE,MAAM,EAAA,CAAGrC,GAAG,CAAC,CAAA,CAAA,CAAG4E,KAAK,CAAC8C,0BAAAA,CAAAA;AAE/C,MAAMC,mBAAAA,GAAsBxJ,KAAE8C,CAAAA,MAAM,CAAC;IACnC2G,GAAKJ,EAAAA,kBAAAA;AACLK,IAAAA,WAAAA,EAAa1J,KAAEkE,CAAAA,MAAM,EAAGrC,CAAAA,GAAG,CAAC,CAAA,CAAA;AAC5B8H,IAAAA,IAAAA,EAAM3J,MAAEkE,MAAM,EAAA,CAAGuC,KAAK,CAACmD,mBAAYtG,QAAQ,EAAA;IAC3CuG,WAAa7J,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ,EAAA;IAChCwG,QAAUR,EAAAA,cAAAA;IACVnG,aAAenD,EAAAA,KAAAA,CAAEoD,MAAM,CAACpD,KAAAA,CAAEkE,MAAM,EAAIlE,EAAAA,KAAAA,CAAEqD,OAAO,EAAA,CAAA,CAAIC,QAAQ;AAC3D,CAAA,CAAA;AAEA,MAAMyG,qBAAAA,GAAwBP,mBAAoBvF,CAAAA,MAAM,CAAC;IACvD1D,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClBiG,IAAAA,MAAAA,EAAQhK,KAAEoD,CAAAA,MAAM,CAACpD,KAAAA,CAAEkE,MAAM,EAAA,EAAIlE,KAAEqD,CAAAA,OAAO,EAAIC,CAAAA,CAAAA,QAAQ,EAAGb,CAAAA,OAAO,CAAC,EAAC,CAAA;IAC9DrD,UAAYY,EAAAA,KAAAA,CACTkG,KAAK,CACJ8C,qBAAsB,CAAA;QACpBlE,SAAW,EAAA;AACb,KAAA,CAAA,CAAA,CAEDiE,WAAW,CAAC5J,mBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM8K,qBAAAA,GAAwBT,mBAAoBvF,CAAAA,MAAM,CAAC;IACvD1D,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClB+F,IAAAA,QAAAA,EAAUR,eAAehG,QAAQ,EAAA;AACjClE,IAAAA,UAAAA,EAAYY,MACTkG,KAAK,CACJlG,KAAEgF,CAAAA,kBAAkB,CAAC,QAAU,EAAA;QAC7BgE,qBAAsB,CAAA;YACpBlE,SAAW,EAAA;AACb,SAAA,CAAA;QACAoE,qBAAsB,CAAA;YACpBpE,SAAW,EAAA;AACb,SAAA,CAAA;AACAqE,QAAAA;AACD,KAAA,CAAA,CAAA,CAEFJ,WAAW,CAAC5J,mBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM+K,qBAAAA,GAAwBlK,KAAE8C,CAAAA,MAAM,CAAC;IACrCvC,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;IAClB0F,GAAKJ,EAAAA;AACP,CAAA,CAAA;AAEA,MAAMc,qBAAAA,GAAwBnK,KAAE8C,CAAAA,MAAM,CAAC;IACrC2G,GAAKL,EAAAA,oBAAAA;AACLM,IAAAA,WAAAA,EAAa1J,KAAEkE,CAAAA,MAAM,EAAGrC,CAAAA,GAAG,CAAC,CAAA,CAAA;IAC5BgI,WAAa7J,EAAAA,KAAAA,CAAEkE,MAAM,EAAA,CAAGZ,QAAQ,EAAA;AAChC8G,IAAAA,eAAAA,EAAiBpK,MAAEgD,OAAO,EAAA;IAC1BkF,OAASlI,EAAAA,KAAAA,CAAEoD,MAAM,CAACpD,KAAEqD,CAAAA,OAAO,IAAIC,QAAQ,EAAA,CAAGb,OAAO,CAAC,EAAC,CAAA;IACnDU,aAAenD,EAAAA,KAAAA,CAAEoD,MAAM,CAACpD,KAAEqD,CAAAA,OAAO,IAAIC,QAAQ,EAAA,CAAGb,OAAO,CAAC,EAAC,CAAA;IACzDsC,IAAM/E,EAAAA,KAAAA,CAAE2C,IAAI,CAAC;AAAC0H,QAAAA,mBAAAA,CAAUC,WAAW;AAAED,QAAAA,mBAAAA,CAAUE;AAAgB,KAAA,CAAA,CAAEjH,QAAQ;AAC3E,CAAA,CAAA;AAEA,MAAMkH,2BAAAA,GAA8BL,qBAAsBlG,CAAAA,MAAM,CAAC;IAC/D1D,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;AAClB0G,IAAAA,cAAAA,EAAgBzK,MAAEkE,MAAM,EAAA,CAAGuC,KAAK,CAACiE,8BAAuBpH,QAAQ,EAAA;AAChEpC,IAAAA,YAAAA,EAAclB,MACXkE,MAAM,EAAA,CACNrC,GAAG,CAAC,GACJ4E,KAAK,CAACkE,uBAAkB,EAAA,oBAAA,CAAA,CACxBrF,MAAM,CAAC,CAAChE,KAAU,GAAA,CAACsJ,4BAAoBtJ,KAAQ,CAAA,EAAA,wBAAA,CAAA;AAClDH,IAAAA,UAAAA,EAAYnB,MACTkE,MAAM,EAAA,CACNrC,GAAG,CAAC,GACJ4E,KAAK,CAACkE,uBAAkB,EAAA,oBAAA,CAAA,CACxBrF,MAAM,CAAC,CAAChE,KAAU,GAAA,CAACsJ,4BAAoBtJ,KAAQ,CAAA,EAAA,wBAAA,CAAA;IAClD0I,MAAQhK,EAAAA,KAAAA,CAAEoD,MAAM,CAACpD,KAAAA,CAAEkE,MAAM,EAAIlE,EAAAA,KAAAA,CAAEqD,OAAO,EAAA,CAAA,CAAIC,QAAQ;AACpD,CAAA,CAAA;AAEA,MAAMuH,sBAAAA,GAAyBL,2BAA4BvG,CAAAA,MAAM,CAAC;AAChEc,IAAAA,IAAAA,EAAM/E,KAAE+D,CAAAA,OAAO,CAACsG,mBAAAA,CAAUC,WAAW,CAAA;IACrClL,UAAYY,EAAAA,KAAAA,CACTkG,KAAK,CACJ8C,qBAAsB,CAAA;QACpBlE,SAAW,EAAA,aAAA;QACXC,IAAM,EAAA;AACR,KAAA,CAAA,CAAA,CAEDgE,WAAW,CAAC5J,mBACZ4J,CAAAA,CAAAA,WAAW,CAAC3I,oBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM0K,0BAAAA,GAA6BN,2BAA4BvG,CAAAA,MAAM,CAAC;AACpEc,IAAAA,IAAAA,EAAM/E,KAAE+D,CAAAA,OAAO,CAACsG,mBAAAA,CAAUE,eAAe,CAAA;IACzCnL,UAAYY,EAAAA,KAAAA,CACTkG,KAAK,CACJ8C,qBAAsB,CAAA;QACpBlE,SAAW,EAAA,aAAA;QACXC,IAAM,EAAA;AACR,KAAA,CAAA,CAAA,CAEDgE,WAAW,CAAC5J,mBACZ4J,CAAAA,CAAAA,WAAW,CAAC3I,oBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM2K,2BAAAA,GAA8BZ,qBAAsBlG,CAAAA,MAAM,CAAC;IAC/D1D,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA;AACpB,CAAA,CAAA;AAEA,MAAMiH,sBAAAA,GAAyBD,2BAA4B9G,CAAAA,MAAM,CAAC;AAChEc,IAAAA,IAAAA,EAAM/E,MAAE+D,OAAO,CAACsG,mBAAUC,CAAAA,WAAW,EAAEhH,QAAQ,EAAA;AAC/ClE,IAAAA,UAAAA,EAAYY,MACTkG,KAAK,CACJlG,KAAEgF,CAAAA,kBAAkB,CAAC,QAAU,EAAA;QAC7BgE,qBAAsB,CAAA;YACpBlE,SAAW,EAAA,aAAA;YACXC,IAAM,EAAA;AACR,SAAA,CAAA;QACAmE,qBAAsB,CAAA;YACpBpE,SAAW,EAAA,aAAA;YACXC,IAAM,EAAA;AACR,SAAA,CAAA;AACAoE,QAAAA;AACD,KAAA,CAAA,CAAA,CAEFJ,WAAW,CAAC5J,mBACZ4J,CAAAA,CAAAA,WAAW,CAAC3I,oBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM6K,0BAAAA,GAA6BF,2BAA4B9G,CAAAA,MAAM,CAAC;AACpEc,IAAAA,IAAAA,EAAM/E,MAAE+D,OAAO,CAACsG,mBAAUE,CAAAA,eAAe,EAAEjH,QAAQ,EAAA;AACnDlE,IAAAA,UAAAA,EAAYY,KACTkG,CAAAA,KAAK,CACJlG,KAAAA,CAAE6I,KAAK,CAAC;QACNG,qBAAsB,CAAA;YACpBlE,SAAW,EAAA,aAAA;YACXC,IAAM,EAAA;AACR,SAAA,CAAA;QACAmE,qBAAsB,CAAA;YACpBpE,SAAW,EAAA,aAAA;YACXC,IAAM,EAAA;AACR,SAAA,CAAA;AACAoE,QAAAA;AACD,KAAA,CAAA,CAAA,CAEFJ,WAAW,CAAC5J,mBACZ4J,CAAAA,CAAAA,WAAW,CAAC3I,oBAAAA;AACjB,CAAA,CAAA;AAEA,MAAM8K,uBAAAA,GAA0BlL,KAAE8C,CAAAA,MAAM,CAAC;IACvCvC,MAAQP,EAAAA,KAAAA,CAAE+D,OAAO,CAAC,QAAA,CAAA;IAClB0F,GAAKL,EAAAA;AACP,CAAA,CAAA;AAEA,MAAM+B,YAAAA,GAAenL,KAAE8C,CAAAA,MAAM,CAAC;AAC5B8E,IAAAA,UAAAA,EAAY5H,KACTkG,CAAAA,KAAK,CAAClG,KAAAA,CAAE6I,KAAK,CAAC;AAACkB,QAAAA,qBAAAA;AAAuBE,QAAAA,qBAAAA;AAAuBC,QAAAA;AAAsB,KAAA,CAAA,CAAA,CACnF5G,QAAQ,EAAA,CACRb,OAAO,CAAC,EAAE,CAAA;AACb2I,IAAAA,YAAAA,EAAcpL,KACXkG,CAAAA,KAAK,CACJlG,KAAAA,CACG6I,KAAK,CAAC;AACLgC,QAAAA,sBAAAA;AACAC,QAAAA,0BAAAA;AACAE,QAAAA,sBAAAA;AACAC,QAAAA,0BAAAA;AACAC,QAAAA;AACD,KAAA,CAAA,CACAnC,WAAW,CAAC/H,4BAAAA,CAAAA,CAAAA,CAEhBsC,QAAQ,EACRb,CAAAA,OAAO,CAAC,EAAE;AACf,CAAA,CAAA;AAsBa4I,MAAAA,oBAAAA,GAAuBC,iBAClCtL,CAAAA,KAAAA,CAAE8C,MAAM,CACN;IACEyI,IAAMJ,EAAAA;AACR,CACA,EAAA;IACEK,kBAAoB,EAAA,yDAAA;IACpBC,cAAgB,EAAA;AAClB,CAEF,CAAA;;;;"}
|
|
@@ -424,7 +424,10 @@ const uidSchema = basePropertiesSchema.extend({
|
|
|
424
424
|
decamelize: z.boolean().optional(),
|
|
425
425
|
customReplacements: z.array(z.array(z.string()).length(2)).optional(),
|
|
426
426
|
preserveLeadingUnderscore: z.boolean().optional()
|
|
427
|
-
}).optional()
|
|
427
|
+
}).optional(),
|
|
428
|
+
regex: z.string().optional().refine((value)=>{
|
|
429
|
+
return value === '' || !!new RegExp(value);
|
|
430
|
+
}, 'Invalid regular expression pattern')
|
|
428
431
|
});
|
|
429
432
|
const customFieldSchema = basePropertiesSchema.extend({
|
|
430
433
|
type: z.literal('customField'),
|