@strapi/content-type-builder 5.51.1 → 5.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/admin/components/AIChat/Chat.js +1 -1
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -1
  3. package/dist/admin/components/AIChat/Chat.mjs +1 -1
  4. package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/FeedbackModal.js +1 -1
  6. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/FeedbackModal.mjs +1 -1
  8. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/UploadFigmaModal.js +1 -1
  10. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  11. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
  12. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/components/Base64Image.js +1 -1
  14. package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -1
  15. package/dist/admin/components/AIChat/components/Base64Image.mjs +1 -1
  16. package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/components/Messages/Message.js +2 -2
  18. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  19. package/dist/admin/components/AIChat/components/Messages/Message.mjs +2 -2
  20. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/hooks/useAIFetch.js +1 -1
  22. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -1
  23. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +1 -1
  24. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +2 -2
  26. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  27. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +2 -2
  28. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
  29. package/dist/admin/components/CTBSession/useCTBTracking.js +1 -1
  30. package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
  31. package/dist/admin/components/CTBSession/useCTBTracking.mjs +1 -1
  32. package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
  33. package/dist/admin/components/DataManager/reducer.js +4 -0
  34. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  35. package/dist/admin/components/DataManager/reducer.mjs +4 -0
  36. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  37. package/dist/admin/components/DataManager/useServerRestartWatcher.js +1 -1
  38. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
  39. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +1 -1
  40. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
  41. package/dist/admin/components/FormModal/attributes/ConditionForm.js +1 -1
  42. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  43. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +1 -1
  44. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  45. package/dist/admin/components/FormModal/attributes/advancedForm.js +1 -0
  46. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
  47. package/dist/admin/components/FormModal/attributes/advancedForm.mjs +1 -0
  48. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
  49. package/dist/admin/components/FormModal/attributes/types.js +6 -1
  50. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  51. package/dist/admin/components/FormModal/attributes/types.mjs +6 -1
  52. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  53. package/dist/admin/components/FormModal/attributes/validation/common.js +6 -4
  54. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  55. package/dist/admin/components/FormModal/attributes/validation/common.mjs +6 -4
  56. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  57. package/dist/admin/components/FormModal/forms/forms.js +1 -1
  58. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  59. package/dist/admin/components/FormModal/forms/forms.mjs +1 -1
  60. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  61. package/dist/admin/components/FormModal/reducer.js +7 -0
  62. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  63. package/dist/admin/components/FormModal/reducer.mjs +7 -0
  64. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  65. package/dist/admin/components/PluralName.js +1 -1
  66. package/dist/admin/components/PluralName.js.map +1 -1
  67. package/dist/admin/components/PluralName.mjs +1 -1
  68. package/dist/admin/components/PluralName.mjs.map +1 -1
  69. package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +1 -1
  70. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +8 -0
  71. package/dist/admin/src/components/FormModal/attributes/types.d.ts +2 -0
  72. package/dist/admin/src/types.d.ts +1 -0
  73. package/dist/admin/translations/en.json.js +1 -0
  74. package/dist/admin/translations/en.json.js.map +1 -1
  75. package/dist/admin/translations/en.json.mjs +1 -0
  76. package/dist/admin/translations/en.json.mjs.map +1 -1
  77. package/dist/server/controllers/validation/common.js +1 -1
  78. package/dist/server/controllers/validation/common.js.map +1 -1
  79. package/dist/server/controllers/validation/common.mjs +1 -1
  80. package/dist/server/controllers/validation/common.mjs.map +1 -1
  81. package/dist/server/controllers/validation/relations.js +1 -0
  82. package/dist/server/controllers/validation/relations.js.map +1 -1
  83. package/dist/server/controllers/validation/relations.mjs +1 -0
  84. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  85. package/dist/server/controllers/validation/schema.js +2 -1
  86. package/dist/server/controllers/validation/schema.js.map +1 -1
  87. package/dist/server/controllers/validation/schema.mjs +2 -1
  88. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  89. package/dist/server/services/content-types.js +1 -1
  90. package/dist/server/services/content-types.js.map +1 -1
  91. package/dist/server/services/content-types.mjs +1 -1
  92. package/dist/server/services/content-types.mjs.map +1 -1
  93. package/dist/server/services/schema-builder/content-type-builder.js +3 -2
  94. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  95. package/dist/server/services/schema-builder/content-type-builder.mjs +3 -2
  96. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  97. package/dist/server/services/schema.js +1 -5
  98. package/dist/server/services/schema.js.map +1 -1
  99. package/dist/server/services/schema.mjs +2 -2
  100. package/dist/server/services/schema.mjs.map +1 -1
  101. package/dist/server/src/controllers/validation/relations.d.ts +2 -0
  102. package/dist/server/src/controllers/validation/relations.d.ts.map +1 -1
  103. package/dist/server/src/controllers/validation/schema.d.ts +3234 -0
  104. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  105. package/dist/server/src/services/schema-builder/types.d.ts +1 -0
  106. package/dist/server/src/services/schema-builder/types.d.ts.map +1 -1
  107. package/dist/server/src/utils/attributes.d.ts +10 -10
  108. package/dist/server/src/utils/attributes.d.ts.map +1 -1
  109. package/dist/server/utils/attributes.js +2 -2
  110. package/dist/server/utils/attributes.js.map +1 -1
  111. package/dist/server/utils/attributes.mjs +3 -2
  112. package/dist/server/utils/attributes.mjs.map +1 -1
  113. package/package.json +9 -9
  114. package/dist/server/src/controllers/ai/auth.d.ts +0 -1
  115. package/dist/server/src/controllers/ai/auth.d.ts.map +0 -1
  116. package/dist/server/src/controllers/ai/index.d.ts +0 -1
  117. package/dist/server/src/controllers/ai/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n .min(1, errorsTrads.min.id)\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","message","getTrad","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
@@ -119,7 +119,11 @@ const attributeTypes = {
119
119
  default: validators.default(),
120
120
  unique: validators.unique(),
121
121
  required: validators.required(),
122
- enum: yup.array().of(yup.string()).min(1, translatedErrors.min.id).test({
122
+ enum: yup.array().of(yup.string())/**
123
+ * CTB renders field errors as `formatMessage({ id: error })` with no values, so the
124
+ * message must not interpolate anything — the generic `errorsTrads.min` id would leak
125
+ * its `{min}` placeholder. See strapi/strapi#19030.
126
+ */ .min(1, getTrad('error.validation.enum-empty')).test({
123
127
  name: 'areEnumValuesUnique',
124
128
  message: getTrad('error.validation.enum-duplicate'),
125
129
  test (values) {
@@ -217,6 +221,7 @@ const attributeTypes = {
217
221
  target: yup.string().required(translatedErrors.required.id),
218
222
  relation: yup.string().required(),
219
223
  type: yup.string().required(),
224
+ required: validators.required(),
220
225
  targetAttribute: yup.lazy(()=>{
221
226
  const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);
222
227
  if (relationType === 'oneWay' || relationType === 'manyWay') {
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n .min(1, errorsTrads.min.id)\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","message","getTrad","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
1
+ {"version":3,"file":"types.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
@@ -98,8 +98,9 @@ const createTextShape = (usedAttributeNames, reservedNames)=>{
98
98
  message: getTrad.getTrad('error.validation.regex'),
99
99
  test (value) {
100
100
  try {
101
- return new RegExp(value || '') !== null;
102
- } catch (e) {
101
+ new RegExp(value || '');
102
+ return true;
103
+ } catch {
103
104
  return false;
104
105
  }
105
106
  }
@@ -121,8 +122,9 @@ const createStringShape = (usedAttributeNames, reservedNames)=>{
121
122
  message: getTrad.getTrad('error.validation.regex'),
122
123
  test (value) {
123
124
  try {
124
- return new RegExp(value || '') !== null;
125
- } catch (e) {
125
+ new RegExp(value || '');
126
+ return true;
127
+ } catch {
126
128
  return false;
127
129
  }
128
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../../../../../../admin/src/components/FormModal/attributes/validation/common.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: { attributes?: Record<string, unknown> },\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n maxLengthString: () =>\n yup\n .number()\n .integer()\n .positive(getTrad('error.validation.positive'))\n .max(255, 'Maximum length for short text fields is 255 characters')\n .nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\nconst createStringShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLengthString(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = this.parent as { max?: T };\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n"],"names":["NAME_REGEX","alreadyUsedAttributeNames","usedNames","name","message","errorsTrads","unique","id","test","value","snakeCaseKey","snakeCase","some","existingKey","isNameAllowed","reservedNames","getTrad","validators","default","yup","string","nullable","max","number","integer","min","when","schema","maxLength","positive","maxLengthString","minLength","matches","regex","required","boolean","type","createTextShape","usedAttributeNames","shape","RegExp","e","createStringShape","isMinSuperiorThanMax","parent","Number","isNaN","toNumber"],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sources":["../../../../../../admin/src/components/FormModal/attributes/validation/common.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: { attributes?: Record<string, unknown> },\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n maxLengthString: () =>\n yup\n .number()\n .integer()\n .positive(getTrad('error.validation.positive'))\n .max(255, 'Maximum length for short text fields is 255 characters')\n .nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n new RegExp(value || '');\n return true;\n } catch {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\nconst createStringShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLengthString(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n new RegExp(value || '');\n return true;\n } catch {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = this.parent as { max?: T };\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n"],"names":["NAME_REGEX","alreadyUsedAttributeNames","usedNames","name","message","errorsTrads","unique","id","test","value","snakeCaseKey","snakeCase","some","existingKey","isNameAllowed","reservedNames","getTrad","validators","default","yup","string","nullable","max","number","integer","min","when","schema","maxLength","positive","maxLengthString","minLength","matches","regex","required","boolean","type","createTextShape","usedAttributeNames","shape","RegExp","createStringShape","isMinSuperiorThanMax","parent","Number","isNaN","toNumber"],"mappings":"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"}
@@ -73,8 +73,9 @@ const createTextShape = (usedAttributeNames, reservedNames)=>{
73
73
  message: getTrad('error.validation.regex'),
74
74
  test (value) {
75
75
  try {
76
- return new RegExp(value || '') !== null;
77
- } catch (e) {
76
+ new RegExp(value || '');
77
+ return true;
78
+ } catch {
78
79
  return false;
79
80
  }
80
81
  }
@@ -96,8 +97,9 @@ const createStringShape = (usedAttributeNames, reservedNames)=>{
96
97
  message: getTrad('error.validation.regex'),
97
98
  test (value) {
98
99
  try {
99
- return new RegExp(value || '') !== null;
100
- } catch (e) {
100
+ new RegExp(value || '');
101
+ return true;
102
+ } catch {
101
103
  return false;
102
104
  }
103
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.mjs","sources":["../../../../../../admin/src/components/FormModal/attributes/validation/common.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: { attributes?: Record<string, unknown> },\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n maxLengthString: () =>\n yup\n .number()\n .integer()\n .positive(getTrad('error.validation.positive'))\n .max(255, 'Maximum length for short text fields is 255 characters')\n .nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\nconst createStringShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLengthString(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = this.parent as { max?: T };\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n"],"names":["NAME_REGEX","alreadyUsedAttributeNames","usedNames","name","message","errorsTrads","unique","id","test","value","snakeCaseKey","snakeCase","some","existingKey","isNameAllowed","reservedNames","getTrad","validators","default","yup","string","nullable","max","number","integer","min","when","schema","maxLength","positive","maxLengthString","minLength","matches","regex","required","boolean","type","createTextShape","usedAttributeNames","shape","RegExp","e","createStringShape","isMinSuperiorThanMax","parent","Number","isNaN","toNumber"],"mappings":"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"}
1
+ {"version":3,"file":"common.mjs","sources":["../../../../../../admin/src/components/FormModal/attributes/validation/common.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: { attributes?: Record<string, unknown> },\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n maxLengthString: () =>\n yup\n .number()\n .integer()\n .positive(getTrad('error.validation.positive'))\n .max(255, 'Maximum length for short text fields is 255 characters')\n .nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n new RegExp(value || '');\n return true;\n } catch {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\nconst createStringShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLengthString(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n new RegExp(value || '');\n return true;\n } catch {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = this.parent as { max?: T };\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n"],"names":["NAME_REGEX","alreadyUsedAttributeNames","usedNames","name","message","errorsTrads","unique","id","test","value","snakeCaseKey","snakeCase","some","existingKey","isNameAllowed","reservedNames","getTrad","validators","default","yup","string","nullable","max","number","integer","min","when","schema","maxLength","positive","maxLengthString","minLength","matches","regex","required","boolean","type","createTextShape","usedAttributeNames","shape","RegExp","createStringShape","isMinSuperiorThanMax","parent","Number","isNaN","toNumber"],"mappings":"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"}
@@ -171,7 +171,7 @@ const forms = {
171
171
  base ({ data, type, step, attributes }) {
172
172
  try {
173
173
  return form.attributesForm.base[type](data, step ?? '', attributes);
174
- } catch (err) {
174
+ } catch {
175
175
  return commonBaseForm.commonBaseForm;
176
176
  }
177
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"forms.js","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { Component, ContentType } from '../../../types';\nimport type { FormAPI } from '../../../utils/formAPI';\nimport type { FormModalData } from '../reducer';\nimport type { Internal } from '@strapi/types';\n\ntype AttributeType = keyof typeof attributeTypes;\ntype CustomFieldFormOptions = Parameters<typeof addItemsToFormSection>[0];\ntype CustomFieldValidator = Parameters<FormAPI['makeCustomFieldValidator']>[1];\ntype FormSection = FormTypeOptions[number];\ntype FormItem = FormSection['items'][number];\n\ntype CustomField = {\n type: AttributeType;\n options?: {\n base?: CustomFieldFormOptions;\n advanced?: CustomFieldFormOptions;\n validator?: CustomFieldValidator;\n };\n};\n\nexport type SchemaParams = {\n schemaAttributes: Attribute[];\n attributeType: AttributeType;\n customFieldValidator: CustomFieldValidator;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: SchemaData;\n ctbFormsAPI: FormAPI;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: FormModalData;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string | null;\n attributes: Attribute[];\n extensions: FormAPI;\n forTarget: string;\n};\n\ntype CustomFieldFormParams = {\n customField: CustomField;\n data?: FormModalData;\n step?: string | null;\n extensions: FormAPI;\n} & Record<string, unknown>;\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: Pick<CustomFieldFormParams, 'customField'>) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: CustomFieldFormParams) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n }) as FormItem[] | undefined;\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs !== undefined) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: { attributes?: Attribute[] } | null | undefined,\n attributeType: AttributeType,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: FormAPI['makeValidator'];\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options as never\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data as never, step ?? '')\n .sections as FormTypeOptions;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n }) as FormItem[];\n\n let injected = false;\n\n const sections = baseForm.reduce<FormTypeOptions>((acc, current) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data as never, step ?? '', attributes as never);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: string[];\n },\n extensions: FormAPI,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: { actionType?: string }) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: { extensions: FormAPI }) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: string[];\n },\n isEditing = false,\n components: Record<Internal.UID.Component, Component>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components)\n .map((component) => component?.collectionName)\n .filter((collectionName): collectionName is string => collectionName !== undefined);\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: { data: FormModalData }) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","undefined","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":";;;;;;;;;;;;;;;;MA8DaA,KAAAA,GAAQ;IACnBC,WAAAA,EAAa;AACXC,QAAAA,MAAAA,CAAAA,CAAO,EACLC,gBAAgB,EAChBC,aAAa,EACbC,oBAAoB,EACpBC,aAAa,EACbC,UAAU,EACVC,WAAW,EACE,EAAA;YACb,MAAMC,kBAAAA,GAAqBC,4CAAsBP,gBAAAA,EAAkBI,UAAAA,CAAAA;YAEnE,IAAII,cAAAA;AACJ,YAAA,IAAIP,kBAAkB,UAAA,EAAY;gBAChCO,cAAAA,GAAiBC,oBAAc,CAACR,aAAAA,CAAc,CAC5CK,oBACAH,aAAAA,CAAcO,UAAU,EACxB,EAAE,EACF;AAAEC,oBAAAA,WAAAA,EAAa,EAAC;AAAGC,oBAAAA,YAAAA,EAAc;AAAG,iBAAA,CAAA;YAExC,CAAA,MAAO;AACLJ,gBAAAA,cAAAA,GAAiBC,oBAAc,CAACR,aAAAA,CAAc,CAC5CK,kBAAAA,EACAH,cAAcO,UAAU,CAAA;AAE5B,YAAA;YAEA,OAAOL,WAAAA,CAAYQ,wBAAwB,CACzCL,cAAAA,EACAN,sBACAI,kBAAAA,EACAH,aAAAA,CAAcO,UAAU,EACxBN,UAAAA,CAAAA;AAEJ,QAAA,CAAA;QACAU,IAAAA,EAAM;YACJC,IAAAA,CAAAA,CAAK,EAAEjB,WAAW,EAA8C,EAAA;;AAE9D,gBAAA,MAAMkB,QAAAA,GAA4B;AAAC,oBAAA;wBAAEC,YAAAA,EAAc,IAAA;wBAAMC,KAAAA,EAAO;AAACC,4BAAAA;AAAU;AAAC;AAAE,iBAAA;gBAE9E,IAAIrB,WAAAA,CAAYsB,OAAO,EAAEL,IAAAA,EAAM;AAC7BM,oBAAAA,2CAAAA,CAAsBvB,WAAAA,CAAYsB,OAAO,CAACL,IAAI,EAAEC,QAAAA,CAAAA;AAClD,gBAAA;gBAEA,OAAO;AAAEA,oBAAAA;AAAS,iBAAA;AACpB,YAAA,CAAA;YACAM,QAAAA,CAAAA,CAAS,EAAExB,WAAW,EAAEyB,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAE,GAAGC,IAAAA,EAA6B,EAAA;;AAE9E,gBAAA,MAAMV,QAAAA,GAA4B;AAChC,oBAAA;wBAAEC,YAAAA,EAAc,IAAA;AAAMC,wBAAAA,KAAAA,EAAO;AAAG,qBAAA;AAChC,oBAAA;wBACED,YAAAA,EAAc;4BAAEU,EAAAA,EAAI,kCAAA;4BAAoCC,cAAAA,EAAgB;AAAa,yBAAA;wBACrFV,KAAAA,EAAO;AACL,4BAAA;gCACEW,IAAAA,EAAM,YAAA;gCACNC,IAAAA,EAAM,gBAAA;gCACNC,SAAAA,EAAW;oCACTJ,EAAAA,EAAI,gCAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA;gCACAI,WAAAA,EAAa;oCACXL,EAAAA,EAAI,+BAAA;oCACJC,cAAAA,EAAgB;AAClB;AACF;AACD;AACH;AACD,iBAAA;gBACD,MAAMK,cAAAA,GAAiBR,UAAAA,CAAWS,eAAe,CAAC;AAAC,oBAAA,WAAA;AAAapC,oBAAAA,WAAAA,CAAYgC;iBAAK,EAAE;AACjFP,oBAAAA,IAAAA;AACAO,oBAAAA,IAAAA,EAAMhC,YAAYgC,IAAI;AACtBN,oBAAAA,IAAAA;AACA1B,oBAAAA,WAAAA;AACA,oBAAA,GAAG4B;AACL,iBAAA,CAAA;gBAEA,IAAI5B,WAAAA,CAAYsB,OAAO,EAAEE,QAAAA,EAAU;AACjCD,oBAAAA,2CAAAA,CAAsBvB,WAAAA,CAAYsB,OAAO,CAACE,QAAQ,EAAEN,QAAAA,CAAAA;AACtD,gBAAA;AAEA,gBAAA,IAAIiB,mBAAmBE,SAAAA,EAAW;AAChC,oBAAA,MAAMC,gBAAAA,GAAmB;wBACvBnB,YAAAA,EAAc;AACZU,4BAAAA,EAAAA,EAAIU,eAAAA,CAAQ,oDAAA,CAAA;4BACZT,cAAAA,EAAgB;AAClB,yBAAA;wBACAV,KAAAA,EAAOe;AACT,qBAAA;AAEAjB,oBAAAA,QAAAA,CAASsB,IAAI,CAACF,gBAAAA,CAAAA;AAChB,gBAAA;gBAEA,OAAO;AAAEpB,oBAAAA;AAAS,iBAAA;AACpB,YAAA;AACF;AACF,KAAA;IACAuB,SAAAA,EAAW;QACTxC,MAAAA,CAAAA,CACEyC,aAA8D,EAC9DvC,aAA4B,EAC5BE,aAEC,EACDsC,uCAAyD,EACzDrB,OAAmB,EACnBK,UAEC,EAAA;;YAGD,MAAMf,UAAAA,GAA+B8B,aAAAA,EAAe9B,UAAAA,IAAc,EAAE;YACpE,MAAMJ,kBAAAA,GAAqBC,4CAAsBG,UAAAA,EAAYU,OAAAA,CAAAA;YAE7D,IAAI;gBACF,MAAMZ,cAAAA,GAAiBC,oBAAc,CAACR,aAAAA,CAAc,CAClDK,kBAAAA,EACAH,aAAAA,CAAcO,UAAU,EACxB+B,uCAAAA,EACArB,OAAAA,CAAAA;gBAGF,OAAOK,UAAAA,CAAWiB,aAAa,CAC7B;AAAC,oBAAA,WAAA;AAAazC,oBAAAA;AAAc,iBAAA,EAC5BO,cAAAA,EACAF,kBAAAA,EACAH,aAAAA,CAAcO,UAAU,EACxB+B,uCAAAA,EACArB,OAAAA,CAAAA;AAEJ,YAAA,CAAA,CAAE,OAAOuB,GAAAA,EAAK;gBACZC,OAAAA,CAAQC,KAAK,CAAC,wBAAA,EAA0BF,GAAAA,CAAAA;AAExC,gBAAA,OAAOlC,oBAAAA,CAAeqC,OAAO,CAACxC,kBAAAA,EAAoBH,cAAcO,UAAU,CAAA;AAC5E,YAAA;AACF,QAAA,CAAA;QACAI,IAAAA,EAAM;YACJQ,QAAAA,CAAAA,CAAS,EAAEC,IAAI,EAAEO,IAAI,EAAEN,IAAI,EAAEC,UAAU,EAAE,GAAGC,IAAAA,EAAwB,EAAA;gBAClE,IAAI;oBACF,MAAMqB,QAAAA,GAAWC,oBAAe1B,QAAQ,CAACQ,KAAK,CAACP,IAAAA,EAAeC,IAAAA,IAAQ,EAAA,CAAA,CACnER,QAAQ;oBACX,MAAMiC,UAAAA,GAAaxB,UAAAA,CAAWS,eAAe,CAAC;AAAC,wBAAA,WAAA;AAAaJ,wBAAAA;qBAAK,EAAE;AACjEP,wBAAAA,IAAAA;AACAO,wBAAAA,IAAAA;AACAN,wBAAAA,IAAAA;wBACA1B,WAAAA,EAAa,IAAA;AACb,wBAAA,GAAG4B;AACL,qBAAA,CAAA;AAEA,oBAAA,IAAIwB,QAAAA,GAAW,KAAA;AAEf,oBAAA,MAAMlC,QAAAA,GAAW+B,QAAAA,CAASI,MAAM,CAAkB,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;AACtD,wBAAA,IAAIA,OAAAA,CAAQpC,YAAY,KAAK,IAAA,IAAQiC,QAAAA,EAAU;AAC7CE,4BAAAA,GAAAA,CAAId,IAAI,CAACe,OAAAA,CAAAA;wBACX,CAAA,MAAO;AACLD,4BAAAA,GAAAA,CAAId,IAAI,CAAC;AAAE,gCAAA,GAAGe,OAAO;gCAAEnC,KAAAA,EAAO;AAAImC,oCAAAA,GAAAA,OAAAA,CAAQnC,KAAK;AAAK+B,oCAAAA,GAAAA;AAAW;AAAC,6BAAA,CAAA;4BAChEC,QAAAA,GAAW,IAAA;AACb,wBAAA;wBAEA,OAAOE,GAAAA;AACT,oBAAA,CAAA,EAAG,EAAE,CAAA;;;;;;;;;oBAUL,OAAO;AAAEpC,wBAAAA;AAAS,qBAAA;AACpB,gBAAA,CAAA,CAAE,OAAO2B,GAAAA,EAAK;AACZC,oBAAAA,OAAAA,CAAQC,KAAK,CAACF,GAAAA,CAAAA;oBAEd,OAAO;AAAE3B,wBAAAA,QAAAA,EAAU;AAAG,qBAAA;AACxB,gBAAA;AACF,YAAA,CAAA;YACAD,IAAAA,CAAAA,CAAK,EAAEQ,IAAI,EAAEO,IAAI,EAAEN,IAAI,EAAEd,UAAU,EAAgB,EAAA;gBACjD,IAAI;AACF,oBAAA,OAAOsC,oBAAejC,IAAI,CAACe,KAAK,CAACP,IAAAA,EAAeC,QAAQ,EAAA,EAAId,UAAAA,CAAAA;AAC9D,gBAAA,CAAA,CAAE,OAAOiC,GAAAA,EAAK;oBACZ,OAAOW,6BAAAA;AACT,gBAAA;AACF,YAAA;AACF;AACF,KAAA;IACAC,WAAAA,EAAa;QACXxD,MAAAA,CAAAA,CACEyD,iBAAgC,EAChCC,SAAkB,EAClBC,KAA+B,EAC/BvD,aAEC,EACDsB,UAAmB,EACnBkC,YAA2D,EAAA;AAE3D,YAAA,MAAMC,gBAAgBC,MAAAA,CAAOC,MAAM,CAACH,YAAAA,CAAAA,CAAcI,GAAG,CAAC,CAACR,WAAAA,GAAAA;gBACrD,OAAOA,WAAAA,CAAYS,IAAI,CAACC,YAAY;AACtC,YAAA,CAAA,CAAA;AAEA,YAAA,MAAMC,cAAcL,MAAAA,CAAOC,MAAM,CAACH,YAAAA,CAAAA,CAAcI,GAAG,CAAC,CAACR,WAAAA,GAAAA;gBACnD,OAAOA,WAAAA,EAAaS,MAAMG,UAAAA,IAAc,EAAA;AAC1C,YAAA,CAAA,CAAA;YAEA,MAAMC,UAAAA,GAAaX,YACfD,iBAAAA,CAAkBa,MAAM,CAAC,CAACC,GAAAA,GAAQA,QAAQZ,KAAAA,CAAAA,GAC1CF,iBAAAA;AAEJ,YAAA,MAAMe,kBAAAA,GAAqBd,SAAAA,GACvBG,aAAAA,CAAcS,MAAM,CAAC,CAACG,QAAAA,GAAAA;AACpB,gBAAA,MAAM,EAAER,IAAI,EAAE,GAAGL,YAAY,CAACD,KAAAA,CAAM;gBAEpC,OAAOM,IAAAA,CAAKC,YAAY,KAAKO,QAAAA;YAC/B,CAAA,CAAA,GACAZ,aAAAA;AAEJ,YAAA,MAAMa,gBAAAA,GAAmBhB,SAAAA,GACrBS,WAAAA,CAAYG,MAAM,CAAC,CAACF,UAAAA,GAAAA;AAClB,gBAAA,MAAM,EAAEH,IAAI,EAAE,GAAGL,YAAY,CAACD,KAAAA,CAAM;gBAEpC,OAAOM,IAAAA,CAAKG,UAAU,KAAKA,UAAAA;YAC7B,CAAA,CAAA,GACAD,WAAAA;;AAGJ,YAAA,MAAMQ,kBAAkBb,MAAAA,CAAOC,MAAM,CAACH,YAAAA,CAAAA,CAAcI,GAAG,CAAC,CAACR,WAAAA,GAAAA;AACvD,gBAAA,OAAOA,aAAaoB,cAAAA,IAAkB,EAAA;AACxC,YAAA,CAAA,CAAA;AAEA,YAAA,MAAMC,oBAAAA,GAAuBnB,SAAAA,GACzBiB,eAAAA,CAAgBL,MAAM,CAAC,CAACM,cAAAA,GAAAA;AACtB,gBAAA,MAAM,EAAEA,cAAAA,EAAgBE,qBAAqB,EAAE,GAAGlB,YAAY,CAACD,KAAAA,CAAM;AAErE,gBAAA,OAAOiB,cAAAA,KAAmBE,qBAAAA;YAC5B,CAAA,CAAA,GACAH,eAAAA;AAEJ,YAAA,MAAMI,mBAAmBC,+CAAAA,CAAwB;gBAC/CC,oBAAAA,EAAsBZ,UAAAA;AACtBa,gBAAAA,cAAAA,EAAgB9E,cAAc+E,MAAM;gBACpCtB,aAAAA,EAAeW,kBAAAA;gBACfL,WAAAA,EAAaO,gBAAAA;gBACbC,eAAAA,EAAiBE;AACnB,aAAA,CAAA;;YAGA,OAAOnD,UAAAA,CAAWiB,aAAa,CAC7B;AAAC,gBAAA;AAAc,aAAA,EACfoC,gBAAAA,EACAV,UAAAA,EACAjE,aAAAA,CAAc+E,MAAM,EACpBX,kBAAAA,EACAE,gBAAAA,CAAAA;AAEJ,QAAA,CAAA;QACA3D,IAAAA,EAAM;YACJC,IAAAA,CAAAA,CAAK,EAAEoE,UAAU,EAA2B,EAAA;AAC1C,gBAAA,IAAIA,eAAe,QAAA,EAAU;oBAC3B,OAAOC,+BAAAA,CAAgBrE,IAAI,CAACsE,MAAM,EAAA;AACpC,gBAAA;gBAEA,OAAOD,+BAAAA,CAAgBrE,IAAI,CAACuE,IAAI,EAAA;AAClC,YAAA,CAAA;YACAhE,QAAAA,CAAAA,CAAS,EAAEG,UAAU,EAA2B,EAAA;AAC9C,gBAAA,MAAMsB,QAAAA,GAAWqC,+BAAAA,CAAgB9D,QAAQ,CACtCwB,OAAO,EAAA,CACP9B,QAAQ,CAAC+C,GAAG,CAAC,CAACwB,OAAAA,GAAYA,OAAAA,CAAQrE,KAAK,EACvCsE,IAAI,EAAA;gBACP,MAAMvC,UAAAA,GAAaxB,UAAAA,CAAWS,eAAe,CAAC;AAAC,oBAAA;AAAc,iBAAA,CAAA;gBAE7D,OAAO;oBACLlB,QAAAA,EAAU;AACR,wBAAA;4BACEE,KAAAA,EAAO;AAAI6B,gCAAAA,GAAAA,QAAAA;AAAaE,gCAAAA,GAAAA;AAAW;AACrC;AACD;AACH,iBAAA;AACF,YAAA;AACF;AACF,KAAA;IACAwC,SAAAA,EAAW;AACT1F,QAAAA,MAAAA,CAAAA,CACE2F,sBAAqD,EACrDC,iBAAyB,EACzBxF,aAEC,EACDsD,SAAAA,GAAY,KAAK,EACjBmC,UAAqD,EACrDC,oBAA4B,EAC5BC,WAA0C,IAAI,EAAA;YAE9C,MAAM1B,UAAAA,GAAaX,YACfiC,sBAAAA,CAAuBrB,MAAM,CAAC,CAACC,GAAAA,GAAgCA,QAAQwB,QAAAA,CAAAA,GACvEJ,sBAAAA;AACJ,YAAA,MAAMhB,eAAAA,GAAkBb,MAAAA,CAAOC,MAAM,CAAC8B,YACnC7B,GAAG,CAAC,CAAC0B,SAAAA,GAAcA,WAAWd,cAAAA,CAAAA,CAC9BN,MAAM,CAAC,CAACM,iBAA6CA,cAAAA,KAAmBxC,SAAAA,CAAAA;YAE3E,MAAM0C,qBAAAA,GAAwBkB,mDAC5BF,oBAAAA,EACAF,iBAAAA,CAAAA;YAGF,MAAMf,oBAAAA,GAAuBnB,YACzBiB,eAAAA,CAAgBL,MAAM,CAAC,CAACM,cAAAA,GAAmBA,mBAAmBE,qBAAAA,CAAAA,GAC9DH,eAAAA;AAEJ,YAAA,OAAOsB,4CACL5B,UAAAA,EACAjE,aAAAA,CAAc+E,MAAM,EACpBS,mBACAf,oBAAAA,EACAC,qBAAAA,CAAAA;AAEJ,QAAA,CAAA;QACA/D,IAAAA,EAAM;AACJQ,YAAAA,QAAAA,CAAAA,GAAAA;gBACE,OAAO;AACLN,oBAAAA,QAAAA,EAAUiF,4BAAc3E,QAAQ;AAClC,iBAAA;AACF,YAAA,CAAA;AACAP,YAAAA,IAAAA,CAAAA,GAAAA;gBACE,OAAO;AACLC,oBAAAA,QAAAA,EAAUiF,4BAAclF,IAAI;AAC9B,iBAAA;AACF,YAAA;AACF;AACF,KAAA;IACAmF,yBAAAA,EAA2B;QACzBpF,IAAAA,EAAM;AACJQ,YAAAA,QAAAA,CAAAA,GAAAA;gBACE,OAAO6E,+BAAAA,CAAgB7E,QAAQ,CAACwB,OAAO,EAAA;AACzC,YAAA,CAAA;YACA/B,IAAAA,CAAAA,CAAK,EAAEQ,IAAI,EAA2B,EAAA;gBACpC,MAAM6E,mBAAAA,GAAsB7E,MAAM8E,eAAAA,IAAmB,KAAA;AAErD,gBAAA,IAAID,mBAAAA,EAAqB;oBACvB,OAAOD,+BAAAA,CAAgBpF,IAAI,CAACsF,eAAe,EAAA;AAC7C,gBAAA;gBAEA,OAAOF,+BAAAA,CAAgBpF,IAAI,CAAC+B,OAAO,EAAA;AACrC,YAAA;AACF;AACF;AACF;;;;"}
1
+ {"version":3,"file":"forms.js","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { Component, ContentType } from '../../../types';\nimport type { FormAPI } from '../../../utils/formAPI';\nimport type { FormModalData } from '../reducer';\nimport type { Internal } from '@strapi/types';\n\ntype AttributeType = keyof typeof attributeTypes;\ntype CustomFieldFormOptions = Parameters<typeof addItemsToFormSection>[0];\ntype CustomFieldValidator = Parameters<FormAPI['makeCustomFieldValidator']>[1];\ntype FormSection = FormTypeOptions[number];\ntype FormItem = FormSection['items'][number];\n\ntype CustomField = {\n type: AttributeType;\n options?: {\n base?: CustomFieldFormOptions;\n advanced?: CustomFieldFormOptions;\n validator?: CustomFieldValidator;\n };\n};\n\nexport type SchemaParams = {\n schemaAttributes: Attribute[];\n attributeType: AttributeType;\n customFieldValidator: CustomFieldValidator;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: SchemaData;\n ctbFormsAPI: FormAPI;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: FormModalData;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string | null;\n attributes: Attribute[];\n extensions: FormAPI;\n forTarget: string;\n};\n\ntype CustomFieldFormParams = {\n customField: CustomField;\n data?: FormModalData;\n step?: string | null;\n extensions: FormAPI;\n} & Record<string, unknown>;\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: Pick<CustomFieldFormParams, 'customField'>) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: CustomFieldFormParams) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n }) as FormItem[] | undefined;\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs !== undefined) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: { attributes?: Attribute[] } | null | undefined,\n attributeType: AttributeType,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: FormAPI['makeValidator'];\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options as never\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data as never, step ?? '')\n .sections as FormTypeOptions;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n }) as FormItem[];\n\n let injected = false;\n\n const sections = baseForm.reduce<FormTypeOptions>((acc, current) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data as never, step ?? '', attributes as never);\n } catch {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: string[];\n },\n extensions: FormAPI,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: { actionType?: string }) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: { extensions: FormAPI }) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: string[];\n },\n isEditing = false,\n components: Record<Internal.UID.Component, Component>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components)\n .map((component) => component?.collectionName)\n .filter((collectionName): collectionName is string => collectionName !== undefined);\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: { data: FormModalData }) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","undefined","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":"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"}
@@ -169,7 +169,7 @@ const forms = {
169
169
  base ({ data, type, step, attributes }) {
170
170
  try {
171
171
  return attributesForm.base[type](data, step ?? '', attributes);
172
- } catch (err) {
172
+ } catch {
173
173
  return commonBaseForm;
174
174
  }
175
175
  }