@strapi/content-type-builder 5.12.0 → 5.12.2

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 (770) hide show
  1. package/dist/admin/components/AllowedTypesSelect.js +78 -0
  2. package/dist/admin/components/AllowedTypesSelect.js.map +1 -0
  3. package/dist/admin/components/AllowedTypesSelect.mjs +76 -0
  4. package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -0
  5. package/dist/admin/components/AttributeIcon.js +72 -0
  6. package/dist/admin/components/AttributeIcon.js.map +1 -0
  7. package/dist/admin/components/AttributeIcon.mjs +70 -0
  8. package/dist/admin/components/AttributeIcon.mjs.map +1 -0
  9. package/dist/admin/components/AttributeOptions/AttributeList.js +31 -0
  10. package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -0
  11. package/dist/admin/components/AttributeOptions/AttributeList.mjs +29 -0
  12. package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -0
  13. package/dist/admin/components/AttributeOptions/AttributeOption.js +92 -0
  14. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -0
  15. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +90 -0
  16. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -0
  17. package/dist/admin/components/AttributeOptions/AttributeOptions.js +71 -0
  18. package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -0
  19. package/dist/admin/components/AttributeOptions/AttributeOptions.mjs +69 -0
  20. package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -0
  21. package/dist/admin/components/AttributeOptions/CustomFieldOption.js +58 -0
  22. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -0
  23. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +56 -0
  24. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -0
  25. package/dist/admin/components/AttributeOptions/CustomFieldsList.js +54 -0
  26. package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -0
  27. package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs +52 -0
  28. package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -0
  29. package/dist/admin/components/AttributeOptions/EmptyAttributes.js +123 -0
  30. package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -0
  31. package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs +101 -0
  32. package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -0
  33. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js +19 -0
  34. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -0
  35. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs +17 -0
  36. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -0
  37. package/dist/admin/components/AutoReloadOverlayBlocker.js +212 -0
  38. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -0
  39. package/dist/admin/components/AutoReloadOverlayBlocker.mjs +190 -0
  40. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -0
  41. package/dist/admin/components/BooleanDefaultValueSelect.js +54 -0
  42. package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -0
  43. package/dist/admin/components/BooleanDefaultValueSelect.mjs +52 -0
  44. package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -0
  45. package/dist/admin/components/BooleanRadioGroup.js +27 -0
  46. package/dist/admin/components/BooleanRadioGroup.js.map +1 -0
  47. package/dist/admin/components/BooleanRadioGroup.mjs +25 -0
  48. package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -0
  49. package/dist/admin/components/BoxWrapper.js +44 -0
  50. package/dist/admin/components/BoxWrapper.js.map +1 -0
  51. package/dist/admin/components/BoxWrapper.mjs +42 -0
  52. package/dist/admin/components/BoxWrapper.mjs.map +1 -0
  53. package/dist/admin/components/CheckboxWithNumberField.js +86 -0
  54. package/dist/admin/components/CheckboxWithNumberField.js.map +1 -0
  55. package/dist/admin/components/CheckboxWithNumberField.mjs +84 -0
  56. package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -0
  57. package/dist/admin/components/ComponentCard/ComponentCard.js +112 -0
  58. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -0
  59. package/dist/admin/components/ComponentCard/ComponentCard.mjs +110 -0
  60. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -0
  61. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js +24 -0
  62. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -0
  63. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs +22 -0
  64. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -0
  65. package/dist/admin/components/ComponentList.js +40 -0
  66. package/dist/admin/components/ComponentList.js.map +1 -0
  67. package/dist/admin/components/ComponentList.mjs +38 -0
  68. package/dist/admin/components/ComponentList.mjs.map +1 -0
  69. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +108 -0
  70. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -0
  71. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +106 -0
  72. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -0
  73. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +179 -0
  74. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -0
  75. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +177 -0
  76. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -0
  77. package/dist/admin/components/ContentTypeRadioGroup.js +29 -0
  78. package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -0
  79. package/dist/admin/components/ContentTypeRadioGroup.mjs +27 -0
  80. package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -0
  81. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +79 -0
  82. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -0
  83. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +77 -0
  84. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -0
  85. package/dist/admin/components/CustomRadioGroup/Styles.js +77 -0
  86. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -0
  87. package/dist/admin/components/CustomRadioGroup/Styles.mjs +75 -0
  88. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -0
  89. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +520 -0
  90. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +1 -0
  91. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +518 -0
  92. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +1 -0
  93. package/dist/admin/components/DataManagerProvider/reducer.js +583 -0
  94. package/dist/admin/components/DataManagerProvider/reducer.js.map +1 -0
  95. package/dist/admin/components/DataManagerProvider/reducer.mjs +579 -0
  96. package/dist/admin/components/DataManagerProvider/reducer.mjs.map +1 -0
  97. package/dist/admin/components/DataManagerProvider/selectors.js +20 -0
  98. package/dist/admin/components/DataManagerProvider/selectors.js.map +1 -0
  99. package/dist/admin/components/DataManagerProvider/selectors.mjs +17 -0
  100. package/dist/admin/components/DataManagerProvider/selectors.mjs.map +1 -0
  101. package/dist/admin/components/DataManagerProvider/utils/cleanData.js +126 -0
  102. package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +1 -0
  103. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +120 -0
  104. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +1 -0
  105. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +9 -0
  106. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +1 -0
  107. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +7 -0
  108. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +1 -0
  109. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +20 -0
  110. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +1 -0
  111. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +18 -0
  112. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +1 -0
  113. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +30 -0
  114. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +1 -0
  115. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +27 -0
  116. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +1 -0
  117. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +46 -0
  118. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +1 -0
  119. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +44 -0
  120. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +1 -0
  121. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js +38 -0
  122. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
  123. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs +35 -0
  124. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
  125. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js +45 -0
  126. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +1 -0
  127. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs +43 -0
  128. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +1 -0
  129. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js +17 -0
  130. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
  131. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
  132. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
  133. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +37 -0
  134. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +1 -0
  135. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +35 -0
  136. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +1 -0
  137. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +9 -0
  138. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +1 -0
  139. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +7 -0
  140. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +1 -0
  141. package/dist/admin/components/DisplayedType.js +48 -0
  142. package/dist/admin/components/DisplayedType.js.map +1 -0
  143. package/dist/admin/components/DisplayedType.mjs +46 -0
  144. package/dist/admin/components/DisplayedType.mjs.map +1 -0
  145. package/dist/admin/components/DraftAndPublishToggle.js +86 -0
  146. package/dist/admin/components/DraftAndPublishToggle.js.map +1 -0
  147. package/dist/admin/components/DraftAndPublishToggle.mjs +84 -0
  148. package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -0
  149. package/dist/admin/components/DynamicZoneList.js +139 -0
  150. package/dist/admin/components/DynamicZoneList.js.map +1 -0
  151. package/dist/admin/components/DynamicZoneList.mjs +137 -0
  152. package/dist/admin/components/DynamicZoneList.mjs.map +1 -0
  153. package/dist/admin/components/FormModal/FormModal.js +931 -0
  154. package/dist/admin/components/FormModal/FormModal.js.map +1 -0
  155. package/dist/admin/components/FormModal/FormModal.mjs +910 -0
  156. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -0
  157. package/dist/admin/components/FormModal/attributes/advancedForm.js +471 -0
  158. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -0
  159. package/dist/admin/components/FormModal/attributes/advancedForm.mjs +469 -0
  160. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -0
  161. package/dist/admin/components/FormModal/attributes/attributeOptions.js +97 -0
  162. package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -0
  163. package/dist/admin/components/FormModal/attributes/attributeOptions.mjs +95 -0
  164. package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -0
  165. package/dist/admin/components/FormModal/attributes/baseForm.js +482 -0
  166. package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -0
  167. package/dist/admin/components/FormModal/attributes/baseForm.mjs +480 -0
  168. package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -0
  169. package/dist/admin/components/FormModal/attributes/commonBaseForm.js +17 -0
  170. package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -0
  171. package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs +15 -0
  172. package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -0
  173. package/dist/admin/components/FormModal/attributes/form.js +12 -0
  174. package/dist/admin/components/FormModal/attributes/form.js.map +1 -0
  175. package/dist/admin/components/FormModal/attributes/form.mjs +10 -0
  176. package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -0
  177. package/dist/admin/components/FormModal/attributes/nameField.js +19 -0
  178. package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -0
  179. package/dist/admin/components/FormModal/attributes/nameField.mjs +17 -0
  180. package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -0
  181. package/dist/admin/components/FormModal/attributes/types.js +305 -0
  182. package/dist/admin/components/FormModal/attributes/types.js.map +1 -0
  183. package/dist/admin/components/FormModal/attributes/types.mjs +284 -0
  184. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -0
  185. package/dist/admin/components/FormModal/attributes/validation/common.js +129 -0
  186. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -0
  187. package/dist/admin/components/FormModal/attributes/validation/common.mjs +103 -0
  188. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -0
  189. package/dist/admin/components/FormModal/category/createCategorySchema.js +43 -0
  190. package/dist/admin/components/FormModal/category/createCategorySchema.js.map +1 -0
  191. package/dist/admin/components/FormModal/category/createCategorySchema.mjs +22 -0
  192. package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +1 -0
  193. package/dist/admin/components/FormModal/category/form.js +34 -0
  194. package/dist/admin/components/FormModal/category/form.js.map +1 -0
  195. package/dist/admin/components/FormModal/category/form.mjs +32 -0
  196. package/dist/admin/components/FormModal/category/form.mjs.map +1 -0
  197. package/dist/admin/components/FormModal/category/regex.js +6 -0
  198. package/dist/admin/components/FormModal/category/regex.js.map +1 -0
  199. package/dist/admin/components/FormModal/category/regex.mjs +4 -0
  200. package/dist/admin/components/FormModal/category/regex.mjs.map +1 -0
  201. package/dist/admin/components/FormModal/component/componentField.js +40 -0
  202. package/dist/admin/components/FormModal/component/componentField.js.map +1 -0
  203. package/dist/admin/components/FormModal/component/componentField.mjs +38 -0
  204. package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -0
  205. package/dist/admin/components/FormModal/component/componentForm.js +53 -0
  206. package/dist/admin/components/FormModal/component/componentForm.js.map +1 -0
  207. package/dist/admin/components/FormModal/component/componentForm.mjs +51 -0
  208. package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -0
  209. package/dist/admin/components/FormModal/component/createComponentSchema.js +65 -0
  210. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -0
  211. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +44 -0
  212. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -0
  213. package/dist/admin/components/FormModal/contentType/contentTypeForm.js +169 -0
  214. package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -0
  215. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +167 -0
  216. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -0
  217. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +170 -0
  218. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -0
  219. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +149 -0
  220. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -0
  221. package/dist/admin/components/FormModal/dynamiczoneForm.js +68 -0
  222. package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -0
  223. package/dist/admin/components/FormModal/dynamiczoneForm.mjs +66 -0
  224. package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -0
  225. package/dist/admin/components/FormModal/forms/forms.js +275 -0
  226. package/dist/admin/components/FormModal/forms/forms.js.map +1 -0
  227. package/dist/admin/components/FormModal/forms/forms.mjs +273 -0
  228. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -0
  229. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js +21 -0
  230. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -0
  231. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs +19 -0
  232. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -0
  233. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +13 -0
  234. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -0
  235. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +11 -0
  236. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -0
  237. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js +10 -0
  238. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -0
  239. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs +8 -0
  240. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -0
  241. package/dist/admin/components/FormModal/reducer.js +327 -0
  242. package/dist/admin/components/FormModal/reducer.js.map +1 -0
  243. package/dist/admin/components/FormModal/reducer.mjs +323 -0
  244. package/dist/admin/components/FormModal/reducer.mjs.map +1 -0
  245. package/dist/admin/components/FormModal/selectors.js +20 -0
  246. package/dist/admin/components/FormModal/selectors.js.map +1 -0
  247. package/dist/admin/components/FormModal/selectors.mjs +17 -0
  248. package/dist/admin/components/FormModal/selectors.mjs.map +1 -0
  249. package/dist/admin/components/FormModal/utils/canEditContentType.js +32 -0
  250. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -0
  251. package/dist/admin/components/FormModal/utils/canEditContentType.mjs +30 -0
  252. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -0
  253. package/dist/admin/components/FormModal/utils/createUid.js +16 -0
  254. package/dist/admin/components/FormModal/utils/createUid.js.map +1 -0
  255. package/dist/admin/components/FormModal/utils/createUid.mjs +13 -0
  256. package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -0
  257. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +18 -0
  258. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -0
  259. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +16 -0
  260. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -0
  261. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js +56 -0
  262. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -0
  263. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs +54 -0
  264. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -0
  265. package/dist/admin/components/FormModal/utils/getFormInputNames.js +17 -0
  266. package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -0
  267. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +15 -0
  268. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -0
  269. package/dist/admin/components/FormModal/utils/relations.js +15 -0
  270. package/dist/admin/components/FormModal/utils/relations.js.map +1 -0
  271. package/dist/admin/components/FormModal/utils/relations.mjs +12 -0
  272. package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -0
  273. package/dist/admin/components/FormModalEndActions.js +322 -0
  274. package/dist/admin/components/FormModalEndActions.js.map +1 -0
  275. package/dist/admin/components/FormModalEndActions.mjs +320 -0
  276. package/dist/admin/components/FormModalEndActions.mjs.map +1 -0
  277. package/dist/admin/components/FormModalHeader.js +150 -0
  278. package/dist/admin/components/FormModalHeader.js.map +1 -0
  279. package/dist/admin/components/FormModalHeader.mjs +148 -0
  280. package/dist/admin/components/FormModalHeader.mjs.map +1 -0
  281. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js +228 -0
  282. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +1 -0
  283. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs +207 -0
  284. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +1 -0
  285. package/dist/admin/components/FormModalNavigationProvider/constants.js +21 -0
  286. package/dist/admin/components/FormModalNavigationProvider/constants.js.map +1 -0
  287. package/dist/admin/components/FormModalNavigationProvider/constants.mjs +19 -0
  288. package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +1 -0
  289. package/dist/admin/components/FormModalSubHeader.js +70 -0
  290. package/dist/admin/components/FormModalSubHeader.js.map +1 -0
  291. package/dist/admin/components/FormModalSubHeader.mjs +67 -0
  292. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -0
  293. package/dist/admin/components/GenericInputs.js +529 -0
  294. package/dist/admin/components/GenericInputs.js.map +1 -0
  295. package/dist/admin/components/GenericInputs.mjs +508 -0
  296. package/dist/admin/components/GenericInputs.mjs.map +1 -0
  297. package/dist/admin/components/IconPicker/IconPicker.js +196 -0
  298. package/dist/admin/components/IconPicker/IconPicker.js.map +1 -0
  299. package/dist/admin/components/IconPicker/IconPicker.mjs +194 -0
  300. package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -0
  301. package/dist/admin/components/IconPicker/constants.js +155 -0
  302. package/dist/admin/components/IconPicker/constants.js.map +1 -0
  303. package/dist/admin/components/IconPicker/constants.mjs +133 -0
  304. package/dist/admin/components/IconPicker/constants.mjs.map +1 -0
  305. package/dist/admin/components/List.js +243 -0
  306. package/dist/admin/components/List.js.map +1 -0
  307. package/dist/admin/components/List.mjs +241 -0
  308. package/dist/admin/components/List.mjs.map +1 -0
  309. package/dist/admin/components/ListRow.js +164 -0
  310. package/dist/admin/components/ListRow.js.map +1 -0
  311. package/dist/admin/components/ListRow.mjs +161 -0
  312. package/dist/admin/components/ListRow.mjs.map +1 -0
  313. package/dist/admin/components/NestedFooter.js +62 -0
  314. package/dist/admin/components/NestedFooter.js.map +1 -0
  315. package/dist/admin/components/NestedFooter.mjs +60 -0
  316. package/dist/admin/components/NestedFooter.mjs.map +1 -0
  317. package/dist/admin/components/PluralName.js +74 -0
  318. package/dist/admin/components/PluralName.js.map +1 -0
  319. package/dist/admin/components/PluralName.mjs +72 -0
  320. package/dist/admin/components/PluralName.mjs.map +1 -0
  321. package/dist/admin/components/Relation/Relation.js +47 -0
  322. package/dist/admin/components/Relation/Relation.js.map +1 -0
  323. package/dist/admin/components/Relation/Relation.mjs +45 -0
  324. package/dist/admin/components/Relation/Relation.mjs.map +1 -0
  325. package/dist/admin/components/Relation/RelationField/RelationField.js +52 -0
  326. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -0
  327. package/dist/admin/components/Relation/RelationField/RelationField.mjs +50 -0
  328. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -0
  329. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +74 -0
  330. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -0
  331. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +72 -0
  332. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -0
  333. package/dist/admin/components/Relation/RelationNaturePicker/Components.js +49 -0
  334. package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -0
  335. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +45 -0
  336. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -0
  337. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +149 -0
  338. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -0
  339. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +147 -0
  340. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -0
  341. package/dist/admin/components/SelectCategory.js +60 -0
  342. package/dist/admin/components/SelectCategory.js.map +1 -0
  343. package/dist/admin/components/SelectCategory.mjs +58 -0
  344. package/dist/admin/components/SelectCategory.mjs.map +1 -0
  345. package/dist/admin/components/SelectComponent.js +90 -0
  346. package/dist/admin/components/SelectComponent.js.map +1 -0
  347. package/dist/admin/components/SelectComponent.mjs +88 -0
  348. package/dist/admin/components/SelectComponent.mjs.map +1 -0
  349. package/dist/admin/components/SelectComponents.js +70 -0
  350. package/dist/admin/components/SelectComponents.js.map +1 -0
  351. package/dist/admin/components/SelectComponents.mjs +68 -0
  352. package/dist/admin/components/SelectComponents.mjs.map +1 -0
  353. package/dist/admin/components/SelectDateType.js +62 -0
  354. package/dist/admin/components/SelectDateType.js.map +1 -0
  355. package/dist/admin/components/SelectDateType.mjs +60 -0
  356. package/dist/admin/components/SelectDateType.mjs.map +1 -0
  357. package/dist/admin/components/SelectNumber.js +111 -0
  358. package/dist/admin/components/SelectNumber.js.map +1 -0
  359. package/dist/admin/components/SelectNumber.mjs +109 -0
  360. package/dist/admin/components/SelectNumber.mjs.map +1 -0
  361. package/dist/admin/components/SingularName.js +63 -0
  362. package/dist/admin/components/SingularName.js.map +1 -0
  363. package/dist/admin/components/SingularName.mjs +61 -0
  364. package/dist/admin/components/SingularName.mjs.map +1 -0
  365. package/dist/admin/components/TabForm.js +81 -0
  366. package/dist/admin/components/TabForm.js.map +1 -0
  367. package/dist/admin/components/TabForm.mjs +79 -0
  368. package/dist/admin/components/TabForm.mjs.map +1 -0
  369. package/dist/admin/components/TextareaEnum.js +58 -0
  370. package/dist/admin/components/TextareaEnum.js.map +1 -0
  371. package/dist/admin/components/TextareaEnum.mjs +56 -0
  372. package/dist/admin/components/TextareaEnum.mjs.map +1 -0
  373. package/dist/admin/components/Tr.js +48 -0
  374. package/dist/admin/components/Tr.js.map +1 -0
  375. package/dist/admin/components/Tr.mjs +46 -0
  376. package/dist/admin/components/Tr.mjs.map +1 -0
  377. package/dist/admin/components/UpperFirst.js +11 -0
  378. package/dist/admin/components/UpperFirst.js.map +1 -0
  379. package/dist/admin/components/UpperFirst.mjs +9 -0
  380. package/dist/admin/components/UpperFirst.mjs.map +1 -0
  381. package/dist/admin/constants.js +19 -0
  382. package/dist/admin/constants.js.map +1 -0
  383. package/dist/admin/constants.mjs +16 -0
  384. package/dist/admin/constants.mjs.map +1 -0
  385. package/dist/admin/contexts/DataManagerContext.js +9 -0
  386. package/dist/admin/contexts/DataManagerContext.js.map +1 -0
  387. package/dist/admin/contexts/DataManagerContext.mjs +7 -0
  388. package/dist/admin/contexts/DataManagerContext.mjs.map +1 -0
  389. package/dist/admin/contexts/FormModalNavigationContext.js +28 -0
  390. package/dist/admin/contexts/FormModalNavigationContext.js.map +1 -0
  391. package/dist/admin/contexts/FormModalNavigationContext.mjs +7 -0
  392. package/dist/admin/contexts/FormModalNavigationContext.mjs.map +1 -0
  393. package/dist/admin/hooks/useDataManager.js +9 -0
  394. package/dist/admin/hooks/useDataManager.js.map +1 -0
  395. package/dist/admin/hooks/useDataManager.mjs +7 -0
  396. package/dist/admin/hooks/useDataManager.mjs.map +1 -0
  397. package/dist/admin/hooks/useFormModalNavigation.js +9 -0
  398. package/dist/admin/hooks/useFormModalNavigation.js.map +1 -0
  399. package/dist/admin/hooks/useFormModalNavigation.mjs +7 -0
  400. package/dist/admin/hooks/useFormModalNavigation.mjs.map +1 -0
  401. package/dist/admin/icons/Curve.js +46 -0
  402. package/dist/admin/icons/Curve.js.map +1 -0
  403. package/dist/admin/icons/Curve.mjs +44 -0
  404. package/dist/admin/icons/Curve.mjs.map +1 -0
  405. package/dist/admin/index.js +86 -20
  406. package/dist/admin/index.js.map +1 -1
  407. package/dist/admin/index.mjs +85 -17
  408. package/dist/admin/index.mjs.map +1 -1
  409. package/dist/admin/pages/App/index.js +66 -0
  410. package/dist/admin/pages/App/index.js.map +1 -0
  411. package/dist/admin/pages/App/index.mjs +62 -0
  412. package/dist/admin/pages/App/index.mjs.map +1 -0
  413. package/dist/admin/pages/ListView/LinkToCMSettingsView.js +81 -0
  414. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -0
  415. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +79 -0
  416. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -0
  417. package/dist/admin/pages/ListView/ListView.js +218 -0
  418. package/dist/admin/pages/ListView/ListView.js.map +1 -0
  419. package/dist/admin/pages/ListView/ListView.mjs +216 -0
  420. package/dist/admin/pages/ListView/ListView.mjs.map +1 -0
  421. package/dist/admin/pluginId.js +6 -0
  422. package/dist/admin/pluginId.js.map +1 -0
  423. package/dist/admin/pluginId.mjs +4 -0
  424. package/dist/admin/pluginId.mjs.map +1 -0
  425. package/dist/admin/reducers.js +13 -0
  426. package/dist/admin/reducers.js.map +1 -0
  427. package/dist/admin/reducers.mjs +11 -0
  428. package/dist/admin/reducers.mjs.map +1 -0
  429. package/dist/admin/{chunks/ar-Df0f0-PT.js → translations/ar.json.js} +3 -1
  430. package/dist/admin/translations/ar.json.js.map +1 -0
  431. package/dist/admin/{chunks/ar-sRW9VFC-.mjs → translations/ar.json.mjs} +1 -1
  432. package/dist/admin/translations/ar.json.mjs.map +1 -0
  433. package/dist/admin/{chunks/cs-DeTwqc7p.js → translations/cs.json.js} +3 -1
  434. package/dist/admin/translations/cs.json.js.map +1 -0
  435. package/dist/admin/{chunks/cs-BpQ26jiq.mjs → translations/cs.json.mjs} +1 -1
  436. package/dist/admin/translations/cs.json.mjs.map +1 -0
  437. package/dist/admin/{chunks/de-BJkS06jF.js → translations/de.json.js} +3 -1
  438. package/dist/admin/translations/de.json.js.map +1 -0
  439. package/dist/admin/{chunks/de-DSxx5_x-.mjs → translations/de.json.mjs} +1 -1
  440. package/dist/admin/translations/de.json.mjs.map +1 -0
  441. package/dist/admin/{chunks/dk-CGm-qVH7.js → translations/dk.json.js} +3 -1
  442. package/dist/admin/translations/dk.json.js.map +1 -0
  443. package/dist/admin/{chunks/dk-BnjVZ7A_.mjs → translations/dk.json.mjs} +1 -1
  444. package/dist/admin/translations/dk.json.mjs.map +1 -0
  445. package/dist/admin/{chunks/en-BJUu34b0.js → translations/en.json.js} +3 -1
  446. package/dist/admin/translations/en.json.js.map +1 -0
  447. package/dist/admin/{chunks/en-Bhut8Yay.mjs → translations/en.json.mjs} +1 -1
  448. package/dist/admin/translations/en.json.mjs.map +1 -0
  449. package/dist/admin/{chunks/es-J8kvHlNy.js → translations/es.json.js} +3 -1
  450. package/dist/admin/translations/es.json.js.map +1 -0
  451. package/dist/admin/{chunks/es-DG8g9igJ.mjs → translations/es.json.mjs} +1 -1
  452. package/dist/admin/translations/es.json.mjs.map +1 -0
  453. package/dist/admin/{chunks/fr-C6y35iY7.js → translations/fr.json.js} +3 -1
  454. package/dist/admin/translations/fr.json.js.map +1 -0
  455. package/dist/admin/{chunks/fr-UpV34MHY.mjs → translations/fr.json.mjs} +1 -1
  456. package/dist/admin/translations/fr.json.mjs.map +1 -0
  457. package/dist/admin/{chunks/id-BvxV6wLP.js → translations/id.json.js} +3 -1
  458. package/dist/admin/translations/id.json.js.map +1 -0
  459. package/dist/admin/{chunks/id-BWM18ljw.mjs → translations/id.json.mjs} +1 -1
  460. package/dist/admin/translations/id.json.mjs.map +1 -0
  461. package/dist/admin/{chunks/it-C_IgFU-G.js → translations/it.json.js} +3 -1
  462. package/dist/admin/translations/it.json.js.map +1 -0
  463. package/dist/admin/{chunks/it-1_vd9gV4.mjs → translations/it.json.mjs} +1 -1
  464. package/dist/admin/{chunks/ms-C3s4kxq6.mjs.map → translations/it.json.mjs.map} +1 -1
  465. package/dist/admin/{chunks/ja-CWo4Qqq6.js → translations/ja.json.js} +3 -1
  466. package/dist/admin/translations/ja.json.js.map +1 -0
  467. package/dist/admin/{chunks/ja-Cx23a2Ui.mjs → translations/ja.json.mjs} +1 -1
  468. package/dist/admin/translations/ja.json.mjs.map +1 -0
  469. package/dist/admin/{chunks/ko-BsByJNEl.js → translations/ko.json.js} +3 -1
  470. package/dist/admin/translations/ko.json.js.map +1 -0
  471. package/dist/admin/{chunks/ko-DC7paEx5.mjs → translations/ko.json.mjs} +1 -1
  472. package/dist/admin/translations/ko.json.mjs.map +1 -0
  473. package/dist/admin/{chunks/ms-DPTzS7SH.js → translations/ms.json.js} +3 -1
  474. package/dist/admin/translations/ms.json.js.map +1 -0
  475. package/dist/admin/{chunks/ms-C3s4kxq6.mjs → translations/ms.json.mjs} +1 -1
  476. package/dist/admin/translations/ms.json.mjs.map +1 -0
  477. package/dist/admin/{chunks/nl-db29QMOx.js → translations/nl.json.js} +3 -1
  478. package/dist/admin/translations/nl.json.js.map +1 -0
  479. package/dist/admin/{chunks/nl-TzvfktV_.mjs → translations/nl.json.mjs} +1 -1
  480. package/dist/admin/translations/nl.json.mjs.map +1 -0
  481. package/dist/admin/{chunks/pl-pYy1djj3.js → translations/pl.json.js} +3 -1
  482. package/dist/admin/translations/pl.json.js.map +1 -0
  483. package/dist/admin/{chunks/pl-BdvupIN_.mjs → translations/pl.json.mjs} +1 -1
  484. package/dist/admin/translations/pl.json.mjs.map +1 -0
  485. package/dist/admin/{chunks/pt-BR-CTPuXGWF.js → translations/pt-BR.json.js} +3 -1
  486. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  487. package/dist/admin/{chunks/pt-BR-DPrVmKeZ.mjs → translations/pt-BR.json.mjs} +1 -1
  488. package/dist/admin/{chunks/dk-CGm-qVH7.js.map → translations/pt-BR.json.mjs.map} +1 -1
  489. package/dist/admin/{chunks/pt-BQmWcdeG.js → translations/pt.json.js} +3 -1
  490. package/dist/admin/translations/pt.json.js.map +1 -0
  491. package/dist/admin/{chunks/pt-BTLIwmCv.mjs → translations/pt.json.mjs} +1 -1
  492. package/dist/admin/translations/pt.json.mjs.map +1 -0
  493. package/dist/admin/{chunks/ru-DQiDXgUV.js → translations/ru.json.js} +3 -1
  494. package/dist/admin/translations/ru.json.js.map +1 -0
  495. package/dist/admin/{chunks/ru-D46no502.mjs → translations/ru.json.mjs} +1 -1
  496. package/dist/admin/translations/ru.json.mjs.map +1 -0
  497. package/dist/admin/{chunks/sk-DrnebmXb.js → translations/sk.json.js} +3 -1
  498. package/dist/admin/translations/sk.json.js.map +1 -0
  499. package/dist/admin/{chunks/sk-Byr_l4Jc.mjs → translations/sk.json.mjs} +1 -1
  500. package/dist/admin/translations/sk.json.mjs.map +1 -0
  501. package/dist/admin/{chunks/sv-CrWlNosi.js → translations/sv.json.js} +3 -1
  502. package/dist/admin/translations/sv.json.js.map +1 -0
  503. package/dist/admin/{chunks/sv-Bbam7IDm.mjs → translations/sv.json.mjs} +1 -1
  504. package/dist/admin/translations/sv.json.mjs.map +1 -0
  505. package/dist/admin/{chunks/th-BbrCkfgX.js → translations/th.json.js} +3 -1
  506. package/dist/admin/translations/th.json.js.map +1 -0
  507. package/dist/admin/{chunks/th-hfS0Wmk_.mjs → translations/th.json.mjs} +1 -1
  508. package/dist/admin/translations/th.json.mjs.map +1 -0
  509. package/dist/admin/{chunks/tr-CHdMj8m6.js → translations/tr.json.js} +3 -1
  510. package/dist/admin/translations/tr.json.js.map +1 -0
  511. package/dist/admin/{chunks/tr-DS7DBOhC.mjs → translations/tr.json.mjs} +1 -1
  512. package/dist/admin/translations/tr.json.mjs.map +1 -0
  513. package/dist/admin/{chunks/uk-felSA_eV.js → translations/uk.json.js} +3 -1
  514. package/dist/admin/translations/uk.json.js.map +1 -0
  515. package/dist/admin/{chunks/uk-CjzmJyt1.mjs → translations/uk.json.mjs} +1 -1
  516. package/dist/admin/translations/uk.json.mjs.map +1 -0
  517. package/dist/admin/{chunks/zh-Hans-lXbNiMp9.js → translations/zh-Hans.json.js} +3 -1
  518. package/dist/admin/{chunks/cs-BpQ26jiq.mjs.map → translations/zh-Hans.json.js.map} +1 -1
  519. package/dist/admin/{chunks/zh-Hans-BElOnuRb.mjs → translations/zh-Hans.json.mjs} +1 -1
  520. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  521. package/dist/admin/{chunks/zh-CWj4avQA.js → translations/zh.json.js} +3 -1
  522. package/dist/admin/translations/zh.json.js.map +1 -0
  523. package/dist/admin/{chunks/zh-BUVXH75-.mjs → translations/zh.json.mjs} +1 -1
  524. package/dist/admin/translations/zh.json.mjs.map +1 -0
  525. package/dist/admin/utils/findAttribute.js +8 -0
  526. package/dist/admin/utils/findAttribute.js.map +1 -0
  527. package/dist/admin/utils/findAttribute.mjs +6 -0
  528. package/dist/admin/utils/findAttribute.mjs.map +1 -0
  529. package/dist/admin/utils/formAPI.js +134 -0
  530. package/dist/admin/utils/formAPI.js.map +1 -0
  531. package/dist/admin/utils/formAPI.mjs +113 -0
  532. package/dist/admin/utils/formAPI.mjs.map +1 -0
  533. package/dist/admin/utils/getAttributeDisplayedType.js +32 -0
  534. package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -0
  535. package/dist/admin/utils/getAttributeDisplayedType.mjs +30 -0
  536. package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -0
  537. package/dist/admin/utils/getMaxDepth.js +74 -0
  538. package/dist/admin/utils/getMaxDepth.js.map +1 -0
  539. package/dist/admin/utils/getMaxDepth.mjs +71 -0
  540. package/dist/admin/utils/getMaxDepth.mjs.map +1 -0
  541. package/dist/admin/utils/getRelationType.js +18 -0
  542. package/dist/admin/utils/getRelationType.js.map +1 -0
  543. package/dist/admin/utils/getRelationType.mjs +16 -0
  544. package/dist/admin/utils/getRelationType.mjs.map +1 -0
  545. package/dist/admin/utils/getTrad.js +8 -0
  546. package/dist/admin/utils/getTrad.js.map +1 -0
  547. package/dist/admin/utils/getTrad.mjs +6 -0
  548. package/dist/admin/utils/getTrad.mjs.map +1 -0
  549. package/dist/admin/utils/getYupInnerErrors.js +23 -0
  550. package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
  551. package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
  552. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
  553. package/dist/admin/utils/isAllowedContentTypesForRelations.js +8 -0
  554. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -0
  555. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs +6 -0
  556. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -0
  557. package/dist/admin/utils/makeUnique.js +8 -0
  558. package/dist/admin/utils/makeUnique.js.map +1 -0
  559. package/dist/admin/utils/makeUnique.mjs +6 -0
  560. package/dist/admin/utils/makeUnique.mjs.map +1 -0
  561. package/dist/admin/utils/nameToSlug.js +10 -0
  562. package/dist/admin/utils/nameToSlug.js.map +1 -0
  563. package/dist/admin/utils/nameToSlug.mjs +8 -0
  564. package/dist/admin/utils/nameToSlug.mjs.map +1 -0
  565. package/dist/admin/utils/parseDateValue.js +17 -0
  566. package/dist/admin/utils/parseDateValue.js.map +1 -0
  567. package/dist/admin/utils/parseDateValue.mjs +15 -0
  568. package/dist/admin/utils/parseDateValue.mjs.map +1 -0
  569. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  570. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  571. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  572. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  573. package/dist/admin/utils/timeFormat.js +38 -0
  574. package/dist/admin/utils/timeFormat.js.map +1 -0
  575. package/dist/admin/utils/timeFormat.mjs +35 -0
  576. package/dist/admin/utils/timeFormat.mjs.map +1 -0
  577. package/dist/admin/utils/toRegressedEnumValue.js +17 -0
  578. package/dist/admin/utils/toRegressedEnumValue.js.map +1 -0
  579. package/dist/admin/utils/toRegressedEnumValue.mjs +15 -0
  580. package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -0
  581. package/dist/server/bootstrap.js +16 -0
  582. package/dist/server/bootstrap.js.map +1 -0
  583. package/dist/server/bootstrap.mjs +14 -0
  584. package/dist/server/bootstrap.mjs.map +1 -0
  585. package/dist/server/config.js +9 -0
  586. package/dist/server/config.js.map +1 -0
  587. package/dist/server/config.mjs +7 -0
  588. package/dist/server/config.mjs.map +1 -0
  589. package/dist/server/controllers/builder.js +12 -0
  590. package/dist/server/controllers/builder.js.map +1 -0
  591. package/dist/server/controllers/builder.mjs +10 -0
  592. package/dist/server/controllers/builder.mjs.map +1 -0
  593. package/dist/server/controllers/component-categories.js +38 -0
  594. package/dist/server/controllers/component-categories.js.map +1 -0
  595. package/dist/server/controllers/component-categories.mjs +36 -0
  596. package/dist/server/controllers/component-categories.mjs.map +1 -0
  597. package/dist/server/controllers/components.js +144 -0
  598. package/dist/server/controllers/components.js.map +1 -0
  599. package/dist/server/controllers/components.mjs +142 -0
  600. package/dist/server/controllers/components.mjs.map +1 -0
  601. package/dist/server/controllers/content-types.js +142 -0
  602. package/dist/server/controllers/content-types.js.map +1 -0
  603. package/dist/server/controllers/content-types.mjs +140 -0
  604. package/dist/server/controllers/content-types.mjs.map +1 -0
  605. package/dist/server/controllers/index.js +16 -0
  606. package/dist/server/controllers/index.js.map +1 -0
  607. package/dist/server/controllers/index.mjs +14 -0
  608. package/dist/server/controllers/index.mjs.map +1 -0
  609. package/dist/server/controllers/validation/common.js +102 -0
  610. package/dist/server/controllers/validation/common.js.map +1 -0
  611. package/dist/server/controllers/validation/common.mjs +85 -0
  612. package/dist/server/controllers/validation/common.mjs.map +1 -0
  613. package/dist/server/controllers/validation/component-category.js +12 -0
  614. package/dist/server/controllers/validation/component-category.js.map +1 -0
  615. package/dist/server/controllers/validation/component-category.mjs +10 -0
  616. package/dist/server/controllers/validation/component-category.mjs.map +1 -0
  617. package/dist/server/controllers/validation/component.js +68 -0
  618. package/dist/server/controllers/validation/component.js.map +1 -0
  619. package/dist/server/controllers/validation/component.mjs +60 -0
  620. package/dist/server/controllers/validation/component.mjs.map +1 -0
  621. package/dist/server/controllers/validation/content-type.js +153 -0
  622. package/dist/server/controllers/validation/content-type.js.map +1 -0
  623. package/dist/server/controllers/validation/content-type.mjs +149 -0
  624. package/dist/server/controllers/validation/content-type.mjs.map +1 -0
  625. package/dist/server/controllers/validation/data-transform.js +27 -0
  626. package/dist/server/controllers/validation/data-transform.js.map +1 -0
  627. package/dist/server/controllers/validation/data-transform.mjs +24 -0
  628. package/dist/server/controllers/validation/data-transform.mjs.map +1 -0
  629. package/dist/server/controllers/validation/model-schema.js +90 -0
  630. package/dist/server/controllers/validation/model-schema.js.map +1 -0
  631. package/dist/server/controllers/validation/model-schema.mjs +88 -0
  632. package/dist/server/controllers/validation/model-schema.mjs.map +1 -0
  633. package/dist/server/controllers/validation/relations.js +70 -0
  634. package/dist/server/controllers/validation/relations.js.map +1 -0
  635. package/dist/server/controllers/validation/relations.mjs +68 -0
  636. package/dist/server/controllers/validation/relations.mjs.map +1 -0
  637. package/dist/server/controllers/validation/types.js +215 -0
  638. package/dist/server/controllers/validation/types.js.map +1 -0
  639. package/dist/server/controllers/validation/types.mjs +213 -0
  640. package/dist/server/controllers/validation/types.mjs.map +1 -0
  641. package/dist/server/index.js +8 -2654
  642. package/dist/server/index.js.map +1 -1
  643. package/dist/server/index.mjs +5 -2633
  644. package/dist/server/index.mjs.map +1 -1
  645. package/dist/server/routes/admin.js +231 -0
  646. package/dist/server/routes/admin.js.map +1 -0
  647. package/dist/server/routes/admin.mjs +229 -0
  648. package/dist/server/routes/admin.mjs.map +1 -0
  649. package/dist/server/routes/content-api.js +30 -0
  650. package/dist/server/routes/content-api.js.map +1 -0
  651. package/dist/server/routes/content-api.mjs +28 -0
  652. package/dist/server/routes/content-api.mjs.map +1 -0
  653. package/dist/server/routes/index.js +12 -0
  654. package/dist/server/routes/index.js.map +1 -0
  655. package/dist/server/routes/index.mjs +10 -0
  656. package/dist/server/routes/index.mjs.map +1 -0
  657. package/dist/server/services/api-handler.js +109 -0
  658. package/dist/server/services/api-handler.js.map +1 -0
  659. package/dist/server/services/api-handler.mjs +85 -0
  660. package/dist/server/services/api-handler.mjs.map +1 -0
  661. package/dist/server/services/builder.js +81 -0
  662. package/dist/server/services/builder.js.map +1 -0
  663. package/dist/server/services/builder.mjs +75 -0
  664. package/dist/server/services/builder.mjs.map +1 -0
  665. package/dist/server/services/component-categories.js +59 -0
  666. package/dist/server/services/component-categories.js.map +1 -0
  667. package/dist/server/services/component-categories.mjs +56 -0
  668. package/dist/server/services/component-categories.mjs.map +1 -0
  669. package/dist/server/services/components.js +79 -0
  670. package/dist/server/services/components.js.map +1 -0
  671. package/dist/server/services/components.mjs +74 -0
  672. package/dist/server/services/components.mjs.map +1 -0
  673. package/dist/server/services/constants.js +52 -0
  674. package/dist/server/services/constants.js.map +1 -0
  675. package/dist/server/services/constants.mjs +45 -0
  676. package/dist/server/services/constants.mjs.map +1 -0
  677. package/dist/server/services/content-types.js +223 -0
  678. package/dist/server/services/content-types.js.map +1 -0
  679. package/dist/server/services/content-types.mjs +213 -0
  680. package/dist/server/services/content-types.mjs.map +1 -0
  681. package/dist/server/services/index.js +18 -0
  682. package/dist/server/services/index.js.map +1 -0
  683. package/dist/server/services/index.mjs +16 -0
  684. package/dist/server/services/index.mjs.map +1 -0
  685. package/dist/server/services/schema-builder/component-builder.js +114 -0
  686. package/dist/server/services/schema-builder/component-builder.js.map +1 -0
  687. package/dist/server/services/schema-builder/component-builder.mjs +112 -0
  688. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -0
  689. package/dist/server/services/schema-builder/content-type-builder.js +276 -0
  690. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -0
  691. package/dist/server/services/schema-builder/content-type-builder.mjs +274 -0
  692. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -0
  693. package/dist/server/services/schema-builder/index.js +145 -0
  694. package/dist/server/services/schema-builder/index.js.map +1 -0
  695. package/dist/server/services/schema-builder/index.mjs +143 -0
  696. package/dist/server/services/schema-builder/index.mjs.map +1 -0
  697. package/dist/server/services/schema-builder/schema-handler.js +250 -0
  698. package/dist/server/services/schema-builder/schema-handler.js.map +1 -0
  699. package/dist/server/services/schema-builder/schema-handler.mjs +248 -0
  700. package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -0
  701. package/dist/server/utils/attributes.js +91 -0
  702. package/dist/server/utils/attributes.js.map +1 -0
  703. package/dist/server/utils/attributes.mjs +85 -0
  704. package/dist/server/utils/attributes.mjs.map +1 -0
  705. package/dist/server/utils/index.js +8 -0
  706. package/dist/server/utils/index.js.map +1 -0
  707. package/dist/server/utils/index.mjs +6 -0
  708. package/dist/server/utils/index.mjs.map +1 -0
  709. package/dist/server/utils/typeguards.js +8 -0
  710. package/dist/server/utils/typeguards.js.map +1 -0
  711. package/dist/server/utils/typeguards.mjs +6 -0
  712. package/dist/server/utils/typeguards.mjs.map +1 -0
  713. package/package.json +5 -5
  714. package/dist/admin/chunks/ListView-Cl-pbcxP.mjs +0 -1184
  715. package/dist/admin/chunks/ListView-Cl-pbcxP.mjs.map +0 -1
  716. package/dist/admin/chunks/ListView-DMZvleUI.js +0 -1186
  717. package/dist/admin/chunks/ListView-DMZvleUI.js.map +0 -1
  718. package/dist/admin/chunks/ar-Df0f0-PT.js.map +0 -1
  719. package/dist/admin/chunks/ar-sRW9VFC-.mjs.map +0 -1
  720. package/dist/admin/chunks/cs-DeTwqc7p.js.map +0 -1
  721. package/dist/admin/chunks/de-BJkS06jF.js.map +0 -1
  722. package/dist/admin/chunks/de-DSxx5_x-.mjs.map +0 -1
  723. package/dist/admin/chunks/dk-BnjVZ7A_.mjs.map +0 -1
  724. package/dist/admin/chunks/en-BJUu34b0.js.map +0 -1
  725. package/dist/admin/chunks/en-Bhut8Yay.mjs.map +0 -1
  726. package/dist/admin/chunks/es-DG8g9igJ.mjs.map +0 -1
  727. package/dist/admin/chunks/es-J8kvHlNy.js.map +0 -1
  728. package/dist/admin/chunks/fr-C6y35iY7.js.map +0 -1
  729. package/dist/admin/chunks/fr-UpV34MHY.mjs.map +0 -1
  730. package/dist/admin/chunks/id-BWM18ljw.mjs.map +0 -1
  731. package/dist/admin/chunks/id-BvxV6wLP.js.map +0 -1
  732. package/dist/admin/chunks/index-BG2mUcnk.js +0 -7788
  733. package/dist/admin/chunks/index-BG2mUcnk.js.map +0 -1
  734. package/dist/admin/chunks/index-DAXXa6S8.mjs +0 -1384
  735. package/dist/admin/chunks/index-DAXXa6S8.mjs.map +0 -1
  736. package/dist/admin/chunks/index-DWAINlnG.js +0 -1421
  737. package/dist/admin/chunks/index-DWAINlnG.js.map +0 -1
  738. package/dist/admin/chunks/index-Knq4Ti8R.mjs +0 -7761
  739. package/dist/admin/chunks/index-Knq4Ti8R.mjs.map +0 -1
  740. package/dist/admin/chunks/it-1_vd9gV4.mjs.map +0 -1
  741. package/dist/admin/chunks/it-C_IgFU-G.js.map +0 -1
  742. package/dist/admin/chunks/ja-CWo4Qqq6.js.map +0 -1
  743. package/dist/admin/chunks/ja-Cx23a2Ui.mjs.map +0 -1
  744. package/dist/admin/chunks/ko-BsByJNEl.js.map +0 -1
  745. package/dist/admin/chunks/ko-DC7paEx5.mjs.map +0 -1
  746. package/dist/admin/chunks/ms-DPTzS7SH.js.map +0 -1
  747. package/dist/admin/chunks/nl-TzvfktV_.mjs.map +0 -1
  748. package/dist/admin/chunks/nl-db29QMOx.js.map +0 -1
  749. package/dist/admin/chunks/pl-BdvupIN_.mjs.map +0 -1
  750. package/dist/admin/chunks/pl-pYy1djj3.js.map +0 -1
  751. package/dist/admin/chunks/pt-BQmWcdeG.js.map +0 -1
  752. package/dist/admin/chunks/pt-BR-CTPuXGWF.js.map +0 -1
  753. package/dist/admin/chunks/pt-BR-DPrVmKeZ.mjs.map +0 -1
  754. package/dist/admin/chunks/pt-BTLIwmCv.mjs.map +0 -1
  755. package/dist/admin/chunks/ru-D46no502.mjs.map +0 -1
  756. package/dist/admin/chunks/ru-DQiDXgUV.js.map +0 -1
  757. package/dist/admin/chunks/sk-Byr_l4Jc.mjs.map +0 -1
  758. package/dist/admin/chunks/sk-DrnebmXb.js.map +0 -1
  759. package/dist/admin/chunks/sv-Bbam7IDm.mjs.map +0 -1
  760. package/dist/admin/chunks/sv-CrWlNosi.js.map +0 -1
  761. package/dist/admin/chunks/th-BbrCkfgX.js.map +0 -1
  762. package/dist/admin/chunks/th-hfS0Wmk_.mjs.map +0 -1
  763. package/dist/admin/chunks/tr-CHdMj8m6.js.map +0 -1
  764. package/dist/admin/chunks/tr-DS7DBOhC.mjs.map +0 -1
  765. package/dist/admin/chunks/uk-CjzmJyt1.mjs.map +0 -1
  766. package/dist/admin/chunks/uk-felSA_eV.js.map +0 -1
  767. package/dist/admin/chunks/zh-BUVXH75-.mjs.map +0 -1
  768. package/dist/admin/chunks/zh-CWj4avQA.js.map +0 -1
  769. package/dist/admin/chunks/zh-Hans-BElOnuRb.mjs.map +0 -1
  770. package/dist/admin/chunks/zh-Hans-lXbNiMp9.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import builder from './builder.mjs';
2
+ import componentCategories from './component-categories.mjs';
3
+ import components from './components.mjs';
4
+ import contentTypes from './content-types.mjs';
5
+
6
+ const exportObject = {
7
+ builder,
8
+ 'component-categories': componentCategories,
9
+ components,
10
+ 'content-types': contentTypes
11
+ };
12
+
13
+ export { exportObject as default };
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import builder from './builder';\nimport componentCategories from './component-categories';\nimport components from './components';\nimport contentTypes from './content-types';\n\nconst exportObject = {\n builder,\n 'component-categories': componentCategories,\n components,\n 'content-types': contentTypes,\n};\n\nexport default exportObject;\n"],"names":["exportObject","builder","componentCategories","components","contentTypes"],"mappings":";;;;;AAKA,MAAMA,YAAe,GAAA;AACnBC,IAAAA,OAAAA;IACA,sBAAwBC,EAAAA,mBAAAA;AACxBC,IAAAA,UAAAA;IACA,eAAiBC,EAAAA;AACnB;;;;"}
@@ -0,0 +1,102 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var _ = require('lodash');
5
+
6
+ const validators = {
7
+ required: utils.yup.boolean(),
8
+ unique: utils.yup.boolean(),
9
+ minLength: utils.yup.number().integer().positive(),
10
+ maxLength: utils.yup.number().integer().positive()
11
+ };
12
+ const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;
13
+ const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
14
+ const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
15
+ const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;
16
+ const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;
17
+ const isValidName = {
18
+ name: 'isValidName',
19
+ message: `\${path} must match the following regex: ${NAME_REGEX}`,
20
+ test: (val)=>val === '' || NAME_REGEX.test(val)
21
+ };
22
+ const isValidIcon = {
23
+ name: 'isValidIcon',
24
+ message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
25
+ test: (val)=>val === '' || ICON_REGEX.test(val)
26
+ };
27
+ const isValidUID = {
28
+ name: 'isValidUID',
29
+ message: `\${path} must match the following regex: ${UID_REGEX}`,
30
+ test: (val)=>val === '' || UID_REGEX.test(val)
31
+ };
32
+ const isValidCategoryName = {
33
+ name: 'isValidCategoryName',
34
+ message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
35
+ test: (val)=>val === '' || CATEGORY_NAME_REGEX.test(val)
36
+ };
37
+ const isValidCollectionName = {
38
+ name: 'isValidCollectionName',
39
+ message: `\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,
40
+ test: (val)=>val === '' || COLLECTION_NAME_REGEX.test(val)
41
+ };
42
+ const isValidKey = (key)=>({
43
+ name: 'isValidKey',
44
+ message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,
45
+ test: ()=>NAME_REGEX.test(key)
46
+ });
47
+ const isValidEnum = {
48
+ name: 'isValidEnum',
49
+ message: '${path} should not start with number',
50
+ test: (val)=>val === '' || !utils.strings.startsWithANumber(val)
51
+ };
52
+ const areEnumValuesUnique = {
53
+ name: 'areEnumValuesUnique',
54
+ message: '${path} cannot contain duplicate values',
55
+ test (values) {
56
+ const filtered = [
57
+ ...new Set(values)
58
+ ];
59
+ return filtered.length === values.length;
60
+ }
61
+ };
62
+ const isValidRegExpPattern = {
63
+ name: 'isValidRegExpPattern',
64
+ message: '${path} must be a valid RexExp pattern string',
65
+ test: (val)=>val === '' || !!new RegExp(val)
66
+ };
67
+ const isValidDefaultJSON = {
68
+ name: 'isValidDefaultJSON',
69
+ message: '${path} is not a valid JSON',
70
+ test (val) {
71
+ if (val === undefined) {
72
+ return true;
73
+ }
74
+ if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {
75
+ return true;
76
+ }
77
+ try {
78
+ JSON.parse(val);
79
+ return true;
80
+ } catch (err) {
81
+ return false;
82
+ }
83
+ }
84
+ };
85
+
86
+ exports.CATEGORY_NAME_REGEX = CATEGORY_NAME_REGEX;
87
+ exports.COLLECTION_NAME_REGEX = COLLECTION_NAME_REGEX;
88
+ exports.ICON_REGEX = ICON_REGEX;
89
+ exports.NAME_REGEX = NAME_REGEX;
90
+ exports.UID_REGEX = UID_REGEX;
91
+ exports.areEnumValuesUnique = areEnumValuesUnique;
92
+ exports.isValidCategoryName = isValidCategoryName;
93
+ exports.isValidCollectionName = isValidCollectionName;
94
+ exports.isValidDefaultJSON = isValidDefaultJSON;
95
+ exports.isValidEnum = isValidEnum;
96
+ exports.isValidIcon = isValidIcon;
97
+ exports.isValidKey = isValidKey;
98
+ exports.isValidName = isValidName;
99
+ exports.isValidRegExpPattern = isValidRegExpPattern;
100
+ exports.isValidUID = isValidUID;
101
+ exports.validators = validators;
102
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","isValidName","name","message","test","val","isValidIcon","isValidUID","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { yup, strings } from '@strapi/utils';
2
+ import _ from 'lodash';
3
+
4
+ const validators = {
5
+ required: yup.boolean(),
6
+ unique: yup.boolean(),
7
+ minLength: yup.number().integer().positive(),
8
+ maxLength: yup.number().integer().positive()
9
+ };
10
+ const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;
11
+ const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
12
+ const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
13
+ const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;
14
+ const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;
15
+ const isValidName = {
16
+ name: 'isValidName',
17
+ message: `\${path} must match the following regex: ${NAME_REGEX}`,
18
+ test: (val)=>val === '' || NAME_REGEX.test(val)
19
+ };
20
+ const isValidIcon = {
21
+ name: 'isValidIcon',
22
+ message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
23
+ test: (val)=>val === '' || ICON_REGEX.test(val)
24
+ };
25
+ const isValidUID = {
26
+ name: 'isValidUID',
27
+ message: `\${path} must match the following regex: ${UID_REGEX}`,
28
+ test: (val)=>val === '' || UID_REGEX.test(val)
29
+ };
30
+ const isValidCategoryName = {
31
+ name: 'isValidCategoryName',
32
+ message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
33
+ test: (val)=>val === '' || CATEGORY_NAME_REGEX.test(val)
34
+ };
35
+ const isValidCollectionName = {
36
+ name: 'isValidCollectionName',
37
+ message: `\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,
38
+ test: (val)=>val === '' || COLLECTION_NAME_REGEX.test(val)
39
+ };
40
+ const isValidKey = (key)=>({
41
+ name: 'isValidKey',
42
+ message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,
43
+ test: ()=>NAME_REGEX.test(key)
44
+ });
45
+ const isValidEnum = {
46
+ name: 'isValidEnum',
47
+ message: '${path} should not start with number',
48
+ test: (val)=>val === '' || !strings.startsWithANumber(val)
49
+ };
50
+ const areEnumValuesUnique = {
51
+ name: 'areEnumValuesUnique',
52
+ message: '${path} cannot contain duplicate values',
53
+ test (values) {
54
+ const filtered = [
55
+ ...new Set(values)
56
+ ];
57
+ return filtered.length === values.length;
58
+ }
59
+ };
60
+ const isValidRegExpPattern = {
61
+ name: 'isValidRegExpPattern',
62
+ message: '${path} must be a valid RexExp pattern string',
63
+ test: (val)=>val === '' || !!new RegExp(val)
64
+ };
65
+ const isValidDefaultJSON = {
66
+ name: 'isValidDefaultJSON',
67
+ message: '${path} is not a valid JSON',
68
+ test (val) {
69
+ if (val === undefined) {
70
+ return true;
71
+ }
72
+ if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {
73
+ return true;
74
+ }
75
+ try {
76
+ JSON.parse(val);
77
+ return true;
78
+ } catch (err) {
79
+ return false;
80
+ }
81
+ }
82
+ };
83
+
84
+ export { CATEGORY_NAME_REGEX, COLLECTION_NAME_REGEX, ICON_REGEX, NAME_REGEX, UID_REGEX, areEnumValuesUnique, isValidCategoryName, isValidCollectionName, isValidDefaultJSON, isValidEnum, isValidIcon, isValidKey, isValidName, isValidRegExpPattern, isValidUID, validators };
85
+ //# sourceMappingURL=common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.mjs","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","isValidName","name","message","test","val","isValidIcon","isValidUID","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var common = require('./common.js');
5
+
6
+ const componentCategorySchema = utils.yup.object({
7
+ name: utils.yup.string().min(3).test(common.isValidCategoryName).required('name.required')
8
+ }).noUnknown();
9
+ var validateComponentCategory = utils.validateYupSchema(componentCategorySchema);
10
+
11
+ module.exports = validateComponentCategory;
12
+ //# sourceMappingURL=component-category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-category.js","sources":["../../../../server/src/controllers/validation/component-category.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isValidCategoryName } from './common';\n\nconst componentCategorySchema = yup\n .object({\n name: yup.string().min(3).test(isValidCategoryName).required('name.required'),\n })\n .noUnknown();\n\nexport default validateYupSchema(componentCategorySchema);\n"],"names":["componentCategorySchema","yup","object","name","string","min","test","isValidCategoryName","required","noUnknown","validateYupSchema"],"mappings":";;;;;AAGA,MAAMA,uBAAAA,GAA0BC,SAC7BC,CAAAA,MAAM,CAAC;IACNC,IAAMF,EAAAA,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,IAAI,CAACC,0BAAqBC,CAAAA,CAAAA,QAAQ,CAAC,eAAA;AAC/D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,gCAAeC,wBAAkBV,uBAAyB,CAAA;;;;"}
@@ -0,0 +1,10 @@
1
+ import { yup, validateYupSchema } from '@strapi/utils';
2
+ import { isValidCategoryName } from './common.mjs';
3
+
4
+ const componentCategorySchema = yup.object({
5
+ name: yup.string().min(3).test(isValidCategoryName).required('name.required')
6
+ }).noUnknown();
7
+ var validateComponentCategory = validateYupSchema(componentCategorySchema);
8
+
9
+ export { validateComponentCategory as default };
10
+ //# sourceMappingURL=component-category.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-category.mjs","sources":["../../../../server/src/controllers/validation/component-category.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isValidCategoryName } from './common';\n\nconst componentCategorySchema = yup\n .object({\n name: yup.string().min(3).test(isValidCategoryName).required('name.required'),\n })\n .noUnknown();\n\nexport default validateYupSchema(componentCategorySchema);\n"],"names":["componentCategorySchema","yup","object","name","string","min","test","isValidCategoryName","required","noUnknown","validateYupSchema"],"mappings":";;;AAGA,MAAMA,uBAAAA,GAA0BC,GAC7BC,CAAAA,MAAM,CAAC;IACNC,IAAMF,EAAAA,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,IAAI,CAACC,mBAAqBC,CAAAA,CAAAA,QAAQ,CAAC,eAAA;AAC/D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,gCAAeC,kBAAkBV,uBAAyB,CAAA;;;;"}
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var utils = require('@strapi/utils');
5
+ var constants = require('../../services/constants.js');
6
+ var common = require('./common.js');
7
+ var modelSchema = require('./model-schema.js');
8
+ var dataTransform = require('./data-transform.js');
9
+
10
+ const VALID_RELATIONS = [
11
+ 'oneToOne',
12
+ 'oneToMany'
13
+ ];
14
+ const VALID_TYPES = [
15
+ ...constants.DEFAULT_TYPES,
16
+ 'component',
17
+ 'customField'
18
+ ];
19
+ const componentSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS, {
20
+ modelType: constants.modelTypes.COMPONENT
21
+ }).shape({
22
+ displayName: utils.yup.string().min(1).required('displayName.required'),
23
+ icon: utils.yup.string().nullable().test(common.isValidIcon),
24
+ category: utils.yup.string().nullable().test(common.isValidCategoryName).required('category.required')
25
+ }).required().noUnknown();
26
+ const nestedComponentSchema = utils.yup.array().of(componentSchema.shape({
27
+ uid: utils.yup.string(),
28
+ tmpUID: utils.yup.string()
29
+ }).test({
30
+ name: 'mustHaveUIDOrTmpUID',
31
+ message: 'Component must have a uid or a tmpUID',
32
+ test (attr) {
33
+ if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;
34
+ if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;
35
+ return true;
36
+ }
37
+ }).required().noUnknown());
38
+ const componentInputSchema = utils.yup.object({
39
+ component: componentSchema,
40
+ components: nestedComponentSchema
41
+ }).noUnknown();
42
+ const validateComponentInput = utils.validateYupSchema(componentInputSchema);
43
+ const updateComponentInputSchema = utils.yup.object({
44
+ component: componentSchema,
45
+ components: nestedComponentSchema
46
+ }).noUnknown();
47
+ const validateUpdateComponentInput = (data)=>{
48
+ if (_.has(data, 'component') && data.component) {
49
+ dataTransform.removeEmptyDefaults(data.component);
50
+ }
51
+ if (_.has(data, 'components') && Array.isArray(data.components)) {
52
+ data.components.forEach((data)=>{
53
+ if (_.has(data, 'uid')) {
54
+ dataTransform.removeEmptyDefaults(data);
55
+ }
56
+ });
57
+ }
58
+ return utils.validateYupSchema(updateComponentInputSchema)(data);
59
+ };
60
+
61
+ exports.VALID_RELATIONS = VALID_RELATIONS;
62
+ exports.VALID_TYPES = VALID_TYPES;
63
+ exports.componentInputSchema = componentInputSchema;
64
+ exports.componentSchema = componentSchema;
65
+ exports.nestedComponentSchema = nestedComponentSchema;
66
+ exports.validateComponentInput = validateComponentInput;
67
+ exports.validateUpdateComponentInput = validateUpdateComponentInput;
68
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct } from '@strapi/types';\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\nimport { isValidCategoryName, isValidIcon } from './common';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults } from './data-transform';\n\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\n\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\n modelType: modelTypes.COMPONENT,\n})\n .shape({\n displayName: yup.string().min(1).required('displayName.required'),\n icon: yup.string().nullable().test(isValidIcon),\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\n })\n .required()\n .noUnknown();\n\nexport const nestedComponentSchema = yup.array().of(\n componentSchema\n .shape({\n uid: yup.string(),\n tmpUID: yup.string(),\n })\n .test({\n name: 'mustHaveUIDOrTmpUID',\n message: 'Component must have a uid or a tmpUID',\n test(attr: unknown) {\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\n return true;\n },\n })\n .required()\n .noUnknown()\n);\n\nexport const componentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\n\nconst updateComponentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateUpdateComponentInput = (data: {\n component?: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n}) => {\n if (_.has(data, 'component') && data.component) {\n removeEmptyDefaults(data.component);\n }\n\n if (_.has(data, 'components') && Array.isArray(data.components)) {\n data.components.forEach((data) => {\n if (_.has(data, 'uid')) {\n removeEmptyDefaults(data);\n }\n });\n }\n\n return validateYupSchema(updateComponentInputSchema)(data);\n};\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":";;;;;;;;;MASaA,eAAkB,GAAA;AAAC,IAAA,UAAA;AAAY,IAAA;;MAC/BC,WAAc,GAAA;AAAIC,IAAAA,GAAAA,uBAAAA;AAAe,IAAA,WAAA;AAAa,IAAA;;AAE9CC,MAAAA,eAAAA,GAAkBC,wBAAaH,CAAAA,WAAAA,EAAaD,eAAiB,EAAA;AACxEK,IAAAA,SAAAA,EAAWC,qBAAWC;AACxB,CAAA,CAAA,CACGC,KAAK,CAAC;AACLC,IAAAA,WAAAA,EAAaC,UAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,QAAQ,CAAC,sBAAA,CAAA;AAC1CC,IAAAA,IAAAA,EAAMJ,UAAIC,MAAM,EAAA,CAAGI,QAAQ,EAAA,CAAGC,IAAI,CAACC,kBAAAA,CAAAA;IACnCC,QAAUR,EAAAA,SAAAA,CAAIC,MAAM,EAAGI,CAAAA,QAAQ,GAAGC,IAAI,CAACG,0BAAqBN,CAAAA,CAAAA,QAAQ,CAAC,mBAAA;AACvE,CACCA,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS;AAEL,MAAMC,wBAAwBX,SAAIY,CAAAA,KAAK,GAAGC,EAAE,CACjDpB,eACGK,CAAAA,KAAK,CAAC;AACLgB,IAAAA,GAAAA,EAAKd,UAAIC,MAAM,EAAA;AACfc,IAAAA,MAAAA,EAAQf,UAAIC,MAAM;AACpB,CAAA,CAAA,CACCK,IAAI,CAAC;IACJU,IAAM,EAAA,qBAAA;IACNC,OAAS,EAAA,uCAAA;AACTX,IAAAA,IAAAA,CAAAA,CAAKY,IAAa,EAAA;QAChB,IAAIC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAUC,EAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;AACxD,QAAA,IAAI,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAU,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;QAC1D,OAAO,IAAA;AACT;AACF,CACCf,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS,EACZ;AAEWW,MAAAA,oBAAAA,GAAuBrB,SACjCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS;AAEL,MAAMe,sBAAyBC,GAAAA,uBAAAA,CAAkBL,oBAAsB;AAE9E,MAAMM,0BAAAA,GAA6B3B,SAChCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS,EAAA;AAEL,MAAMkB,+BAA+B,CAACC,IAAAA,GAAAA;AAI3C,IAAA,IAAIV,EAAEC,GAAG,CAACS,MAAM,WAAgBA,CAAAA,IAAAA,IAAAA,CAAKN,SAAS,EAAE;AAC9CO,QAAAA,iCAAAA,CAAoBD,KAAKN,SAAS,CAAA;AACpC;IAEA,IAAIJ,CAAAA,CAAEC,GAAG,CAACS,IAAM,EAAA,YAAA,CAAA,IAAiBE,MAAMC,OAAO,CAACH,IAAKL,CAAAA,UAAU,CAAG,EAAA;AAC/DK,QAAAA,IAAAA,CAAKL,UAAU,CAACS,OAAO,CAAC,CAACJ,IAAAA,GAAAA;AACvB,YAAA,IAAIV,CAAEC,CAAAA,GAAG,CAACS,IAAAA,EAAM,KAAQ,CAAA,EAAA;gBACtBC,iCAAoBD,CAAAA,IAAAA,CAAAA;AACtB;AACF,SAAA,CAAA;AACF;AAEA,IAAA,OAAOH,wBAAkBC,0BAA4BE,CAAAA,CAAAA,IAAAA,CAAAA;AACvD;;;;;;;;;;"}
@@ -0,0 +1,60 @@
1
+ import _ from 'lodash';
2
+ import { yup, validateYupSchema } from '@strapi/utils';
3
+ import { modelTypes, DEFAULT_TYPES } from '../../services/constants.mjs';
4
+ import { isValidIcon, isValidCategoryName } from './common.mjs';
5
+ import { createSchema } from './model-schema.mjs';
6
+ import { removeEmptyDefaults } from './data-transform.mjs';
7
+
8
+ const VALID_RELATIONS = [
9
+ 'oneToOne',
10
+ 'oneToMany'
11
+ ];
12
+ const VALID_TYPES = [
13
+ ...DEFAULT_TYPES,
14
+ 'component',
15
+ 'customField'
16
+ ];
17
+ const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {
18
+ modelType: modelTypes.COMPONENT
19
+ }).shape({
20
+ displayName: yup.string().min(1).required('displayName.required'),
21
+ icon: yup.string().nullable().test(isValidIcon),
22
+ category: yup.string().nullable().test(isValidCategoryName).required('category.required')
23
+ }).required().noUnknown();
24
+ const nestedComponentSchema = yup.array().of(componentSchema.shape({
25
+ uid: yup.string(),
26
+ tmpUID: yup.string()
27
+ }).test({
28
+ name: 'mustHaveUIDOrTmpUID',
29
+ message: 'Component must have a uid or a tmpUID',
30
+ test (attr) {
31
+ if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;
32
+ if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;
33
+ return true;
34
+ }
35
+ }).required().noUnknown());
36
+ const componentInputSchema = yup.object({
37
+ component: componentSchema,
38
+ components: nestedComponentSchema
39
+ }).noUnknown();
40
+ const validateComponentInput = validateYupSchema(componentInputSchema);
41
+ const updateComponentInputSchema = yup.object({
42
+ component: componentSchema,
43
+ components: nestedComponentSchema
44
+ }).noUnknown();
45
+ const validateUpdateComponentInput = (data)=>{
46
+ if (_.has(data, 'component') && data.component) {
47
+ removeEmptyDefaults(data.component);
48
+ }
49
+ if (_.has(data, 'components') && Array.isArray(data.components)) {
50
+ data.components.forEach((data)=>{
51
+ if (_.has(data, 'uid')) {
52
+ removeEmptyDefaults(data);
53
+ }
54
+ });
55
+ }
56
+ return validateYupSchema(updateComponentInputSchema)(data);
57
+ };
58
+
59
+ export { VALID_RELATIONS, VALID_TYPES, componentInputSchema, componentSchema, nestedComponentSchema, validateComponentInput, validateUpdateComponentInput };
60
+ //# sourceMappingURL=component.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.mjs","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct } from '@strapi/types';\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\nimport { isValidCategoryName, isValidIcon } from './common';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults } from './data-transform';\n\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\n\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\n modelType: modelTypes.COMPONENT,\n})\n .shape({\n displayName: yup.string().min(1).required('displayName.required'),\n icon: yup.string().nullable().test(isValidIcon),\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\n })\n .required()\n .noUnknown();\n\nexport const nestedComponentSchema = yup.array().of(\n componentSchema\n .shape({\n uid: yup.string(),\n tmpUID: yup.string(),\n })\n .test({\n name: 'mustHaveUIDOrTmpUID',\n message: 'Component must have a uid or a tmpUID',\n test(attr: unknown) {\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\n return true;\n },\n })\n .required()\n .noUnknown()\n);\n\nexport const componentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\n\nconst updateComponentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateUpdateComponentInput = (data: {\n component?: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n}) => {\n if (_.has(data, 'component') && data.component) {\n removeEmptyDefaults(data.component);\n }\n\n if (_.has(data, 'components') && Array.isArray(data.components)) {\n data.components.forEach((data) => {\n if (_.has(data, 'uid')) {\n removeEmptyDefaults(data);\n }\n });\n }\n\n return validateYupSchema(updateComponentInputSchema)(data);\n};\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":";;;;;;;MASaA,eAAkB,GAAA;AAAC,IAAA,UAAA;AAAY,IAAA;;MAC/BC,WAAc,GAAA;AAAIC,IAAAA,GAAAA,aAAAA;AAAe,IAAA,WAAA;AAAa,IAAA;;AAE9CC,MAAAA,eAAAA,GAAkBC,YAAaH,CAAAA,WAAAA,EAAaD,eAAiB,EAAA;AACxEK,IAAAA,SAAAA,EAAWC,WAAWC;AACxB,CAAA,CAAA,CACGC,KAAK,CAAC;AACLC,IAAAA,WAAAA,EAAaC,IAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,QAAQ,CAAC,sBAAA,CAAA;AAC1CC,IAAAA,IAAAA,EAAMJ,IAAIC,MAAM,EAAA,CAAGI,QAAQ,EAAA,CAAGC,IAAI,CAACC,WAAAA,CAAAA;IACnCC,QAAUR,EAAAA,GAAAA,CAAIC,MAAM,EAAGI,CAAAA,QAAQ,GAAGC,IAAI,CAACG,mBAAqBN,CAAAA,CAAAA,QAAQ,CAAC,mBAAA;AACvE,CACCA,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS;AAEL,MAAMC,wBAAwBX,GAAIY,CAAAA,KAAK,GAAGC,EAAE,CACjDpB,eACGK,CAAAA,KAAK,CAAC;AACLgB,IAAAA,GAAAA,EAAKd,IAAIC,MAAM,EAAA;AACfc,IAAAA,MAAAA,EAAQf,IAAIC,MAAM;AACpB,CAAA,CAAA,CACCK,IAAI,CAAC;IACJU,IAAM,EAAA,qBAAA;IACNC,OAAS,EAAA,uCAAA;AACTX,IAAAA,IAAAA,CAAAA,CAAKY,IAAa,EAAA;QAChB,IAAIC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAUC,EAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;AACxD,QAAA,IAAI,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAU,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;QAC1D,OAAO,IAAA;AACT;AACF,CACCf,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS,EACZ;AAEWW,MAAAA,oBAAAA,GAAuBrB,GACjCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS;AAEL,MAAMe,sBAAyBC,GAAAA,iBAAAA,CAAkBL,oBAAsB;AAE9E,MAAMM,0BAAAA,GAA6B3B,GAChCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS,EAAA;AAEL,MAAMkB,+BAA+B,CAACC,IAAAA,GAAAA;AAI3C,IAAA,IAAIV,EAAEC,GAAG,CAACS,MAAM,WAAgBA,CAAAA,IAAAA,IAAAA,CAAKN,SAAS,EAAE;AAC9CO,QAAAA,mBAAAA,CAAoBD,KAAKN,SAAS,CAAA;AACpC;IAEA,IAAIJ,CAAAA,CAAEC,GAAG,CAACS,IAAM,EAAA,YAAA,CAAA,IAAiBE,MAAMC,OAAO,CAACH,IAAKL,CAAAA,UAAU,CAAG,EAAA;AAC/DK,QAAAA,IAAAA,CAAKL,UAAU,CAACS,OAAO,CAAC,CAACJ,IAAAA,GAAAA;AACvB,YAAA,IAAIV,CAAEC,CAAAA,GAAG,CAACS,IAAAA,EAAM,KAAQ,CAAA,EAAA;gBACtBC,mBAAoBD,CAAAA,IAAAA,CAAAA;AACtB;AACF,SAAA,CAAA;AACF;AAEA,IAAA,OAAOH,kBAAkBC,0BAA4BE,CAAAA,CAAAA,IAAAA,CAAAA;AACvD;;;;"}
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+ var index = require('../../utils/index.js');
6
+ var constants = require('../../services/constants.js');
7
+ var modelSchema = require('./model-schema.js');
8
+ var dataTransform = require('./data-transform.js');
9
+ var component = require('./component.js');
10
+
11
+ /* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format
12
+ /**
13
+ * Allowed relation per type kind
14
+ */ const VALID_RELATIONS = {
15
+ [constants.typeKinds.SINGLE_TYPE]: [
16
+ 'oneToOne',
17
+ 'oneToMany',
18
+ 'morphOne',
19
+ 'morphMany',
20
+ 'morphToOne',
21
+ 'morphToMany'
22
+ ],
23
+ [constants.typeKinds.COLLECTION_TYPE]: [
24
+ 'oneToOne',
25
+ 'oneToMany',
26
+ 'manyToOne',
27
+ 'manyToMany',
28
+ 'morphOne',
29
+ 'morphMany',
30
+ 'morphToOne',
31
+ 'morphToMany'
32
+ ]
33
+ };
34
+ /**
35
+ * Allowed types
36
+ */ const VALID_TYPES = [
37
+ ...constants.DEFAULT_TYPES,
38
+ 'uid',
39
+ 'component',
40
+ 'dynamiczone',
41
+ 'customField'
42
+ ];
43
+ /**
44
+ * Returns a yup schema to validate a content type payload
45
+ */ const createContentTypeSchema = (data, { isEdition = false } = {})=>{
46
+ const kind = fp.getOr(constants.typeKinds.COLLECTION_TYPE, 'contentType.kind', data);
47
+ const contentTypeSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {
48
+ modelType: constants.modelTypes.CONTENT_TYPE
49
+ }).shape({
50
+ displayName: utils.yup.string().min(1).required(),
51
+ singularName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(forbiddenContentTypeNameValidator()).isKebabCase().required(),
52
+ pluralName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name
53
+ .test(forbiddenContentTypeNameValidator()).isKebabCase().required()
54
+ }).test('singularName-not-equal-pluralName', '${path}: singularName and pluralName should be different', (value)=>value.singularName !== value.pluralName);
55
+ return utils.yup.object({
56
+ // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error
57
+ // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features
58
+ // without having any reference to them in CE.
59
+ // Why not handle an "options" object in the content-type ? The admin panel needs lots of rework
60
+ // to be able to send this options object instead of top-level attributes.
61
+ // @nathan-pichon 20/02/2023
62
+ contentType: contentTypeSchema.required().noUnknown(false),
63
+ components: component.nestedComponentSchema
64
+ }).noUnknown();
65
+ };
66
+ /**
67
+ * Validator for content type creation
68
+ */ const validateContentTypeInput = (data)=>{
69
+ return utils.validateYupSchema(createContentTypeSchema(data))(data);
70
+ };
71
+ /**
72
+ * Validator for content type edition
73
+ */ const validateUpdateContentTypeInput = (data)=>{
74
+ if (fp.has('contentType', data)) {
75
+ dataTransform.removeEmptyDefaults(data.contentType);
76
+ dataTransform.removeDeletedUIDTargetFields(data.contentType);
77
+ }
78
+ if (fp.has('components', data) && Array.isArray(data.components)) {
79
+ data.components.forEach((comp)=>{
80
+ if (fp.has('uid', comp)) {
81
+ dataTransform.removeEmptyDefaults(comp);
82
+ }
83
+ });
84
+ }
85
+ return utils.validateYupSchema(createContentTypeSchema(data, {
86
+ isEdition: true
87
+ }))(data);
88
+ };
89
+ const forbiddenContentTypeNameValidator = ()=>{
90
+ const reservedNames = index.getService('builder').getReservedNames().models;
91
+ return {
92
+ name: 'forbiddenContentTypeName',
93
+ message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,
94
+ test (value) {
95
+ if (typeof value !== 'string') {
96
+ return true;
97
+ }
98
+ return !index.getService('builder').isReservedModelName(value);
99
+ }
100
+ };
101
+ };
102
+ const nameIsAvailable = (isEdition)=>{
103
+ // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as
104
+ const usedNames = fp.flatMap((ct)=>{
105
+ return [
106
+ ct.info?.singularName,
107
+ ct.info?.pluralName
108
+ ];
109
+ })(strapi.contentTypes);
110
+ return {
111
+ name: 'nameAlreadyUsed',
112
+ message: 'contentType: name `${value}` is already being used by another content type.',
113
+ test (value) {
114
+ // don't check on edition
115
+ if (isEdition) return true;
116
+ // ignore if not a string (will be caught in another validator)
117
+ if (typeof value !== 'string') {
118
+ return true;
119
+ }
120
+ // compare snake case to check the actual column names that will be used in the database
121
+ return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
122
+ }
123
+ };
124
+ };
125
+ const nameIsNotExistingCollectionName = (isEdition)=>{
126
+ const usedNames = Object.keys(strapi.contentTypes).map((key)=>strapi.contentTypes[key].collectionName);
127
+ return {
128
+ name: 'nameAlreadyUsed',
129
+ message: 'contentType: name `${value}` is already being used by another content type.',
130
+ test (value) {
131
+ // don't check on edition
132
+ if (isEdition) return true;
133
+ // ignore if not a string (will be caught in another validator)
134
+ if (typeof value !== 'string') {
135
+ return true;
136
+ }
137
+ // compare snake case to check the actual column names that will be used in the database
138
+ return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
139
+ }
140
+ };
141
+ };
142
+ /**
143
+ * Validates type kind
144
+ */ const kindSchema = utils.yup.string().oneOf([
145
+ constants.typeKinds.SINGLE_TYPE,
146
+ constants.typeKinds.COLLECTION_TYPE
147
+ ]);
148
+ const validateKind = utils.validateYupSchema(kindSchema);
149
+
150
+ exports.validateContentTypeInput = validateContentTypeInput;
151
+ exports.validateKind = validateKind;
152
+ exports.validateUpdateContentTypeInput = validateUpdateContentTypeInput;
153
+ //# sourceMappingURL=content-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type.js","sources":["../../../../server/src/controllers/validation/content-type.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format\n\nimport { flatMap, getOr, has, snakeCase } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct, Internal } from '@strapi/types';\nimport { getService } from '../../utils';\nimport { modelTypes, DEFAULT_TYPES, typeKinds } from '../../services/constants';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults, removeDeletedUIDTargetFields } from './data-transform';\nimport { nestedComponentSchema } from './component';\n\n// Input flattens some fields of the \"info\" into the root type\nexport type CreateContentTypeInput = {\n contentType?: Partial<Struct.ContentTypeSchema> & Partial<Struct.ContentTypeSchemaInfo>;\n components?: Array<\n Partial<Struct.ComponentSchema> &\n Partial<Struct.SchemaInfo> & { tmpUID?: Internal.UID.Component }\n >;\n singularName: Struct.ContentTypeSchemaInfo['singularName'];\n attributes: Struct.SchemaAttributes & Record<string, any>;\n kind: Struct.ContentTypeKind;\n collectionName?: Struct.CollectionTypeSchema['collectionName'];\n pluralName: Struct.ContentTypeSchemaInfo['pluralName'];\n displayName: Struct.ContentTypeSchemaInfo['displayName'];\n description: Struct.ContentTypeSchemaInfo['description'];\n options?: Struct.SchemaOptions;\n draftAndPublish?: Struct.SchemaOptions['draftAndPublish'];\n pluginOptions?: Struct.ContentTypeSchema['pluginOptions'];\n config?: object;\n};\n\n/**\n * Allowed relation per type kind\n */\nconst VALID_RELATIONS = {\n [typeKinds.SINGLE_TYPE]: [\n 'oneToOne',\n 'oneToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ],\n [typeKinds.COLLECTION_TYPE]: [\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ],\n} as const;\n\n/**\n * Allowed types\n */\nconst VALID_TYPES = [...DEFAULT_TYPES, 'uid', 'component', 'dynamiczone', 'customField'];\n\n/**\n * Returns a yup schema to validate a content type payload\n */\nconst createContentTypeSchema = (data: CreateContentTypeInput, { isEdition = false } = {}) => {\n const kind: keyof typeof VALID_RELATIONS = getOr(\n typeKinds.COLLECTION_TYPE,\n 'contentType.kind',\n data\n );\n const contentTypeSchema = createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {\n modelType: modelTypes.CONTENT_TYPE,\n })\n .shape({\n displayName: yup.string().min(1).required(),\n singularName: yup\n .string()\n .min(1)\n .test(nameIsAvailable(isEdition))\n .test(forbiddenContentTypeNameValidator())\n .isKebabCase()\n .required(),\n pluralName: yup\n .string()\n .min(1)\n .test(nameIsAvailable(isEdition))\n .test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name\n .test(forbiddenContentTypeNameValidator())\n .isKebabCase()\n .required(),\n })\n .test(\n 'singularName-not-equal-pluralName',\n '${path}: singularName and pluralName should be different',\n (value) => value.singularName !== value.pluralName\n );\n\n return yup\n .object({\n // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error\n // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features\n // without having any reference to them in CE.\n // Why not handle an \"options\" object in the content-type ? The admin panel needs lots of rework\n // to be able to send this options object instead of top-level attributes.\n // @nathan-pichon 20/02/2023\n contentType: contentTypeSchema.required().noUnknown(false),\n components: nestedComponentSchema,\n })\n .noUnknown();\n};\n\n/**\n * Validator for content type creation\n */\nexport const validateContentTypeInput = (data: CreateContentTypeInput) => {\n return validateYupSchema(createContentTypeSchema(data))(data);\n};\n\n/**\n * Validator for content type edition\n */\nexport const validateUpdateContentTypeInput = (data: CreateContentTypeInput) => {\n if (has('contentType', data)) {\n removeEmptyDefaults(data.contentType);\n removeDeletedUIDTargetFields(data.contentType as Struct.ContentTypeSchema);\n }\n\n if (has('components', data) && Array.isArray(data.components)) {\n data.components.forEach((comp) => {\n if (has('uid', comp)) {\n removeEmptyDefaults(comp as Struct.ComponentSchema);\n }\n });\n }\n\n return validateYupSchema(createContentTypeSchema(data, { isEdition: true }))(data);\n};\n\nconst forbiddenContentTypeNameValidator = () => {\n const reservedNames = getService('builder').getReservedNames().models;\n\n return {\n name: 'forbiddenContentTypeName',\n message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,\n test(value: unknown) {\n if (typeof value !== 'string') {\n return true;\n }\n\n return !getService('builder').isReservedModelName(value);\n },\n };\n};\n\nconst nameIsAvailable = (isEdition: boolean) => {\n // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as\n const usedNames = flatMap((ct: Struct.ContentTypeSchema) => {\n return [ct.info?.singularName, ct.info?.pluralName];\n })(strapi.contentTypes as any);\n\n return {\n name: 'nameAlreadyUsed',\n message: 'contentType: name `${value}` is already being used by another content type.',\n test(value: unknown) {\n // don't check on edition\n if (isEdition) return true;\n\n // ignore if not a string (will be caught in another validator)\n if (typeof value !== 'string') {\n return true;\n }\n\n // compare snake case to check the actual column names that will be used in the database\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\n },\n };\n};\n\nconst nameIsNotExistingCollectionName = (isEdition: boolean) => {\n const usedNames = Object.keys(strapi.contentTypes).map(\n (key) => strapi.contentTypes[key as Internal.UID.ContentType].collectionName\n ) as string[];\n\n return {\n name: 'nameAlreadyUsed',\n message: 'contentType: name `${value}` is already being used by another content type.',\n test(value: unknown) {\n // don't check on edition\n if (isEdition) return true;\n\n // ignore if not a string (will be caught in another validator)\n if (typeof value !== 'string') {\n return true;\n }\n\n // compare snake case to check the actual column names that will be used in the database\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\n },\n };\n};\n\n/**\n * Validates type kind\n */\nconst kindSchema = yup.string().oneOf([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]);\n\nexport const validateKind = validateYupSchema(kindSchema);\n"],"names":["VALID_RELATIONS","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","VALID_TYPES","DEFAULT_TYPES","createContentTypeSchema","data","isEdition","kind","getOr","contentTypeSchema","createSchema","modelType","modelTypes","CONTENT_TYPE","shape","displayName","yup","string","min","required","singularName","test","nameIsAvailable","forbiddenContentTypeNameValidator","isKebabCase","pluralName","nameIsNotExistingCollectionName","value","object","contentType","noUnknown","components","nestedComponentSchema","validateContentTypeInput","validateYupSchema","validateUpdateContentTypeInput","has","removeEmptyDefaults","removeDeletedUIDTargetFields","Array","isArray","forEach","comp","reservedNames","getService","getReservedNames","models","name","message","join","isReservedModelName","usedNames","flatMap","ct","info","strapi","contentTypes","every","usedName","snakeCase","Object","keys","map","key","collectionName","kindSchema","oneOf","validateKind"],"mappings":"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"}