@strapi/content-type-builder 5.13.1 → 5.14.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 (510) hide show
  1. package/dist/admin/components/AttributeIcon.js +1 -0
  2. package/dist/admin/components/AttributeIcon.js.map +1 -1
  3. package/dist/admin/components/AttributeIcon.mjs +1 -0
  4. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  5. package/dist/admin/components/AttributeOptions/AttributeOption.js +1 -1
  6. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  7. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +1 -1
  8. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  9. package/dist/admin/components/AttributeOptions/CustomFieldOption.js +1 -1
  10. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
  11. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +1 -1
  12. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
  13. package/dist/admin/components/AttributeRow.js +342 -0
  14. package/dist/admin/components/AttributeRow.js.map +1 -0
  15. package/dist/admin/components/AttributeRow.mjs +339 -0
  16. package/dist/admin/components/AttributeRow.mjs.map +1 -0
  17. package/dist/admin/components/AutoReloadOverlayBlocker.js +5 -2
  18. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
  19. package/dist/admin/components/AutoReloadOverlayBlocker.mjs +5 -2
  20. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
  21. package/dist/admin/components/ComponentCard/ComponentCard.js +13 -11
  22. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  23. package/dist/admin/components/ComponentCard/ComponentCard.mjs +13 -11
  24. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  25. package/dist/admin/components/ComponentList.js +12 -26
  26. package/dist/admin/components/ComponentList.js.map +1 -1
  27. package/dist/admin/components/ComponentList.mjs +12 -26
  28. package/dist/admin/components/ComponentList.mjs.map +1 -1
  29. package/dist/admin/components/{Tr.js → ComponentRow.js} +9 -15
  30. package/dist/admin/components/ComponentRow.js.map +1 -0
  31. package/dist/admin/components/{Tr.mjs → ComponentRow.mjs} +9 -15
  32. package/dist/admin/components/ComponentRow.mjs.map +1 -0
  33. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +253 -70
  34. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  35. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +256 -73
  36. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  37. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +53 -81
  38. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  39. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +54 -82
  40. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  41. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
  42. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
  43. package/dist/admin/components/DataManager/DataManagerProvider.js +344 -0
  44. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
  45. package/dist/admin/components/DataManager/DataManagerProvider.mjs +323 -0
  46. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
  47. package/dist/admin/components/DataManager/reducer.js +546 -0
  48. package/dist/admin/components/DataManager/reducer.js.map +1 -0
  49. package/dist/admin/components/DataManager/reducer.mjs +542 -0
  50. package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
  51. package/dist/admin/components/DataManager/undoRedo.js +102 -0
  52. package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
  53. package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
  54. package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
  55. package/dist/admin/{hooks → components/DataManager}/useDataManager.js +1 -1
  56. package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
  57. package/dist/admin/{hooks → components/DataManager}/useDataManager.mjs +1 -1
  58. package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
  59. package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
  60. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
  61. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
  62. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
  63. package/dist/admin/components/DataManager/utils/cleanData.js +128 -0
  64. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
  65. package/dist/admin/components/DataManager/utils/cleanData.mjs +125 -0
  66. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
  67. package/dist/admin/components/DataManager/utils/formatSchemas.js +21 -0
  68. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +1 -0
  69. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +18 -0
  70. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +1 -0
  71. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.js +1 -5
  72. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
  73. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.mjs +1 -5
  74. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
  75. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.js +3 -3
  76. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
  77. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.mjs +3 -3
  78. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
  79. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
  80. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
  81. package/dist/admin/components/DisplayedType.js +14 -14
  82. package/dist/admin/components/DisplayedType.js.map +1 -1
  83. package/dist/admin/components/DisplayedType.mjs +15 -15
  84. package/dist/admin/components/DisplayedType.mjs.map +1 -1
  85. package/dist/admin/components/DynamicZoneList.js +34 -38
  86. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  87. package/dist/admin/components/DynamicZoneList.mjs +36 -40
  88. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  89. package/dist/admin/components/ExitPrompt.js +50 -0
  90. package/dist/admin/components/ExitPrompt.js.map +1 -0
  91. package/dist/admin/components/ExitPrompt.mjs +48 -0
  92. package/dist/admin/components/ExitPrompt.mjs.map +1 -0
  93. package/dist/admin/components/{NestedFooter.js → Footers.js} +35 -2
  94. package/dist/admin/components/Footers.js.map +1 -0
  95. package/dist/admin/components/{NestedFooter.mjs → Footers.mjs} +36 -4
  96. package/dist/admin/components/Footers.mjs.map +1 -0
  97. package/dist/admin/components/FormModal/FormModal.js +198 -164
  98. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  99. package/dist/admin/components/FormModal/FormModal.mjs +198 -165
  100. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  101. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  102. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  103. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  104. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  105. package/dist/admin/components/FormModal/component/createComponentSchema.js +2 -2
  106. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  107. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
  108. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
  109. package/dist/admin/components/FormModal/forms/forms.js +10 -27
  110. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  111. package/dist/admin/components/FormModal/forms/forms.mjs +10 -27
  112. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  113. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  114. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  115. package/dist/admin/components/FormModal/reducer.js +4 -4
  116. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  117. package/dist/admin/components/FormModal/reducer.mjs +4 -4
  118. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  119. package/dist/admin/components/FormModal/utils/canEditContentType.js +9 -14
  120. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  121. package/dist/admin/components/FormModal/utils/canEditContentType.mjs +9 -14
  122. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  123. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
  124. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
  125. package/dist/admin/components/FormModalEndActions.js +1 -34
  126. package/dist/admin/components/FormModalEndActions.js.map +1 -1
  127. package/dist/admin/components/FormModalEndActions.mjs +1 -34
  128. package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
  129. package/dist/admin/components/FormModalHeader.js +10 -28
  130. package/dist/admin/components/FormModalHeader.js.map +1 -1
  131. package/dist/admin/components/FormModalHeader.mjs +10 -28
  132. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  133. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
  134. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
  135. package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.js +91 -114
  136. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
  137. package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.mjs +91 -96
  138. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
  139. package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.js +1 -1
  140. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
  141. package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.mjs +1 -1
  142. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
  143. package/dist/admin/components/FormModalSubHeader.js.map +1 -1
  144. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
  145. package/dist/admin/components/GenericInputs.js +9 -5
  146. package/dist/admin/components/GenericInputs.js.map +1 -1
  147. package/dist/admin/components/GenericInputs.mjs +9 -5
  148. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  149. package/dist/admin/components/List.js +149 -199
  150. package/dist/admin/components/List.js.map +1 -1
  151. package/dist/admin/components/List.mjs +151 -202
  152. package/dist/admin/components/List.mjs.map +1 -1
  153. package/dist/admin/components/Relation/Relation.js +3 -2
  154. package/dist/admin/components/Relation/Relation.js.map +1 -1
  155. package/dist/admin/components/Relation/Relation.mjs +3 -2
  156. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  157. package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
  158. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  159. package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
  160. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  161. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +6 -5
  162. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
  163. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +6 -5
  164. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
  165. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +19 -21
  166. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
  167. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +19 -21
  168. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
  169. package/dist/admin/components/SelectCategory.js +1 -1
  170. package/dist/admin/components/SelectCategory.js.map +1 -1
  171. package/dist/admin/components/SelectCategory.mjs +1 -1
  172. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  173. package/dist/admin/components/SelectComponent.js +3 -6
  174. package/dist/admin/components/SelectComponent.js.map +1 -1
  175. package/dist/admin/components/SelectComponent.mjs +3 -6
  176. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  177. package/dist/admin/components/SelectComponents.js +9 -6
  178. package/dist/admin/components/SelectComponents.js.map +1 -1
  179. package/dist/admin/components/SelectComponents.mjs +9 -6
  180. package/dist/admin/components/SelectComponents.mjs.map +1 -1
  181. package/dist/admin/components/SelectNumber.js +0 -4
  182. package/dist/admin/components/SelectNumber.js.map +1 -1
  183. package/dist/admin/components/SelectNumber.mjs +0 -4
  184. package/dist/admin/components/SelectNumber.mjs.map +1 -1
  185. package/dist/admin/components/Status.js +73 -0
  186. package/dist/admin/components/Status.js.map +1 -0
  187. package/dist/admin/components/Status.mjs +70 -0
  188. package/dist/admin/components/Status.mjs.map +1 -0
  189. package/dist/admin/components/TabForm.js +2 -1
  190. package/dist/admin/components/TabForm.js.map +1 -1
  191. package/dist/admin/components/TabForm.mjs +2 -1
  192. package/dist/admin/components/TabForm.mjs.map +1 -1
  193. package/dist/admin/icons/Curve.js +1 -1
  194. package/dist/admin/icons/Curve.js.map +1 -1
  195. package/dist/admin/icons/Curve.mjs +1 -1
  196. package/dist/admin/icons/Curve.mjs.map +1 -1
  197. package/dist/admin/pages/App/index.js +39 -19
  198. package/dist/admin/pages/App/index.js.map +1 -1
  199. package/dist/admin/pages/App/index.mjs +41 -21
  200. package/dist/admin/pages/App/index.mjs.map +1 -1
  201. package/dist/admin/pages/ListView/EmptyState.js +38 -0
  202. package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
  203. package/dist/admin/pages/ListView/EmptyState.mjs +36 -0
  204. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
  205. package/dist/admin/pages/ListView/LinkToCMSettingsView.js +26 -17
  206. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
  207. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +26 -17
  208. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/ListView.js +105 -158
  210. package/dist/admin/pages/ListView/ListView.js.map +1 -1
  211. package/dist/admin/pages/ListView/ListView.mjs +110 -163
  212. package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
  213. package/dist/admin/reducers.js +3 -4
  214. package/dist/admin/reducers.js.map +1 -1
  215. package/dist/admin/reducers.mjs +3 -4
  216. package/dist/admin/reducers.mjs.map +1 -1
  217. package/dist/admin/src/components/AttributeRow.d.ts +28 -0
  218. package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +2 -2
  219. package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +5 -1
  220. package/dist/admin/src/components/ComponentList.d.ts +4 -6
  221. package/dist/admin/src/components/{BoxWrapper.d.ts → ComponentRow.d.ts} +5 -2
  222. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +29 -14
  223. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +138 -0
  224. package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
  225. package/dist/admin/src/components/DataManager/reducer.d.ts +278 -0
  226. package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
  227. package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
  228. package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
  229. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +311 -0
  230. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +3 -0
  231. package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.d.ts +3 -3
  232. package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.d.ts +4 -4
  233. package/dist/admin/src/components/DisplayedType.d.ts +2 -1
  234. package/dist/admin/src/components/DynamicZoneList.d.ts +8 -5
  235. package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
  236. package/dist/admin/src/components/{NestedFooter.d.ts → Footers.d.ts} +5 -1
  237. package/dist/admin/src/components/FormModal/forms/forms.d.ts +2 -38
  238. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +3 -2
  239. package/dist/admin/src/components/FormModal/reducer.d.ts +10 -4
  240. package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +4 -4
  241. package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +1 -1
  242. package/dist/admin/src/components/FormModalEndActions.d.ts +1 -5
  243. package/dist/admin/src/components/FormModalHeader.d.ts +10 -7
  244. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
  245. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +54 -0
  246. package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
  247. package/dist/admin/src/components/FormModalSubHeader.d.ts +3 -3
  248. package/dist/admin/src/components/GenericInputs.d.ts +2 -1
  249. package/dist/admin/src/components/List.d.ts +16 -13
  250. package/dist/admin/src/components/Relation/Relation.d.ts +2 -1
  251. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +2 -1
  252. package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +3 -2
  253. package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +2 -1
  254. package/dist/admin/src/components/SelectComponents.d.ts +3 -1
  255. package/dist/admin/src/components/SelectNumber.d.ts +1 -7
  256. package/dist/admin/src/components/Status.d.ts +6 -0
  257. package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
  258. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +3 -4
  259. package/dist/admin/src/pages/ListView/ListView.d.ts +1 -1
  260. package/dist/admin/src/reducers.d.ts +2 -8
  261. package/dist/admin/src/types.d.ts +40 -43
  262. package/dist/admin/src/utils/findAttribute.d.ts +2 -2
  263. package/dist/admin/src/utils/formAPI.d.ts +43 -1
  264. package/dist/admin/src/utils/getMaxDepth.d.ts +2 -2
  265. package/dist/admin/src/utils/getRelationType.d.ts +1 -1
  266. package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
  267. package/dist/admin/translations/de.json.js +0 -1
  268. package/dist/admin/translations/de.json.js.map +1 -1
  269. package/dist/admin/translations/de.json.mjs +0 -1
  270. package/dist/admin/translations/de.json.mjs.map +1 -1
  271. package/dist/admin/translations/dk.json.js +0 -1
  272. package/dist/admin/translations/dk.json.js.map +1 -1
  273. package/dist/admin/translations/dk.json.mjs +0 -1
  274. package/dist/admin/translations/dk.json.mjs.map +1 -1
  275. package/dist/admin/translations/en.json.js +4 -2
  276. package/dist/admin/translations/en.json.js.map +1 -1
  277. package/dist/admin/translations/en.json.mjs +4 -2
  278. package/dist/admin/translations/en.json.mjs.map +1 -1
  279. package/dist/admin/translations/es.json.js +0 -1
  280. package/dist/admin/translations/es.json.js.map +1 -1
  281. package/dist/admin/translations/es.json.mjs +0 -1
  282. package/dist/admin/translations/es.json.mjs.map +1 -1
  283. package/dist/admin/translations/ko.json.js +0 -1
  284. package/dist/admin/translations/ko.json.js.map +1 -1
  285. package/dist/admin/translations/ko.json.mjs +0 -1
  286. package/dist/admin/translations/ko.json.mjs.map +1 -1
  287. package/dist/admin/translations/pl.json.js +0 -1
  288. package/dist/admin/translations/pl.json.js.map +1 -1
  289. package/dist/admin/translations/pl.json.mjs +0 -1
  290. package/dist/admin/translations/pl.json.mjs.map +1 -1
  291. package/dist/admin/translations/pt-BR.json.js +0 -1
  292. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  293. package/dist/admin/translations/pt-BR.json.mjs +0 -1
  294. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  295. package/dist/admin/translations/sv.json.js +0 -1
  296. package/dist/admin/translations/sv.json.js.map +1 -1
  297. package/dist/admin/translations/sv.json.mjs +0 -1
  298. package/dist/admin/translations/sv.json.mjs.map +1 -1
  299. package/dist/admin/translations/tr.json.js +0 -1
  300. package/dist/admin/translations/tr.json.js.map +1 -1
  301. package/dist/admin/translations/tr.json.mjs +0 -1
  302. package/dist/admin/translations/tr.json.mjs.map +1 -1
  303. package/dist/admin/translations/zh.json.js +0 -1
  304. package/dist/admin/translations/zh.json.js.map +1 -1
  305. package/dist/admin/translations/zh.json.mjs +0 -1
  306. package/dist/admin/translations/zh.json.mjs.map +1 -1
  307. package/dist/admin/utils/findAttribute.js.map +1 -1
  308. package/dist/admin/utils/findAttribute.mjs.map +1 -1
  309. package/dist/admin/utils/formAPI.js +0 -1
  310. package/dist/admin/utils/formAPI.js.map +1 -1
  311. package/dist/admin/utils/formAPI.mjs +0 -1
  312. package/dist/admin/utils/formAPI.mjs.map +1 -1
  313. package/dist/admin/utils/getMaxDepth.js.map +1 -1
  314. package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
  315. package/dist/admin/utils/getRelationType.js.map +1 -1
  316. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  317. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
  318. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
  319. package/dist/server/controllers/index.js +3 -1
  320. package/dist/server/controllers/index.js.map +1 -1
  321. package/dist/server/controllers/index.mjs +3 -1
  322. package/dist/server/controllers/index.mjs.map +1 -1
  323. package/dist/server/controllers/schema.js +55 -0
  324. package/dist/server/controllers/schema.js.map +1 -0
  325. package/dist/server/controllers/schema.mjs +53 -0
  326. package/dist/server/controllers/schema.mjs.map +1 -0
  327. package/dist/server/controllers/validation/common.js +2 -0
  328. package/dist/server/controllers/validation/common.js.map +1 -1
  329. package/dist/server/controllers/validation/common.mjs +2 -1
  330. package/dist/server/controllers/validation/common.mjs.map +1 -1
  331. package/dist/server/controllers/validation/content-type.js.map +1 -1
  332. package/dist/server/controllers/validation/content-type.mjs.map +1 -1
  333. package/dist/server/controllers/validation/schema.js +612 -0
  334. package/dist/server/controllers/validation/schema.js.map +1 -0
  335. package/dist/server/controllers/validation/schema.mjs +610 -0
  336. package/dist/server/controllers/validation/schema.mjs.map +1 -0
  337. package/dist/server/routes/admin.js +51 -0
  338. package/dist/server/routes/admin.js.map +1 -1
  339. package/dist/server/routes/admin.mjs +51 -0
  340. package/dist/server/routes/admin.mjs.map +1 -1
  341. package/dist/server/services/index.js +3 -1
  342. package/dist/server/services/index.js.map +1 -1
  343. package/dist/server/services/index.mjs +3 -1
  344. package/dist/server/services/index.mjs.map +1 -1
  345. package/dist/server/services/schema-builder/component-builder.js +12 -2
  346. package/dist/server/services/schema-builder/component-builder.js.map +1 -1
  347. package/dist/server/services/schema-builder/component-builder.mjs +12 -2
  348. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
  349. package/dist/server/services/schema-builder/content-type-builder.js +43 -28
  350. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  351. package/dist/server/services/schema-builder/content-type-builder.mjs +43 -28
  352. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  353. package/dist/server/services/schema-builder/index.js +51 -49
  354. package/dist/server/services/schema-builder/index.js.map +1 -1
  355. package/dist/server/services/schema-builder/index.mjs +51 -49
  356. package/dist/server/services/schema-builder/index.mjs.map +1 -1
  357. package/dist/server/services/schema.js +246 -0
  358. package/dist/server/services/schema.js.map +1 -0
  359. package/dist/server/services/schema.mjs +242 -0
  360. package/dist/server/services/schema.mjs.map +1 -0
  361. package/dist/server/src/controllers/index.d.ts +5 -0
  362. package/dist/server/src/controllers/index.d.ts.map +1 -1
  363. package/dist/server/src/controllers/schema.d.ts +8 -0
  364. package/dist/server/src/controllers/schema.d.ts.map +1 -0
  365. package/dist/server/src/controllers/validation/common.d.ts +1 -0
  366. package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
  367. package/dist/server/src/controllers/validation/content-type.d.ts +3 -2
  368. package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
  369. package/dist/server/src/controllers/validation/schema.d.ts +80968 -0
  370. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
  371. package/dist/server/src/index.d.ts +6 -0
  372. package/dist/server/src/index.d.ts.map +1 -1
  373. package/dist/server/src/routes/admin.d.ts.map +1 -1
  374. package/dist/server/src/services/index.d.ts +2 -0
  375. package/dist/server/src/services/index.d.ts.map +1 -1
  376. package/dist/server/src/services/schema-builder/component-builder.d.ts +1 -0
  377. package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
  378. package/dist/server/src/services/schema-builder/content-type-builder.d.ts +2 -3
  379. package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
  380. package/dist/server/src/services/schema-builder/index.d.ts +3 -0
  381. package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
  382. package/dist/server/src/services/schema.d.ts +2756 -0
  383. package/dist/server/src/services/schema.d.ts.map +1 -0
  384. package/dist/server/src/utils/index.d.ts +2 -0
  385. package/dist/server/src/utils/index.d.ts.map +1 -1
  386. package/dist/server/utils/index.js.map +1 -1
  387. package/dist/server/utils/index.mjs.map +1 -1
  388. package/package.json +13 -8
  389. package/dist/admin/components/BoxWrapper.js +0 -44
  390. package/dist/admin/components/BoxWrapper.js.map +0 -1
  391. package/dist/admin/components/BoxWrapper.mjs +0 -42
  392. package/dist/admin/components/BoxWrapper.mjs.map +0 -1
  393. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +0 -520
  394. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +0 -1
  395. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +0 -518
  396. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +0 -1
  397. package/dist/admin/components/DataManagerProvider/reducer.js +0 -583
  398. package/dist/admin/components/DataManagerProvider/reducer.js.map +0 -1
  399. package/dist/admin/components/DataManagerProvider/reducer.mjs +0 -579
  400. package/dist/admin/components/DataManagerProvider/reducer.mjs.map +0 -1
  401. package/dist/admin/components/DataManagerProvider/selectors.js +0 -20
  402. package/dist/admin/components/DataManagerProvider/selectors.js.map +0 -1
  403. package/dist/admin/components/DataManagerProvider/selectors.mjs +0 -17
  404. package/dist/admin/components/DataManagerProvider/selectors.mjs.map +0 -1
  405. package/dist/admin/components/DataManagerProvider/utils/cleanData.js +0 -126
  406. package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +0 -1
  407. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +0 -120
  408. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +0 -1
  409. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +0 -9
  410. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +0 -1
  411. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +0 -7
  412. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +0 -1
  413. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +0 -20
  414. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +0 -1
  415. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +0 -18
  416. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +0 -1
  417. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +0 -30
  418. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +0 -1
  419. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +0 -27
  420. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +0 -1
  421. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +0 -46
  422. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +0 -1
  423. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +0 -44
  424. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +0 -1
  425. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +0 -1
  426. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +0 -1
  427. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +0 -1
  428. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +0 -1
  429. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +0 -1
  430. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +0 -1
  431. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +0 -37
  432. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +0 -1
  433. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +0 -35
  434. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +0 -1
  435. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +0 -9
  436. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +0 -1
  437. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +0 -7
  438. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +0 -1
  439. package/dist/admin/components/FormModal/category/createCategorySchema.js +0 -43
  440. package/dist/admin/components/FormModal/category/createCategorySchema.js.map +0 -1
  441. package/dist/admin/components/FormModal/category/createCategorySchema.mjs +0 -22
  442. package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +0 -1
  443. package/dist/admin/components/FormModal/category/form.js +0 -34
  444. package/dist/admin/components/FormModal/category/form.js.map +0 -1
  445. package/dist/admin/components/FormModal/category/form.mjs +0 -32
  446. package/dist/admin/components/FormModal/category/form.mjs.map +0 -1
  447. package/dist/admin/components/FormModal/category/regex.js +0 -6
  448. package/dist/admin/components/FormModal/category/regex.js.map +0 -1
  449. package/dist/admin/components/FormModal/category/regex.mjs +0 -4
  450. package/dist/admin/components/FormModal/category/regex.mjs.map +0 -1
  451. package/dist/admin/components/FormModal/selectors.js +0 -20
  452. package/dist/admin/components/FormModal/selectors.js.map +0 -1
  453. package/dist/admin/components/FormModal/selectors.mjs +0 -17
  454. package/dist/admin/components/FormModal/selectors.mjs.map +0 -1
  455. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +0 -1
  456. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +0 -1
  457. package/dist/admin/components/FormModalNavigationProvider/constants.js +0 -21
  458. package/dist/admin/components/FormModalNavigationProvider/constants.js.map +0 -1
  459. package/dist/admin/components/FormModalNavigationProvider/constants.mjs +0 -19
  460. package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +0 -1
  461. package/dist/admin/components/ListRow.js +0 -164
  462. package/dist/admin/components/ListRow.js.map +0 -1
  463. package/dist/admin/components/ListRow.mjs +0 -161
  464. package/dist/admin/components/ListRow.mjs.map +0 -1
  465. package/dist/admin/components/NestedFooter.js.map +0 -1
  466. package/dist/admin/components/NestedFooter.mjs.map +0 -1
  467. package/dist/admin/components/Tr.js.map +0 -1
  468. package/dist/admin/components/Tr.mjs.map +0 -1
  469. package/dist/admin/components/UpperFirst.js +0 -11
  470. package/dist/admin/components/UpperFirst.js.map +0 -1
  471. package/dist/admin/components/UpperFirst.mjs +0 -9
  472. package/dist/admin/components/UpperFirst.mjs.map +0 -1
  473. package/dist/admin/contexts/DataManagerContext.js.map +0 -1
  474. package/dist/admin/contexts/DataManagerContext.mjs.map +0 -1
  475. package/dist/admin/contexts/FormModalNavigationContext.js.map +0 -1
  476. package/dist/admin/contexts/FormModalNavigationContext.mjs.map +0 -1
  477. package/dist/admin/hooks/useDataManager.js.map +0 -1
  478. package/dist/admin/hooks/useDataManager.mjs.map +0 -1
  479. package/dist/admin/hooks/useFormModalNavigation.js.map +0 -1
  480. package/dist/admin/hooks/useFormModalNavigation.mjs.map +0 -1
  481. package/dist/admin/src/components/DataManagerProvider/DataManagerProvider.d.ts +0 -6
  482. package/dist/admin/src/components/DataManagerProvider/reducer.d.ts +0 -103
  483. package/dist/admin/src/components/DataManagerProvider/selectors.d.ts +0 -17
  484. package/dist/admin/src/components/DataManagerProvider/utils/cleanData.d.ts +0 -23
  485. package/dist/admin/src/components/DataManagerProvider/utils/createDataObject.d.ts +0 -2
  486. package/dist/admin/src/components/DataManagerProvider/utils/createModifiedDataSchema.d.ts +0 -6
  487. package/dist/admin/src/components/DataManagerProvider/utils/formatSchemas.d.ts +0 -6
  488. package/dist/admin/src/components/DataManagerProvider/utils/retrieveComponentsFromSchema.d.ts +0 -4
  489. package/dist/admin/src/components/DataManagerProvider/utils/serverRestartWatcher.d.ts +0 -6
  490. package/dist/admin/src/components/DataManagerProvider/utils/validateSchema.d.ts +0 -1
  491. package/dist/admin/src/components/FormModal/category/createCategorySchema.d.ts +0 -5
  492. package/dist/admin/src/components/FormModal/category/form.d.ts +0 -20
  493. package/dist/admin/src/components/FormModal/category/regex.d.ts +0 -1
  494. package/dist/admin/src/components/FormModal/selectors.d.ts +0 -16
  495. package/dist/admin/src/components/FormModalNavigationProvider/FormModalNavigationProvider.d.ts +0 -22
  496. package/dist/admin/src/components/FormModalNavigationProvider/constants.d.ts +0 -17
  497. package/dist/admin/src/components/ListRow.d.ts +0 -27
  498. package/dist/admin/src/components/Tr.d.ts +0 -5
  499. package/dist/admin/src/components/UpperFirst.d.ts +0 -3
  500. package/dist/admin/src/contexts/DataManagerContext.d.ts +0 -41
  501. package/dist/admin/src/contexts/FormModalNavigationContext.d.ts +0 -40
  502. package/dist/admin/src/hooks/useDataManager.d.ts +0 -1
  503. package/dist/admin/src/hooks/useFormModalNavigation.d.ts +0 -1
  504. /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.js +0 -0
  505. /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.mjs +0 -0
  506. /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.js +0 -0
  507. /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.mjs +0 -0
  508. /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.js +0 -0
  509. /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.mjs +0 -0
  510. /package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.d.ts +0 -0
@@ -0,0 +1,610 @@
1
+ import { z } from 'zod';
2
+ import { strings, validateZod } from '@strapi/utils';
3
+ import { isNumber, isNull, isObject, isArray, snakeCase, isNil, isUndefined } from 'lodash/fp';
4
+ import { isReservedModelName, isReservedAttributeName } from '../../services/builder.mjs';
5
+ import { typeKinds, VALID_UID_TARGETS, coreUids } from '../../services/constants.mjs';
6
+ import { NAME_REGEX, CATEGORY_NAME_REGEX, ICON_REGEX, COLLECTION_NAME_REGEX, KEBAB_BASE_REGEX } from './common.mjs';
7
+
8
+ const uniqueAttributeName = (attributes, ctx)=>{
9
+ const names = new Set(attributes.map((attribute)=>snakeCase(attribute.name)));
10
+ if (names.size !== attributes.length) {
11
+ ctx.addIssue({
12
+ code: z.ZodIssueCode.custom,
13
+ message: 'Attributes must have unique names'
14
+ });
15
+ }
16
+ };
17
+ const verifyUidTargetField = (attributes, ctx)=>{
18
+ attributes.forEach((attribute)=>{
19
+ if (!attribute.properties) {
20
+ return;
21
+ }
22
+ const { properties, action } = attribute;
23
+ if (properties.type === 'uid' && properties.targetField) {
24
+ const targetAttr = attributes.find((attr)=>attr.name === properties.targetField);
25
+ if (!targetAttr) {
26
+ // NOTE: on update we are setting it to undefined later in the process instead to handle renames
27
+ if (action === 'create') {
28
+ ctx.addIssue({
29
+ code: z.ZodIssueCode.custom,
30
+ message: 'Target does not exist'
31
+ });
32
+ }
33
+ } else if (!VALID_UID_TARGETS.some((validUIdTarget)=>validUIdTarget === targetAttr.properties?.type)) {
34
+ ctx.addIssue({
35
+ code: z.ZodIssueCode.custom,
36
+ message: 'Invalid target type'
37
+ });
38
+ }
39
+ }
40
+ });
41
+ };
42
+ const verifySingularAndPluralNames = (obj, ctx)=>{
43
+ // singular and plural can only be provided on creation
44
+ if (obj.action !== 'create') {
45
+ return;
46
+ }
47
+ if (obj.singularName === obj.pluralName) {
48
+ ctx.addIssue({
49
+ code: z.ZodIssueCode.custom,
50
+ message: 'Singular and plural names must be different',
51
+ path: [
52
+ 'singularName'
53
+ ]
54
+ });
55
+ }
56
+ };
57
+ const maxLengthGreaterThanMinLength = (value, ctx)=>{
58
+ if (!isNil(value.maxLength) && !isNil(value.minLength) && isNumber(value.maxLength) && isNumber(value.minLength)) {
59
+ if (value.maxLength <= value.minLength) {
60
+ ctx.addIssue({
61
+ code: z.ZodIssueCode.custom,
62
+ message: 'maxLength must be greater or equal to minLength',
63
+ path: [
64
+ 'maxLength'
65
+ ]
66
+ });
67
+ }
68
+ }
69
+ };
70
+ const maxGreaterThanMin = (value, ctx)=>{
71
+ if (!isNil(value.max) && !isNil(value.min) && isNumber(value.max) && isNumber(value.min)) {
72
+ if (value.max <= value.min) {
73
+ ctx.addIssue({
74
+ code: z.ZodIssueCode.custom,
75
+ message: 'max must be greater or equal to min',
76
+ path: [
77
+ 'max'
78
+ ]
79
+ });
80
+ }
81
+ }
82
+ };
83
+ const checkUserTarget = (value, ctx)=>{
84
+ if (value.type !== 'relation') {
85
+ return;
86
+ }
87
+ if (isUndefined(value.target) || isUndefined(value.relation)) {
88
+ return;
89
+ }
90
+ const { target, relation, targetAttribute } = value;
91
+ if (target === coreUids.STRAPI_USER && (!STRAPI_USER_RELATIONS.includes(relation) || !isUndefined(targetAttribute))) {
92
+ ctx.addIssue({
93
+ code: z.ZodIssueCode.custom,
94
+ path: [
95
+ 'relation'
96
+ ],
97
+ message: `Relations to ${coreUids.STRAPI_USER} must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')} without targetAttribute`
98
+ });
99
+ }
100
+ };
101
+ const uidRefinement = (value, ctx)=>{
102
+ if (!isNil(value.targetField) && !isNil(value.default)) {
103
+ ctx.addIssue({
104
+ code: z.ZodIssueCode.custom,
105
+ message: 'Cannot define a default UID if the targetField is set',
106
+ path: [
107
+ 'default'
108
+ ]
109
+ });
110
+ }
111
+ };
112
+ const enumRefinement = (value, ctx)=>{
113
+ if (value.type === 'enumeration' && !isNil(value.default) && !isNil(value.enum)) {
114
+ if (value.default === '' || !value.enum.some((v)=>v === value.default)) {
115
+ ctx.addIssue({
116
+ code: z.ZodIssueCode.custom,
117
+ message: 'Default value must be one of the enum values',
118
+ path: [
119
+ 'default'
120
+ ]
121
+ });
122
+ }
123
+ }
124
+ };
125
+ const basePropertiesSchema = z.object({
126
+ type: z.enum([
127
+ 'string',
128
+ 'text',
129
+ 'richtext',
130
+ 'blocks',
131
+ 'json',
132
+ 'enumeration',
133
+ 'password',
134
+ 'email',
135
+ 'integer',
136
+ 'biginteger',
137
+ 'float',
138
+ 'decimal',
139
+ 'time',
140
+ 'datetime',
141
+ 'date',
142
+ 'timestamp',
143
+ 'boolean',
144
+ 'component',
145
+ 'uid',
146
+ 'customField',
147
+ 'media',
148
+ 'relation',
149
+ 'dynamiczone'
150
+ ]),
151
+ configurable: z.boolean().nullish(),
152
+ private: z.boolean().nullish(),
153
+ pluginOptions: z.record(z.unknown()).optional()
154
+ });
155
+ const maxLengthSchema = z.number().int().positive().optional();
156
+ const minLengthSchema = z.number().int().positive().optional();
157
+ const requiredSchema = z.boolean().optional();
158
+ const uniqueSchema = z.boolean().optional();
159
+ const STRAPI_USER_RELATIONS = [
160
+ 'oneToOne',
161
+ 'oneToMany'
162
+ ];
163
+ const baseRelationSchema = z.object({
164
+ type: z.literal('relation'),
165
+ relation: z.enum([
166
+ 'oneToOne',
167
+ 'oneToMany',
168
+ 'manyToOne',
169
+ 'manyToMany',
170
+ 'morphOne',
171
+ 'morphMany',
172
+ 'morphToOne',
173
+ 'morphToMany'
174
+ ]),
175
+ configurable: z.boolean().nullish(),
176
+ private: z.boolean().nullish(),
177
+ pluginOptions: z.record(z.unknown()).optional()
178
+ });
179
+ const oneToOneSchema = baseRelationSchema.extend({
180
+ relation: z.literal('oneToOne'),
181
+ target: z.string(),
182
+ targetAttribute: z.string().nullish()
183
+ });
184
+ const oneWaySchema = baseRelationSchema.extend({
185
+ relation: z.literal('oneToOne'),
186
+ target: z.string()
187
+ });
188
+ const oneToManySchema = baseRelationSchema.extend({
189
+ relation: z.literal('oneToMany'),
190
+ target: z.string(),
191
+ targetAttribute: z.string().nullish()
192
+ });
193
+ const manyWaySchema = baseRelationSchema.extend({
194
+ relation: z.literal('oneToMany'),
195
+ target: z.string()
196
+ });
197
+ const manyToOneSchema = baseRelationSchema.extend({
198
+ relation: z.literal('manyToOne'),
199
+ target: z.string(),
200
+ targetAttribute: z.string().nullish()
201
+ });
202
+ const manyToManySchema = baseRelationSchema.extend({
203
+ relation: z.literal('manyToMany'),
204
+ target: z.string(),
205
+ targetAttribute: z.string().nullish()
206
+ });
207
+ const morphOneSchema = baseRelationSchema.extend({
208
+ relation: z.literal('morphOne'),
209
+ target: z.string(),
210
+ targetAttribute: z.string().nullish()
211
+ });
212
+ const morphManySchema = baseRelationSchema.extend({
213
+ relation: z.literal('morphMany'),
214
+ target: z.string(),
215
+ targetAttribute: z.string().nullish()
216
+ });
217
+ const morphToOneSchema = baseRelationSchema.extend({
218
+ relation: z.literal('morphToOne')
219
+ });
220
+ const morphToManySchema = baseRelationSchema.extend({
221
+ relation: z.literal('morphToMany')
222
+ });
223
+ const createRelationSchema = (meta)=>{
224
+ switch(meta.modelType){
225
+ case 'contentType':
226
+ {
227
+ switch(meta.kind){
228
+ case 'singleType':
229
+ return z.discriminatedUnion('relation', [
230
+ oneToOneSchema,
231
+ oneToManySchema,
232
+ morphOneSchema,
233
+ morphManySchema,
234
+ morphToOneSchema,
235
+ morphToManySchema
236
+ ]);
237
+ case 'collectionType':
238
+ return z.discriminatedUnion('relation', [
239
+ oneToOneSchema,
240
+ oneToManySchema,
241
+ manyToOneSchema,
242
+ manyToManySchema,
243
+ morphOneSchema,
244
+ morphManySchema,
245
+ morphToOneSchema,
246
+ morphToManySchema
247
+ ]);
248
+ default:
249
+ throw new Error('Invalid content type kind');
250
+ }
251
+ }
252
+ case 'component':
253
+ {
254
+ return z.discriminatedUnion('relation', [
255
+ oneWaySchema,
256
+ manyWaySchema
257
+ ]);
258
+ }
259
+ default:
260
+ throw new Error('Invalid model type');
261
+ }
262
+ };
263
+ const richTextSchema = basePropertiesSchema.extend({
264
+ type: z.literal('richtext'),
265
+ required: requiredSchema,
266
+ minLength: minLengthSchema,
267
+ maxLength: maxLengthSchema,
268
+ default: z.string().optional()
269
+ });
270
+ const blocksSchema = basePropertiesSchema.extend({
271
+ type: z.literal('blocks'),
272
+ required: requiredSchema
273
+ });
274
+ const jsonSchema = basePropertiesSchema.extend({
275
+ type: z.literal('json'),
276
+ required: requiredSchema,
277
+ default: z.unknown().optional().refine((value)=>{
278
+ if (value === undefined) {
279
+ return true;
280
+ }
281
+ if (isNumber(value) || isNull(value) || isObject(value) || isArray(value)) {
282
+ return true;
283
+ }
284
+ try {
285
+ JSON.parse(value);
286
+ return true;
287
+ } catch (err) {
288
+ return false;
289
+ }
290
+ })
291
+ });
292
+ const enumerationSchema = basePropertiesSchema.extend({
293
+ type: z.literal('enumeration'),
294
+ required: requiredSchema,
295
+ default: z.string().optional(),
296
+ enumName: z.string().optional().refine((value)=>{
297
+ return value === '' || NAME_REGEX.test(value);
298
+ }, 'Invalid enum name'),
299
+ enum: z.array(z.string().refine((value)=>{
300
+ return value === '' || !strings.startsWithANumber(value);
301
+ })).min(1).refine((values)=>{
302
+ const filtered = [
303
+ ...new Set(values)
304
+ ];
305
+ return filtered.length === values.length;
306
+ })
307
+ });
308
+ const textSchema = basePropertiesSchema.extend({
309
+ type: z.literal('text'),
310
+ default: z.string().nullish(),
311
+ minLength: minLengthSchema,
312
+ maxLength: maxLengthSchema,
313
+ required: requiredSchema,
314
+ unique: uniqueSchema,
315
+ regex: z.string().optional().refine((value)=>{
316
+ return value === '' || !!new RegExp(value);
317
+ }, 'Invalid regular expression pattern')
318
+ });
319
+ const stringSchema = textSchema.extend({
320
+ type: z.literal('string')
321
+ });
322
+ const passwordSchema = basePropertiesSchema.extend({
323
+ type: z.literal('password'),
324
+ required: requiredSchema,
325
+ minLength: minLengthSchema,
326
+ maxLength: maxLengthSchema
327
+ });
328
+ const emailSchema = basePropertiesSchema.extend({
329
+ type: z.literal('email'),
330
+ required: requiredSchema,
331
+ minLength: minLengthSchema,
332
+ maxLength: maxLengthSchema,
333
+ default: z.string().email().optional(),
334
+ unique: uniqueSchema
335
+ });
336
+ const integerSchema = basePropertiesSchema.extend({
337
+ type: z.literal('integer'),
338
+ required: requiredSchema,
339
+ default: z.number().int().optional(),
340
+ unique: uniqueSchema,
341
+ min: z.number().int().optional(),
342
+ max: z.number().int().optional()
343
+ });
344
+ const bigIntegerSchema = basePropertiesSchema.extend({
345
+ type: z.literal('biginteger'),
346
+ required: requiredSchema,
347
+ unique: uniqueSchema,
348
+ default: z.string().regex(/^\d*$/).nullish(),
349
+ min: z.string().regex(/^\d*$/).nullish(),
350
+ max: z.string().regex(/^\d*$/).nullish()
351
+ });
352
+ const floatSchema = basePropertiesSchema.extend({
353
+ type: z.literal('float'),
354
+ required: requiredSchema,
355
+ unique: uniqueSchema,
356
+ default: z.number().optional(),
357
+ min: z.number().optional(),
358
+ max: z.number().optional()
359
+ });
360
+ const decimalSchema = basePropertiesSchema.extend({
361
+ type: z.literal('decimal'),
362
+ required: requiredSchema,
363
+ unique: uniqueSchema,
364
+ default: z.number().optional(),
365
+ min: z.number().optional(),
366
+ max: z.number().optional()
367
+ });
368
+ const timeSchema = basePropertiesSchema.extend({
369
+ type: z.literal('time'),
370
+ required: requiredSchema,
371
+ unique: uniqueSchema,
372
+ default: z.string().optional()
373
+ });
374
+ const dateSchema = timeSchema.extend({
375
+ type: z.literal('date')
376
+ });
377
+ const dateTimeSchema = timeSchema.extend({
378
+ type: z.literal('datetime')
379
+ });
380
+ const timeStampSchema = basePropertiesSchema.extend({
381
+ type: z.literal('timestamp')
382
+ });
383
+ const booleanSchema = basePropertiesSchema.extend({
384
+ type: z.literal('boolean'),
385
+ required: requiredSchema,
386
+ default: z.boolean().optional()
387
+ });
388
+ const componentSchema = basePropertiesSchema.extend({
389
+ type: z.literal('component'),
390
+ component: z.string(),
391
+ repeatable: z.boolean().optional(),
392
+ required: requiredSchema,
393
+ min: z.number().optional(),
394
+ max: z.number().optional()
395
+ });
396
+ const dynamicZoneSchema = basePropertiesSchema.extend({
397
+ type: z.literal('dynamiczone'),
398
+ components: z.array(z.string()).nonempty(),
399
+ required: requiredSchema,
400
+ min: z.number().optional(),
401
+ max: z.number().optional()
402
+ });
403
+ const mediaSchema = basePropertiesSchema.extend({
404
+ type: z.literal('media'),
405
+ multiple: z.boolean().optional(),
406
+ required: requiredSchema,
407
+ allowedTypes: z.array(z.enum([
408
+ 'images',
409
+ 'videos',
410
+ 'files',
411
+ 'audios'
412
+ ])).nonempty().optional()
413
+ });
414
+ const uidSchema = basePropertiesSchema.extend({
415
+ type: z.literal('uid'),
416
+ targetField: z.string().nullish(),
417
+ required: requiredSchema,
418
+ default: z.string().nullish(),
419
+ minLength: minLengthSchema,
420
+ maxLength: maxLengthSchema,
421
+ options: z.object({
422
+ separator: z.string().optional(),
423
+ lowercase: z.boolean().optional(),
424
+ decamelize: z.boolean().optional(),
425
+ customReplacements: z.array(z.array(z.string()).length(2)).optional(),
426
+ preserveLeadingUnderscore: z.boolean().optional()
427
+ }).optional()
428
+ });
429
+ const customFieldSchema = basePropertiesSchema.extend({
430
+ type: z.literal('customField'),
431
+ customField: z.string()
432
+ });
433
+ const attributePropertiesSchema = (meta)=>{
434
+ const relationSchema = createRelationSchema(meta);
435
+ const base = z.union([
436
+ mediaSchema,
437
+ textSchema,
438
+ stringSchema,
439
+ richTextSchema,
440
+ blocksSchema,
441
+ jsonSchema,
442
+ enumerationSchema,
443
+ passwordSchema,
444
+ emailSchema,
445
+ integerSchema,
446
+ bigIntegerSchema,
447
+ floatSchema,
448
+ decimalSchema,
449
+ timeSchema,
450
+ dateSchema,
451
+ dateTimeSchema,
452
+ timeStampSchema,
453
+ booleanSchema,
454
+ componentSchema,
455
+ customFieldSchema,
456
+ relationSchema
457
+ ]);
458
+ if (meta.modelType === 'component') {
459
+ return base.superRefine(enumRefinement).superRefine(checkUserTarget).superRefine(maxGreaterThanMin).superRefine(maxLengthGreaterThanMinLength);
460
+ }
461
+ return z.union([
462
+ ...base.options,
463
+ uidSchema,
464
+ dynamicZoneSchema
465
+ ]).superRefine(enumRefinement).superRefine(checkUserTarget).superRefine(uidRefinement).superRefine(maxGreaterThanMin).superRefine(maxLengthGreaterThanMinLength);
466
+ };
467
+ const createAttributeSchema = (meta)=>z.object({
468
+ action: z.literal('create'),
469
+ name: z.string().regex(NAME_REGEX).refine((value)=>!isReservedAttributeName(value), 'Attribute name is reserved'),
470
+ properties: attributePropertiesSchema(meta)
471
+ });
472
+ const updateAttributeSchema = (meta)=>z.object({
473
+ action: z.literal('update'),
474
+ name: z.string(),
475
+ properties: attributePropertiesSchema(meta)
476
+ });
477
+ const deleteAttributeSchema = z.object({
478
+ action: z.literal('delete'),
479
+ name: z.string()
480
+ });
481
+ const contentTypeUIDSchema = z.custom((value)=>{
482
+ return typeof value === 'string' && value.length > 0;
483
+ });
484
+ const componentUIDSchema = z.custom((value)=>{
485
+ return typeof value === 'string' && value.length > 0;
486
+ });
487
+ const categorySchema = z.string().min(1).regex(CATEGORY_NAME_REGEX);
488
+ const baseComponentSchema = z.object({
489
+ uid: componentUIDSchema,
490
+ displayName: z.string().min(1),
491
+ icon: z.string().regex(ICON_REGEX).optional(),
492
+ description: z.string().optional(),
493
+ category: categorySchema,
494
+ pluginOptions: z.record(z.string(), z.unknown()).optional()
495
+ });
496
+ const createComponentSchema = baseComponentSchema.extend({
497
+ action: z.literal('create'),
498
+ config: z.record(z.string(), z.unknown()).optional().default({}),
499
+ attributes: z.array(createAttributeSchema({
500
+ modelType: 'component'
501
+ })).superRefine(uniqueAttributeName)
502
+ });
503
+ const updateComponentSchema = baseComponentSchema.extend({
504
+ action: z.literal('update'),
505
+ category: categorySchema.optional(),
506
+ attributes: z.array(z.discriminatedUnion('action', [
507
+ createAttributeSchema({
508
+ modelType: 'component'
509
+ }),
510
+ updateAttributeSchema({
511
+ modelType: 'component'
512
+ }),
513
+ deleteAttributeSchema
514
+ ])).superRefine(uniqueAttributeName)
515
+ });
516
+ const deleteComponentSchema = z.object({
517
+ action: z.literal('delete'),
518
+ uid: componentUIDSchema
519
+ });
520
+ const baseContentTypeSchema = z.object({
521
+ uid: contentTypeUIDSchema,
522
+ displayName: z.string().min(1),
523
+ description: z.string().optional(),
524
+ draftAndPublish: z.boolean(),
525
+ options: z.record(z.unknown()).optional().default({}),
526
+ pluginOptions: z.record(z.unknown()).optional().default({}),
527
+ kind: z.enum([
528
+ typeKinds.SINGLE_TYPE,
529
+ typeKinds.COLLECTION_TYPE
530
+ ]).optional()
531
+ });
532
+ const baseCreateContentTypeSchema = baseContentTypeSchema.extend({
533
+ action: z.literal('create'),
534
+ collectionName: z.string().regex(COLLECTION_NAME_REGEX).optional(),
535
+ singularName: z.string().min(1).regex(KEBAB_BASE_REGEX, 'Must be kebab case').refine((value)=>!isReservedModelName(value), 'Model name is reserved'),
536
+ pluralName: z.string().min(1).regex(KEBAB_BASE_REGEX, 'Must be kebab case').refine((value)=>!isReservedModelName(value), 'Model name is reserved'),
537
+ config: z.record(z.string(), z.unknown()).optional()
538
+ });
539
+ const createSingleTypeSchema = baseCreateContentTypeSchema.extend({
540
+ kind: z.literal(typeKinds.SINGLE_TYPE),
541
+ attributes: z.array(createAttributeSchema({
542
+ modelType: 'contentType',
543
+ kind: 'singleType'
544
+ })).superRefine(uniqueAttributeName).superRefine(verifyUidTargetField)
545
+ });
546
+ const createCollectionTypeSchema = baseCreateContentTypeSchema.extend({
547
+ kind: z.literal(typeKinds.COLLECTION_TYPE),
548
+ attributes: z.array(createAttributeSchema({
549
+ modelType: 'contentType',
550
+ kind: 'collectionType'
551
+ })).superRefine(uniqueAttributeName).superRefine(verifyUidTargetField)
552
+ });
553
+ const baseUpdateContentTypeSchema = baseContentTypeSchema.extend({
554
+ action: z.literal('update')
555
+ });
556
+ const updateSingleTypeSchema = baseUpdateContentTypeSchema.extend({
557
+ kind: z.literal(typeKinds.SINGLE_TYPE).optional(),
558
+ attributes: z.array(z.discriminatedUnion('action', [
559
+ createAttributeSchema({
560
+ modelType: 'contentType',
561
+ kind: 'singleType'
562
+ }),
563
+ updateAttributeSchema({
564
+ modelType: 'contentType',
565
+ kind: 'singleType'
566
+ }),
567
+ deleteAttributeSchema
568
+ ])).superRefine(uniqueAttributeName).superRefine(verifyUidTargetField)
569
+ });
570
+ const updateCollectionTypeSchema = baseUpdateContentTypeSchema.extend({
571
+ kind: z.literal(typeKinds.COLLECTION_TYPE).optional(),
572
+ attributes: z.array(z.union([
573
+ createAttributeSchema({
574
+ modelType: 'contentType',
575
+ kind: 'collectionType'
576
+ }),
577
+ updateAttributeSchema({
578
+ modelType: 'contentType',
579
+ kind: 'collectionType'
580
+ }),
581
+ deleteAttributeSchema
582
+ ])).superRefine(uniqueAttributeName).superRefine(verifyUidTargetField)
583
+ });
584
+ const deleteContentTypeSchema = z.object({
585
+ action: z.literal('delete'),
586
+ uid: contentTypeUIDSchema
587
+ });
588
+ const schemaSchema = z.object({
589
+ components: z.array(z.union([
590
+ createComponentSchema,
591
+ updateComponentSchema,
592
+ deleteComponentSchema
593
+ ])).optional().default([]),
594
+ contentTypes: z.array(z.union([
595
+ createSingleTypeSchema,
596
+ createCollectionTypeSchema,
597
+ updateSingleTypeSchema,
598
+ updateCollectionTypeSchema,
599
+ deleteContentTypeSchema
600
+ ]).superRefine(verifySingularAndPluralNames)).optional().default([])
601
+ });
602
+ const validateUpdateSchema = validateZod(z.object({
603
+ data: schemaSchema
604
+ }, {
605
+ invalid_type_error: 'Invalid schema, expected an object with a data property',
606
+ required_error: 'Schema is required'
607
+ }));
608
+
609
+ export { validateUpdateSchema };
610
+ //# sourceMappingURL=schema.mjs.map