@strapi/content-type-builder 5.50.0 → 5.50.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/admin/components/AIChat/Chat.js +2 -4
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -1
  3. package/dist/admin/components/AIChat/Chat.mjs +2 -4
  4. package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/UploadFigmaModal.js +1 -1
  6. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
  8. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/components/Messages/Message.js +8 -3
  10. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  11. package/dist/admin/components/AIChat/components/Messages/Message.mjs +8 -3
  12. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/lib/aiClient.js +8 -2
  14. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
  15. package/dist/admin/components/AIChat/lib/aiClient.mjs +8 -2
  16. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +0 -3
  18. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
  19. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +0 -3
  20. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +9 -7
  22. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  23. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +9 -7
  24. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/providers/SchemaProvider.js +1 -1
  26. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  27. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +1 -1
  28. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  29. package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
  30. package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
  31. package/dist/admin/components/AttributeIcon.js +1 -1
  32. package/dist/admin/components/AttributeIcon.js.map +1 -1
  33. package/dist/admin/components/AttributeIcon.mjs +1 -1
  34. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  35. package/dist/admin/components/BooleanDefaultValueSelect.js +3 -2
  36. package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
  37. package/dist/admin/components/BooleanDefaultValueSelect.mjs +3 -2
  38. package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
  39. package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
  40. package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
  41. package/dist/admin/components/CTBSession/useCTBTracking.js +3 -3
  42. package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
  43. package/dist/admin/components/CTBSession/useCTBTracking.mjs +3 -3
  44. package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
  45. package/dist/admin/components/CheckboxWithNumberField.js +3 -2
  46. package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
  47. package/dist/admin/components/CheckboxWithNumberField.mjs +3 -2
  48. package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
  49. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  50. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  51. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +160 -162
  52. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  53. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +160 -162
  54. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  55. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +1 -1
  56. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  57. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +1 -1
  58. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  59. package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
  60. package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
  61. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +6 -5
  62. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  63. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +6 -5
  64. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  65. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
  66. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
  67. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  68. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  69. package/dist/admin/components/DataManager/DataManagerProvider.js +16 -4
  70. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  71. package/dist/admin/components/DataManager/DataManagerProvider.mjs +16 -4
  72. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  73. package/dist/admin/components/DataManager/reducer.js +2 -2
  74. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  75. package/dist/admin/components/DataManager/reducer.mjs +2 -2
  76. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  77. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
  78. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
  79. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
  80. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
  81. package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
  82. package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
  83. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  84. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  85. package/dist/admin/components/FormModal/FormModal.js +91 -71
  86. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  87. package/dist/admin/components/FormModal/FormModal.mjs +91 -70
  88. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  89. package/dist/admin/components/FormModal/attributes/ConditionForm.js +20 -17
  90. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  91. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +20 -17
  92. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  93. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  94. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  95. package/dist/admin/components/FormModal/forms/forms.js +4 -6
  96. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  97. package/dist/admin/components/FormModal/forms/forms.mjs +4 -6
  98. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  99. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  100. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  101. package/dist/admin/components/FormModal/reducer.js +9 -6
  102. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  103. package/dist/admin/components/FormModal/reducer.mjs +9 -6
  104. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  105. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +3 -3
  106. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
  107. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +3 -3
  108. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
  109. package/dist/admin/components/FormModal/utils/getFormInputNames.js +1 -1
  110. package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
  111. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +1 -1
  112. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
  113. package/dist/admin/components/FormModal/utils/relations.js +2 -2
  114. package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
  115. package/dist/admin/components/FormModal/utils/relations.mjs +2 -2
  116. package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
  117. package/dist/admin/components/FormModalHeader.js.map +1 -1
  118. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  119. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
  120. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
  121. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +13 -13
  122. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
  123. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +13 -13
  124. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
  125. package/dist/admin/components/GenericInputs.js +24 -12
  126. package/dist/admin/components/GenericInputs.js.map +1 -1
  127. package/dist/admin/components/GenericInputs.mjs +24 -12
  128. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  129. package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
  130. package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
  131. package/dist/admin/components/PluralName.js.map +1 -1
  132. package/dist/admin/components/PluralName.mjs.map +1 -1
  133. package/dist/admin/components/Relation/Relation.js +3 -3
  134. package/dist/admin/components/Relation/Relation.js.map +1 -1
  135. package/dist/admin/components/Relation/Relation.mjs +3 -3
  136. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  137. package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
  138. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  139. package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
  140. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  141. package/dist/admin/components/SelectCategory.js +6 -0
  142. package/dist/admin/components/SelectCategory.js.map +1 -1
  143. package/dist/admin/components/SelectCategory.mjs +6 -0
  144. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  145. package/dist/admin/components/SelectComponent.js +1 -1
  146. package/dist/admin/components/SelectComponent.js.map +1 -1
  147. package/dist/admin/components/SelectComponent.mjs +1 -1
  148. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  149. package/dist/admin/components/SingularName.js.map +1 -1
  150. package/dist/admin/components/SingularName.mjs.map +1 -1
  151. package/dist/admin/components/TabForm.js +50 -51
  152. package/dist/admin/components/TabForm.js.map +1 -1
  153. package/dist/admin/components/TabForm.mjs +51 -52
  154. package/dist/admin/components/TabForm.mjs.map +1 -1
  155. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +1 -2
  156. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +1 -1
  157. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +6 -2
  158. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +1 -1
  159. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +5 -5
  160. package/dist/admin/src/components/AllowedTypesSelect.d.ts +3 -3
  161. package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +3 -3
  162. package/dist/admin/src/components/BooleanRadioGroup.d.ts +2 -2
  163. package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +1 -1
  164. package/dist/admin/src/components/CheckboxWithNumberField.d.ts +6 -4
  165. package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +3 -2
  166. package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +3 -2
  167. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +13 -11
  168. package/dist/admin/src/components/DataManager/reducer.d.ts +14 -10
  169. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +8 -8
  170. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -3
  171. package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -1
  172. package/dist/admin/src/components/DraftAndPublishToggle.d.ts +1 -6
  173. package/dist/admin/src/components/DynamicZoneList.d.ts +2 -2
  174. package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +3 -2
  175. package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +3 -1
  176. package/dist/admin/src/components/FormModal/forms/forms.d.ts +59 -26
  177. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +12 -2
  178. package/dist/admin/src/components/FormModal/reducer.d.ts +104 -32
  179. package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -1
  180. package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -1
  181. package/dist/admin/src/components/FormModal/utils/relations.d.ts +2 -2
  182. package/dist/admin/src/components/FormModalHeader.d.ts +5 -8
  183. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +2 -2
  184. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +17 -1
  185. package/dist/admin/src/components/GenericInputs.d.ts +12 -7
  186. package/dist/admin/src/components/IconPicker/IconPicker.d.ts +2 -7
  187. package/dist/admin/src/components/PluralName.d.ts +6 -14
  188. package/dist/admin/src/components/Relation/Relation.d.ts +12 -3
  189. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +3 -2
  190. package/dist/admin/src/components/SelectCategory.d.ts +3 -12
  191. package/dist/admin/src/components/SelectComponent.d.ts +8 -7
  192. package/dist/admin/src/components/SingularName.d.ts +5 -8
  193. package/dist/admin/src/components/TabForm.d.ts +38 -7
  194. package/dist/admin/src/types.d.ts +20 -12
  195. package/dist/admin/src/utils/conditions.d.ts +13 -4
  196. package/dist/admin/src/utils/formAPI.d.ts +38 -33
  197. package/dist/admin/src/utils/getRelationType.d.ts +1 -1
  198. package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
  199. package/dist/admin/utils/conditions.js +38 -28
  200. package/dist/admin/utils/conditions.js.map +1 -1
  201. package/dist/admin/utils/conditions.mjs +37 -28
  202. package/dist/admin/utils/conditions.mjs.map +1 -1
  203. package/dist/admin/utils/formAPI.js +9 -6
  204. package/dist/admin/utils/formAPI.js.map +1 -1
  205. package/dist/admin/utils/formAPI.mjs +9 -6
  206. package/dist/admin/utils/formAPI.mjs.map +1 -1
  207. package/dist/admin/utils/getRelationType.js +3 -0
  208. package/dist/admin/utils/getRelationType.js.map +1 -1
  209. package/dist/admin/utils/getRelationType.mjs +3 -0
  210. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  211. package/dist/admin/utils/getYupInnerErrors.js +6 -4
  212. package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
  213. package/dist/admin/utils/getYupInnerErrors.mjs +6 -4
  214. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
  215. package/dist/admin/utils/parseNumberInputValue.js +15 -0
  216. package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
  217. package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
  218. package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
  219. package/dist/server/controllers/validation/relations.js +1 -1
  220. package/dist/server/controllers/validation/relations.js.map +1 -1
  221. package/dist/server/controllers/validation/relations.mjs +1 -1
  222. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  223. package/dist/server/controllers/validation/types.js +4 -3
  224. package/dist/server/controllers/validation/types.js.map +1 -1
  225. package/dist/server/controllers/validation/types.mjs +4 -3
  226. package/dist/server/controllers/validation/types.mjs.map +1 -1
  227. package/package.json +7 -7
@@ -52,10 +52,10 @@ const getTypeShape = (attribute, { attributes } = {})=>{
52
52
  return {
53
53
  required: common.validators.required,
54
54
  targetField: utils.yup.string().oneOf(Object.keys(attributes).filter((key)=>constants.VALID_UID_TARGETS.includes(___default.default.get(attributes[key], 'type')))).nullable(),
55
- default: utils.yup.string().test('isValidDefaultUID', 'cannot define a default UID if the targetField is set', function(value) {
55
+ default: utils.yup.string().test('isValidDefaultUID', 'cannot define a default UID if the targetField is set', function isValidDefaultUID(value) {
56
56
  const { targetField } = this.parent;
57
57
  return !!(___default.default.isNil(targetField) || ___default.default.isNil(value));
58
- }).test('isValidDefaultRegexUID', `\${path} must match the custom regex or the default one "${common.UID_REGEX}"`, function(value) {
58
+ }).test('isValidDefaultRegexUID', `\${path} must match the custom regex or the default one "${common.UID_REGEX}"`, function isValidDefaultRegexUID(value) {
59
59
  const { regex } = this.parent;
60
60
  if (regex) {
61
61
  return !___default.default.isNil(value) && (value === '' || new RegExp(regex).test(value));
@@ -219,7 +219,8 @@ const getTypeShape = (attribute, { attributes } = {})=>{
219
219
  {
220
220
  return {
221
221
  required: common.validators.required,
222
- components: utils.yup.array().of(utils.yup.string().required()).test('isArray', '${path} must be an array', (value)=>Array.isArray(value)).min(1),
222
+ components: utils.yup.array().of(utils.yup.string().required()).test('isArray', // eslint-disable-next-line no-template-curly-in-string -- Yup interpolation placeholder
223
+ '${path} must be an array', (value)=>Array.isArray(value)).min(1),
223
224
  min: utils.yup.number(),
224
225
  max: utils.yup.number()
225
226
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\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 };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function (value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function (value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test('isArray', '${path} must be an array', (value) => Array.isArray(value))\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isNil","UID_REGEX","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\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 };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function isValidDefaultUID(value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function isValidDefaultRegexUID(value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test(\n 'isArray',\n // eslint-disable-next-line no-template-curly-in-string -- Yup interpolation placeholder\n '${path} must be an array',\n (value) => Array.isArray(value)\n )\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isValidDefaultUID","isNil","UID_REGEX","isValidDefaultRegexUID","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
@@ -46,10 +46,10 @@ const getTypeShape = (attribute, { attributes } = {})=>{
46
46
  return {
47
47
  required: validators.required,
48
48
  targetField: yup.string().oneOf(Object.keys(attributes).filter((key)=>VALID_UID_TARGETS.includes(_.get(attributes[key], 'type')))).nullable(),
49
- default: yup.string().test('isValidDefaultUID', 'cannot define a default UID if the targetField is set', function(value) {
49
+ default: yup.string().test('isValidDefaultUID', 'cannot define a default UID if the targetField is set', function isValidDefaultUID(value) {
50
50
  const { targetField } = this.parent;
51
51
  return !!(_.isNil(targetField) || _.isNil(value));
52
- }).test('isValidDefaultRegexUID', `\${path} must match the custom regex or the default one "${UID_REGEX}"`, function(value) {
52
+ }).test('isValidDefaultRegexUID', `\${path} must match the custom regex or the default one "${UID_REGEX}"`, function isValidDefaultRegexUID(value) {
53
53
  const { regex } = this.parent;
54
54
  if (regex) {
55
55
  return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));
@@ -213,7 +213,8 @@ const getTypeShape = (attribute, { attributes } = {})=>{
213
213
  {
214
214
  return {
215
215
  required: validators.required,
216
- components: yup.array().of(yup.string().required()).test('isArray', '${path} must be an array', (value)=>Array.isArray(value)).min(1),
216
+ components: yup.array().of(yup.string().required()).test('isArray', // eslint-disable-next-line no-template-curly-in-string -- Yup interpolation placeholder
217
+ '${path} must be an array', (value)=>Array.isArray(value)).min(1),
217
218
  min: yup.number(),
218
219
  max: yup.number()
219
220
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\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 };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function (value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function (value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test('isArray', '${path} must be an array', (value) => Array.isArray(value))\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isNil","UID_REGEX","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"types.mjs","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\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 };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function isValidDefaultUID(value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function isValidDefaultRegexUID(value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test(\n 'isArray',\n // eslint-disable-next-line no-template-curly-in-string -- Yup interpolation placeholder\n '${path} must be an array',\n (value) => Array.isArray(value)\n )\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isValidDefaultUID","isNil","UID_REGEX","isValidDefaultRegexUID","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/content-type-builder",
3
- "version": "5.50.0",
3
+ "version": "5.50.1",
4
4
  "description": "Create and manage content types",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -75,9 +75,9 @@
75
75
  "@reduxjs/toolkit": "1.9.7",
76
76
  "@sindresorhus/slugify": "1.1.0",
77
77
  "@strapi/design-system": "2.2.1",
78
- "@strapi/generators": "5.50.0",
78
+ "@strapi/generators": "5.50.1",
79
79
  "@strapi/icons": "2.2.1",
80
- "@strapi/utils": "5.50.0",
80
+ "@strapi/utils": "5.50.1",
81
81
  "ai": "5.0.52",
82
82
  "date-fns": "2.30.0",
83
83
  "fs-extra": "11.3.4",
@@ -86,7 +86,7 @@
86
86
  "lodash": "4.18.1",
87
87
  "micromatch": "^4.0.8",
88
88
  "pluralize": "8.0.0",
89
- "qs": "6.15.2",
89
+ "qs": "6.15.3",
90
90
  "react-dropzone": "14.3.8",
91
91
  "react-intl": "6.6.2",
92
92
  "react-markdown": "9.1.0",
@@ -95,8 +95,8 @@
95
95
  "zod": "3.25.67"
96
96
  },
97
97
  "devDependencies": {
98
- "@strapi/admin": "5.50.0",
99
- "@strapi/types": "5.50.0",
98
+ "@strapi/admin": "5.50.1",
99
+ "@strapi/types": "5.50.1",
100
100
  "@testing-library/dom": "10.4.1",
101
101
  "@testing-library/react": "16.3.2",
102
102
  "@testing-library/user-event": "14.6.1",
@@ -111,7 +111,7 @@
111
111
  "react-router-dom": "6.30.3",
112
112
  "styled-components": "6.4.1",
113
113
  "vitest": "catalog:",
114
- "vitest-config": "5.50.0"
114
+ "vitest-config": "5.50.1"
115
115
  },
116
116
  "peerDependencies": {
117
117
  "@strapi/admin": "^5.0.0",