@strapi/content-type-builder 5.12.1 → 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
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/src/config.ts","../../server/src/bootstrap.ts","../../server/src/utils/attributes.ts","../../server/src/services/schema-builder/schema-handler.ts","../../server/src/services/schema-builder/component-builder.ts","../../server/src/services/constants.ts","../../server/src/services/schema-builder/content-type-builder.ts","../../server/src/services/schema-builder/index.ts","../../server/src/services/content-types.ts","../../server/src/services/components.ts","../../server/src/services/component-categories.ts","../../server/src/services/builder.ts","../../server/src/services/api-handler.ts","../../server/src/services/index.ts","../../server/src/utils/index.ts","../../server/src/controllers/builder.ts","../../server/src/controllers/validation/common.ts","../../server/src/controllers/validation/component-category.ts","../../server/src/controllers/component-categories.ts","../../server/src/controllers/validation/types.ts","../../server/src/controllers/validation/relations.ts","../../server/src/controllers/validation/model-schema.ts","../../server/src/utils/typeguards.ts","../../server/src/controllers/validation/data-transform.ts","../../server/src/controllers/validation/component.ts","../../server/src/controllers/components.ts","../../server/src/controllers/validation/content-type.ts","../../server/src/controllers/content-types.ts","../../server/src/controllers/index.ts","../../server/src/routes/admin.ts","../../server/src/routes/content-api.ts","../../server/src/routes/index.ts","../../server/src/index.ts"],"sourcesContent":["export default {\n default: {},\n validator() {},\n};\n","import type { Core } from '@strapi/types';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n const actions = [\n {\n section: 'plugins',\n displayName: 'Read',\n uid: 'read',\n pluginName: 'content-type-builder',\n },\n ];\n\n await strapi.service('admin::permission').actionProvider.registerMany(actions);\n};\n","import _ from 'lodash';\nimport utils, { errors } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst { ApplicationError } = errors;\n\nexport const isConfigurable = (attribute: Schema.Attribute.AnyAttribute) =>\n _.get(attribute, 'configurable', true);\n\nexport const isRelation = (attribute: Schema.Attribute.AnyAttribute) =>\n attribute.type === 'relation';\n\n/**\n * Formats a component's attributes\n */\nexport const formatAttributes = (model: any) => {\n const { getVisibleAttributes } = utils.contentTypes;\n\n // only get attributes that can be seen in the CTB\n return getVisibleAttributes(model).reduce((acc: any, key) => {\n acc[key] = formatAttribute(model.attributes[key]);\n return acc;\n }, {});\n};\n\n/**\n * Formats a component attribute\n */\nexport const formatAttribute = (attribute: Schema.Attribute.AnyAttribute & Record<string, any>) => {\n const { configurable, required, autoPopulate, pluginOptions } = attribute;\n\n if (attribute.type === 'media') {\n return {\n type: 'media',\n multiple: !!attribute.multiple,\n required: !!required,\n configurable: configurable === false ? false : undefined,\n private: !!attribute.private,\n allowedTypes: attribute.allowedTypes,\n pluginOptions,\n };\n }\n\n if (attribute.type === 'relation') {\n return {\n ...attribute,\n type: 'relation',\n target: attribute.target,\n targetAttribute: attribute.inversedBy || attribute.mappedBy || null,\n configurable: configurable === false ? false : undefined,\n private: !!attribute.private,\n pluginOptions,\n // TODO: remove\n autoPopulate,\n };\n }\n\n return attribute;\n};\n\n// TODO: move to schema builder\nexport const replaceTemporaryUIDs = (uidMap: any) => (schema: any) => {\n return {\n ...schema,\n attributes: Object.keys(schema.attributes).reduce((acc: any, key) => {\n const attr = schema.attributes[key];\n if (attr.type === 'component') {\n if (_.has(uidMap, attr.component)) {\n acc[key] = {\n ...attr,\n component: uidMap[attr.component],\n };\n\n return acc;\n }\n\n if (!_.has(strapi.components, attr.component)) {\n throw new ApplicationError('component.notFound');\n }\n }\n\n if (\n attr.type === 'dynamiczone' &&\n _.intersection(attr.components, Object.keys(uidMap)).length > 0\n ) {\n acc[key] = {\n ...attr,\n components: attr.components.map((value: any) => {\n if (_.has(uidMap, value)) return uidMap[value];\n\n if (!_.has(strapi.components, value)) {\n throw new ApplicationError('component.notFound');\n }\n\n return value;\n }),\n };\n\n return acc;\n }\n\n acc[key] = attr;\n return acc;\n }, {}),\n };\n};\n","import path from 'path';\nimport type { Internal, Struct } from '@strapi/types';\nimport fse from 'fs-extra';\nimport _ from 'lodash';\n\nimport { isConfigurable } from '../../utils/attributes';\n\nexport type Infos = {\n category?: string;\n modelName?: string;\n plugin?: string;\n uid?: Internal.UID.ContentType;\n dir: string;\n filename: string;\n schema?: Struct.ContentTypeSchema;\n};\n\nexport default function createSchemaHandler(infos: Infos) {\n const { category, modelName, plugin, uid, dir, filename, schema } = infos;\n\n const initialState = {\n modelName,\n plugin,\n category,\n uid,\n dir,\n filename,\n schema:\n schema ||\n ({\n info: {},\n options: {},\n attributes: {},\n } as Struct.ContentTypeSchema),\n };\n\n const state = _.cloneDeep(initialState);\n\n // always keep it the same to rollback\n Object.freeze(initialState.schema);\n\n let modified = false;\n let deleted = false;\n\n return {\n get modelName() {\n return initialState.modelName;\n },\n\n get plugin() {\n return initialState.plugin;\n },\n\n get category() {\n return initialState.category;\n },\n\n get kind() {\n return _.get(state.schema, 'kind', 'collectionType');\n },\n\n get uid() {\n return state.uid;\n },\n\n get writable() {\n return _.get(state, 'plugin') !== 'admin';\n },\n\n setUID(val: Internal.UID.ContentType) {\n modified = true;\n\n state.uid = val;\n return this;\n },\n\n setDir(val: string) {\n modified = true;\n\n state.dir = val;\n return this;\n },\n\n get schema() {\n return _.cloneDeep(state.schema);\n },\n\n setSchema(val: Struct.ContentTypeSchema) {\n modified = true;\n\n state.schema = _.cloneDeep(val);\n return this;\n },\n\n // get a particular path inside the schema\n get(path: string[]) {\n return _.get(state.schema, path);\n },\n\n // set a particular path inside the schema\n set(path: string[] | string, val: unknown) {\n if (!state.schema) return this;\n\n modified = true;\n\n const value = _.defaultTo(val, _.get(state.schema, path));\n _.set(state.schema, path, value);\n\n return this;\n },\n\n // delete a particular path inside the schema\n unset(path: string[]) {\n modified = true;\n\n _.unset(state.schema, path);\n\n return this;\n },\n\n delete() {\n deleted = true;\n return this;\n },\n\n getAttribute(key: string) {\n return this.get(['attributes', key]);\n },\n\n setAttribute(key: string, attribute: any) {\n return this.set(['attributes', key], attribute);\n },\n\n deleteAttribute(key: string) {\n return this.unset(['attributes', key]);\n },\n\n setAttributes(newAttributes: Struct.SchemaAttributes) {\n if (!this.schema) return this;\n\n // delete old configurable attributes\n for (const key in this.schema.attributes) {\n if (isConfigurable((this.schema.attributes as any)[key])) {\n this.deleteAttribute(key);\n }\n }\n\n // set new Attributes\n for (const key of Object.keys(newAttributes)) {\n this.setAttribute(key, newAttributes[key as keyof Struct.SchemaAttributes]);\n }\n\n return this;\n },\n\n removeContentType(uid: Internal.UID.ContentType) {\n if (!state.schema) return this;\n\n const attributes = state.schema.attributes as Record<string, any>;\n\n Object.keys(attributes).forEach((key) => {\n const attribute = attributes[key];\n\n if (attribute.target === uid) {\n this.deleteAttribute(key);\n }\n });\n\n return this;\n },\n\n // utils\n removeComponent(uid: Internal.UID.Component) {\n if (!state.schema) return this;\n\n const attributes = state.schema.attributes as Record<string, any>;\n\n Object.keys(attributes).forEach((key) => {\n const attr = attributes[key];\n\n if (attr.type === 'component' && attr.component === uid) {\n this.deleteAttribute(key);\n }\n\n if (\n attr.type === 'dynamiczone' &&\n Array.isArray(attr.components) &&\n attr.components.includes(uid)\n ) {\n const updatedComponentList = attributes[key].components.filter(\n (val: string) => val !== uid\n );\n this.set(['attributes', key, 'components'], updatedComponentList);\n }\n });\n\n return this;\n },\n\n updateComponent(uid: Internal.UID.Component, newUID: Internal.UID.Component) {\n if (!state.schema) return this;\n\n const attributes = state.schema.attributes as Record<string, any>;\n\n Object.keys(attributes).forEach((key) => {\n const attr = attributes[key];\n\n if (attr.type === 'component' && attr.component === uid) {\n this.set(['attributes', key, 'component'], newUID);\n }\n\n if (\n attr.type === 'dynamiczone' &&\n Array.isArray(attr.components) &&\n attr.components.includes(uid)\n ) {\n const updatedComponentList = attr.components.map((val: string) =>\n val === uid ? newUID : val\n );\n\n this.set(['attributes', key, 'components'], updatedComponentList);\n }\n });\n\n return this;\n },\n\n // save the schema to disk\n async flush() {\n if (!this.writable) {\n return;\n }\n\n const initialPath = path.join(initialState.dir, initialState.filename);\n const filePath = path.join(state.dir, state.filename);\n\n if (deleted) {\n await fse.remove(initialPath);\n\n const list = await fse.readdir(initialState.dir);\n if (list.length === 0) {\n await fse.remove(initialState.dir);\n }\n\n return;\n }\n\n if (modified) {\n if (!state.schema) return Promise.resolve();\n\n await fse.ensureFile(filePath);\n\n await fse.writeJSON(\n filePath,\n {\n kind: state.schema.kind,\n collectionName: state.schema.collectionName,\n info: state.schema.info,\n options: state.schema.options,\n pluginOptions: state.schema.pluginOptions,\n attributes: state.schema.attributes,\n config: (state.schema as any).config,\n },\n { spaces: 2 }\n );\n\n // remove from oldPath\n if (initialPath !== filePath) {\n await fse.remove(initialPath);\n\n const list = await fse.readdir(initialState.dir);\n if (list.length === 0) {\n await fse.remove(initialState.dir);\n }\n }\n\n return;\n }\n\n return Promise.resolve();\n },\n\n // reset the schema to its initial value\n async rollback() {\n if (!this.writable) {\n return;\n }\n\n const initialPath = path.join(initialState.dir, initialState.filename);\n const filePath = path.join(state.dir, state.filename);\n\n // it was a creation so it needs to be deleted\n if (!initialState.uid) {\n await fse.remove(filePath);\n\n const list = await fse.readdir(state.dir);\n if (list.length === 0) {\n await fse.remove(state.dir);\n }\n return;\n }\n\n if (modified || deleted) {\n await fse.ensureFile(initialPath);\n await fse.writeJSON(initialPath, initialState.schema, { spaces: 2 });\n\n // remove\n if (initialPath !== filePath) {\n await fse.remove(filePath);\n\n const list = await fse.readdir(state.dir);\n if (list.length === 0) {\n await fse.remove(state.dir);\n }\n }\n }\n\n return Promise.resolve();\n },\n };\n}\n","import path from 'path';\nimport type { Internal } from '@strapi/types';\nimport _ from 'lodash';\nimport pluralize from 'pluralize';\n\nimport { strings, errors } from '@strapi/utils';\nimport { isConfigurable } from '../../utils/attributes';\nimport createSchemaHandler from './schema-handler';\n\nconst { ApplicationError } = errors;\n\nexport default function createComponentBuilder() {\n return {\n createComponentUID({ category, displayName }: any) {\n return `${strings.nameToSlug(category)}.${strings.nameToSlug(displayName)}`;\n },\n\n createNewComponentUIDMap(components: object[]) {\n return components.reduce((uidMap: any, component: any) => {\n uidMap[component.tmpUID] = this.createComponentUID(component);\n return uidMap;\n }, {});\n },\n\n /**\n * create a component in the tmpComponent map\n */\n createComponent(this: any, infos: any) {\n const uid = this.createComponentUID(infos);\n\n if (this.components.has(uid)) {\n throw new ApplicationError('component.alreadyExists');\n }\n\n const handler = createSchemaHandler({\n dir: path.join(strapi.dirs.app.components, strings.nameToSlug(infos.category)),\n filename: `${strings.nameToSlug(infos.displayName)}.json`,\n });\n\n // TODO: create a utility for this\n // Duplicate in admin/src/components/FormModal/forms/utils/createCollectionName.ts\n const collectionName = `components_${strings.nameToCollectionName(\n infos.category\n )}_${strings.nameToCollectionName(pluralize(infos.displayName))}`;\n\n this.components.forEach((compo: any) => {\n if (compo.schema.collectionName === collectionName) {\n throw new ApplicationError('component.alreadyExists');\n }\n });\n\n handler\n .setUID(uid)\n .set('collectionName', collectionName)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .set('config', infos.config)\n .setAttributes(this.convertAttributes(infos.attributes));\n\n if (this.components.size === 0) {\n strapi.telemetry.send('didCreateFirstComponent');\n } else {\n strapi.telemetry.send('didCreateComponent');\n }\n\n this.components.set(uid, handler);\n\n return handler;\n },\n\n /**\n * create a component in the tmpComponent map\n */\n editComponent(this: any, infos: any) {\n const { uid } = infos;\n\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n const component = this.components.get(uid);\n\n const [, nameUID] = uid.split('.');\n\n const newCategory = strings.nameToSlug(infos.category);\n const newUID = `${newCategory}.${nameUID}`;\n\n if (newUID !== uid && this.components.has(newUID)) {\n throw new errors.ApplicationError('component.edit.alreadyExists');\n }\n\n const newDir = path.join(strapi.dirs.app.components, newCategory);\n\n const oldAttributes = component.schema.attributes;\n\n const newAttributes = _.omitBy(infos.attributes, (attr, key) => {\n return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);\n });\n\n component\n .setUID(newUID)\n .setDir(newDir)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .setAttributes(this.convertAttributes(newAttributes));\n\n if (newUID !== uid) {\n this.components.forEach((compo: any) => {\n compo.updateComponent(uid, newUID);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.updateComponent(uid, newUID);\n });\n }\n\n return component;\n },\n\n deleteComponent(this: any, uid: Internal.UID.Component) {\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n this.components.forEach((compo: any) => {\n compo.removeComponent(uid);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.removeComponent(uid);\n });\n\n return this.components.get(uid).delete();\n },\n };\n}\n","export const modelTypes = {\n CONTENT_TYPE: 'CONTENT_TYPE',\n COMPONENT: 'COMPONENT',\n} as const;\n\nexport const typeKinds = {\n SINGLE_TYPE: 'singleType',\n COLLECTION_TYPE: 'collectionType',\n} as const;\n\nexport const DEFAULT_TYPES = [\n // advanced types\n 'media',\n\n // scalar types\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'date',\n 'time',\n 'datetime',\n 'timestamp',\n 'boolean',\n\n 'relation',\n] as const;\n\nexport const VALID_UID_TARGETS = ['string', 'text'] as const;\n\nexport const coreUids = {\n STRAPI_USER: 'admin::user',\n PREFIX: 'strapi::',\n} as const;\n\nexport const pluginsUids = {\n UPLOAD_FILE: 'plugin::upload.file',\n} as const;\n","import path from 'path';\nimport _ from 'lodash';\n\nimport { strings, errors } from '@strapi/utils';\nimport type { Schema, Internal } from '@strapi/types';\nimport { isRelation, isConfigurable } from '../../utils/attributes';\nimport { typeKinds } from '../constants';\nimport createSchemaHandler from './schema-handler';\nimport { CreateContentTypeInput } from '../../controllers/validation/content-type';\n\nconst { ApplicationError } = errors;\n\nconst reuseUnsetPreviousProperties = (\n newAttribute: Schema.Attribute.AnyAttribute,\n oldAttribute: Schema.Attribute.AnyAttribute\n) => {\n _.defaults(\n newAttribute,\n _.omit(oldAttribute, [\n 'configurable',\n 'required',\n 'private',\n 'unique',\n 'pluginOptions',\n 'inversedBy',\n 'mappedBy',\n ])\n );\n};\n\nexport default function createComponentBuilder() {\n return {\n setRelation(this: any, { key, uid, attribute }: any) {\n if (!_.has(attribute, 'target')) {\n return;\n }\n\n const targetCT = this.contentTypes.get(attribute.target);\n const targetAttribute = targetCT.getAttribute(attribute.targetAttribute);\n\n if (!attribute.targetAttribute) {\n return;\n }\n\n targetCT.setAttribute(\n attribute.targetAttribute,\n generateRelation({ key, attribute, uid, targetAttribute })\n );\n },\n\n unsetRelation(this: any, attribute: any) {\n if (!_.has(attribute, 'target')) {\n return;\n }\n\n const targetCT = this.contentTypes.get(attribute.target);\n\n const targetAttributeName = attribute.inversedBy || attribute.mappedBy;\n const targetAttribute = targetCT.getAttribute(targetAttributeName);\n\n if (!targetAttribute) return;\n\n return targetCT.deleteAttribute(targetAttributeName);\n },\n\n /**\n * Creates a content type in memory to be written to files later on\n */\n createContentType(this: any, infos: CreateContentTypeInput) {\n const uid = createContentTypeUID(infos);\n\n if (this.contentTypes.has(uid)) {\n throw new ApplicationError('contentType.alreadyExists');\n }\n\n const contentType = createSchemaHandler({\n modelName: infos.singularName,\n dir: path.join(\n strapi.dirs.app.api,\n infos.singularName,\n 'content-types',\n infos.singularName\n ),\n filename: `schema.json`,\n });\n\n this.contentTypes.set(uid, contentType);\n\n // support self referencing content type relation\n Object.keys(infos.attributes).forEach((key) => {\n const { target } = infos.attributes[key];\n if (target === '__self__') {\n infos.attributes[key].target = uid;\n }\n });\n\n contentType\n .setUID(uid)\n .set('kind', infos.kind || typeKinds.COLLECTION_TYPE)\n .set(\n 'collectionName',\n infos.collectionName || strings.nameToCollectionName(infos.pluralName)\n )\n .set('info', {\n singularName: infos.singularName,\n pluralName: infos.pluralName,\n displayName: infos.displayName,\n description: infos.description,\n })\n .set('options', {\n ...(infos.options ?? {}),\n draftAndPublish: infos.draftAndPublish,\n })\n .set('pluginOptions', infos.pluginOptions)\n .set('config', infos.config)\n .setAttributes(this.convertAttributes(infos.attributes));\n\n Object.keys(infos.attributes).forEach((key) => {\n const attribute = infos.attributes[key];\n\n if (isRelation(attribute)) {\n if (['manyToMany', 'oneToOne'].includes(attribute.relation)) {\n if (attribute.target === uid && attribute.targetAttribute !== undefined) {\n // self referencing relation\n const targetAttribute = infos.attributes[attribute.targetAttribute];\n\n if (targetAttribute.dominant === undefined) {\n attribute.dominant = true;\n } else {\n attribute.dominant = false;\n }\n } else {\n attribute.dominant = true;\n }\n }\n\n this.setRelation({\n key,\n uid,\n attribute,\n });\n }\n });\n\n return contentType;\n },\n\n editContentType(this: any, infos: any) {\n const { uid } = infos;\n\n if (!this.contentTypes.has(uid)) {\n throw new ApplicationError('contentType.notFound');\n }\n\n const contentType = this.contentTypes.get(uid);\n\n const oldAttributes = contentType.schema.attributes;\n\n const newAttributes = _.omitBy(infos.attributes, (attr, key) => {\n return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);\n });\n\n const newKeys = _.difference(Object.keys(newAttributes), Object.keys(oldAttributes));\n const deletedKeys = _.difference(Object.keys(oldAttributes), Object.keys(newAttributes));\n const remainingKeys = _.intersection(Object.keys(oldAttributes), Object.keys(newAttributes));\n\n // remove old relations\n deletedKeys.forEach((key) => {\n const attribute = oldAttributes[key];\n\n const targetAttributeName = attribute.inversedBy || attribute.mappedBy;\n\n // if the old relation has a target attribute. we need to remove it in the target type\n if (isConfigurable(attribute) && isRelation(attribute) && !_.isNil(targetAttributeName)) {\n this.unsetRelation(attribute);\n }\n });\n\n remainingKeys.forEach((key) => {\n const oldAttribute = oldAttributes[key];\n const newAttribute = newAttributes[key];\n\n if (!isRelation(oldAttribute) && isRelation(newAttribute)) {\n return this.setRelation({\n key,\n uid,\n attribute: newAttributes[key],\n });\n }\n\n if (isRelation(oldAttribute) && !isRelation(newAttribute)) {\n return this.unsetRelation(oldAttribute);\n }\n\n if (isRelation(oldAttribute) && isRelation(newAttribute)) {\n const oldTargetAttributeName = oldAttribute.inversedBy || oldAttribute.mappedBy;\n\n const sameRelation = oldAttribute.relation === newAttribute.relation;\n const targetAttributeHasChanged = oldTargetAttributeName !== newAttribute.targetAttribute;\n\n if (!sameRelation || targetAttributeHasChanged) {\n this.unsetRelation(oldAttribute);\n }\n\n // keep extra options that were set manually on oldAttribute\n reuseUnsetPreviousProperties(newAttribute, oldAttribute);\n\n if (oldAttribute.inversedBy) {\n newAttribute.dominant = true;\n } else if (oldAttribute.mappedBy) {\n newAttribute.dominant = false;\n }\n\n return this.setRelation({\n key,\n uid,\n attribute: newAttribute,\n });\n }\n });\n\n // add new relations\n newKeys.forEach((key) => {\n const attribute = newAttributes[key];\n\n if (isRelation(attribute)) {\n if (['manyToMany', 'oneToOne'].includes(attribute.relation)) {\n if (attribute.target === uid && attribute.targetAttribute !== undefined) {\n // self referencing relation\n const targetAttribute = newAttributes[attribute.targetAttribute];\n\n if (targetAttribute.dominant === undefined) {\n attribute.dominant = true;\n } else {\n attribute.dominant = false;\n }\n } else {\n attribute.dominant = true;\n }\n }\n\n this.setRelation({\n key,\n uid,\n attribute,\n });\n }\n });\n\n contentType\n .set('kind', infos.kind || contentType.schema.kind)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'description'], infos.description)\n .set('options', {\n ...(infos.options ?? {}),\n draftAndPublish: infos.draftAndPublish,\n })\n .set('pluginOptions', infos.pluginOptions)\n .setAttributes(this.convertAttributes(newAttributes));\n\n return contentType;\n },\n\n deleteContentType(this: any, uid: string) {\n if (!this.contentTypes.has(uid)) {\n throw new ApplicationError('contentType.notFound');\n }\n\n this.components.forEach((compo: any) => {\n compo.removeContentType(uid);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.removeContentType(uid);\n });\n\n return this.contentTypes.get(uid).delete();\n },\n };\n}\n\n/**\n * Returns a uid from a content type infos\n *\n * @param {object} options options\n * @param {string} options.singularName content-type singularName\n * @returns {string} uid\n */\nconst createContentTypeUID = ({\n singularName,\n}: {\n singularName: string;\n}): Internal.UID.ContentType => `api::${singularName}.${singularName}`;\n\nconst generateRelation = ({ key, attribute, uid, targetAttribute = {} }: any) => {\n const opts: any = {\n type: 'relation',\n target: uid,\n autoPopulate: targetAttribute.autoPopulate,\n private: targetAttribute.private || undefined,\n pluginOptions: targetAttribute.pluginOptions || undefined,\n };\n\n switch (attribute.relation) {\n case 'oneToOne': {\n opts.relation = 'oneToOne';\n\n if (attribute.dominant) {\n opts.mappedBy = key;\n } else {\n opts.inversedBy = key;\n }\n break;\n }\n case 'oneToMany': {\n opts.relation = 'manyToOne';\n opts.inversedBy = key;\n break;\n }\n case 'manyToOne': {\n opts.relation = 'oneToMany';\n opts.mappedBy = key;\n break;\n }\n case 'manyToMany': {\n opts.relation = 'manyToMany';\n\n if (attribute.dominant) {\n opts.mappedBy = key;\n } else {\n opts.inversedBy = key;\n }\n\n break;\n }\n default:\n }\n\n // we do this just to make sure we have the same key order when writing to files\n const { type, relation, target, ...restOptions } = opts;\n\n return {\n type,\n relation,\n target,\n ...restOptions,\n };\n};\n","import { join } from 'path';\nimport _ from 'lodash';\n\nimport { errors } from '@strapi/utils';\nimport createSchemaHandler from './schema-handler';\nimport createComponentBuilder from './component-builder';\nimport createContentTypeBuilder from './content-type-builder';\n\n/**\n * Creates a content type schema builder instance\n */\nexport default function createBuilder() {\n const components = Object.values(strapi.components).map((componentInput) => ({\n category: componentInput.category,\n modelName: componentInput.modelName,\n plugin: componentInput.modelName,\n uid: componentInput.uid,\n filename: componentInput.__filename__,\n dir: join(strapi.dirs.app.components, componentInput.category),\n schema: componentInput.__schema__,\n config: componentInput.config,\n }));\n\n const contentTypes = Object.values<any>(strapi.contentTypes).map((contentTypeInput) => {\n const dir = contentTypeInput.plugin\n ? join(\n strapi.dirs.app.extensions,\n contentTypeInput.plugin,\n 'content-types',\n contentTypeInput.info.singularName\n )\n : join(\n strapi.dirs.app.api,\n contentTypeInput.apiName,\n 'content-types',\n contentTypeInput.info.singularName\n );\n\n return {\n modelName: contentTypeInput.modelName,\n plugin: contentTypeInput.plugin,\n uid: contentTypeInput.uid,\n filename: 'schema.json',\n dir,\n schema: contentTypeInput.__schema__,\n config: contentTypeInput.config,\n };\n });\n\n return createSchemaBuilder({\n components,\n contentTypes,\n });\n}\n\ntype SchemaBuilderOptions = {\n components: any;\n contentTypes: any;\n};\n\nfunction createSchemaBuilder({ components, contentTypes }: SchemaBuilderOptions) {\n const tmpComponents = new Map();\n const tmpContentTypes = new Map();\n\n // init temporary ContentTypes\n Object.keys(contentTypes).forEach((key) => {\n tmpContentTypes.set(contentTypes[key].uid, createSchemaHandler(contentTypes[key]));\n });\n\n // init temporary components\n Object.keys(components).forEach((key) => {\n tmpComponents.set(components[key].uid, createSchemaHandler(components[key]));\n });\n\n return {\n get components() {\n return tmpComponents;\n },\n get contentTypes() {\n return tmpContentTypes;\n },\n\n /**\n * Convert Attributes received from the API to the right syntax\n */\n convertAttributes(attributes: any) {\n return Object.keys(attributes).reduce(\n (acc, key) => {\n const attribute = attributes[key];\n\n const { configurable, private: isPrivate } = attribute;\n\n const baseProperties = {\n private: isPrivate === true ? true : undefined,\n configurable: configurable === false ? false : undefined,\n };\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute, dominant, ...restOfProperties } = attribute;\n\n const attr = {\n type: 'relation',\n relation,\n target,\n ...restOfProperties,\n ...baseProperties,\n };\n\n acc[key] = attr;\n\n if (target && !this.contentTypes.has(target)) {\n throw new errors.ApplicationError(`target: ${target} does not exist`);\n }\n\n if (_.isNil(targetAttribute)) {\n return acc;\n }\n\n if (['oneToOne', 'manyToMany'].includes(relation) && dominant === true) {\n attr.inversedBy = targetAttribute;\n } else if (['oneToOne', 'manyToMany'].includes(relation) && dominant === false) {\n attr.mappedBy = targetAttribute;\n } else if (['oneToOne', 'manyToOne', 'manyToMany'].includes(relation)) {\n attr.inversedBy = targetAttribute;\n } else if (['oneToMany'].includes(relation)) {\n attr.mappedBy = targetAttribute;\n }\n\n return acc;\n }\n\n acc[key] = {\n ...attribute,\n ...baseProperties,\n };\n\n return acc;\n },\n {} as Record<string, unknown>\n );\n },\n\n ...createComponentBuilder(),\n ...createContentTypeBuilder(),\n\n /**\n * Write all type to files\n */\n writeFiles() {\n const schemas = [\n ...Array.from(tmpComponents.values()),\n ...Array.from(tmpContentTypes.values()),\n ];\n\n return Promise.all(schemas.map((schema) => schema.flush()))\n .catch((error) => {\n strapi.log.error('Error writing schema files');\n strapi.log.error(error);\n return this.rollback();\n })\n .catch((error) => {\n strapi.log.error(\n 'Error rolling back schema files. You might need to fix your files manually'\n );\n strapi.log.error(error);\n\n throw new errors.ApplicationError('Invalid schema edition');\n });\n },\n\n /**\n * rollback all files\n */\n rollback() {\n return Promise.all(\n [...Array.from(tmpComponents.values()), ...Array.from(tmpContentTypes.values())].map(\n (schema) => schema.rollback()\n )\n );\n },\n };\n}\n","import _ from 'lodash';\nimport { getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport type { UID, Struct } from '@strapi/types';\nimport { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes';\nimport createBuilder from './schema-builder';\nimport { coreUids, pluginsUids } from './constants';\n\nconst { ApplicationError } = errors;\n\nexport const isContentTypeVisible = (model: Struct.ContentTypeSchema) =>\n getOr(true, 'pluginOptions.content-type-builder.visible', model) === true;\n\nexport const getRestrictRelationsTo = (contentType: Struct.ContentTypeSchema) => {\n const { uid } = contentType;\n if (uid === coreUids.STRAPI_USER) {\n // TODO: replace with an obj { relation: 'x', bidirectional: true|false }\n return ['oneWay', 'manyWay'];\n }\n\n if (\n uid.startsWith(coreUids.PREFIX) ||\n uid === pluginsUids.UPLOAD_FILE ||\n !isContentTypeVisible(contentType)\n ) {\n return [];\n }\n\n return null;\n};\n\n/**\n * Format a contentType info to be used by the front-end\n */\nexport const formatContentType = (contentType: any) => {\n const { uid, kind, modelName, plugin, collectionName, info } = contentType;\n\n return {\n uid,\n plugin,\n apiID: modelName,\n schema: {\n ...contentTypesUtils.getOptions(contentType),\n displayName: info.displayName,\n singularName: info.singularName,\n pluralName: info.pluralName,\n description: _.get(info, 'description', ''),\n pluginOptions: contentType.pluginOptions,\n kind: kind || 'collectionType',\n collectionName,\n attributes: formatAttributes(contentType),\n visible: isContentTypeVisible(contentType),\n restrictRelationsTo: getRestrictRelationsTo(contentType),\n },\n };\n};\n\nexport const createContentTypes = async (contentTypes: any[]) => {\n const builder = createBuilder();\n const createdContentTypes: any[] = [];\n\n for (const contentType of contentTypes) {\n createdContentTypes.push(await createContentType(contentType, { defaultBuilder: builder }));\n }\n\n await builder.writeFiles();\n\n return createdContentTypes;\n};\n\ntype CreateContentTypeOptions = {\n defaultBuilder?: any; // TODO\n};\n\n/**\n * Creates a content type and handle the nested components sent with it\n */\nexport const createContentType = async (\n { contentType, components }: any,\n options: CreateContentTypeOptions = {}\n) => {\n const builder = options.defaultBuilder || createBuilder();\n const uidMap = builder.createNewComponentUIDMap(components || []);\n\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const newContentType = builder.createContentType(replaceTmpUIDs(contentType));\n\n // allow components to target the new contentType\n const targetContentType = (infos: any) => {\n Object.keys(infos.attributes).forEach((key) => {\n const { target } = infos.attributes[key];\n if (target === '__contentType__') {\n infos.attributes[key].target = newContentType.uid;\n }\n });\n\n return infos;\n };\n\n components?.forEach((component: any) => {\n const options = replaceTmpUIDs(targetContentType(component));\n\n if (!_.has(component, 'uid')) {\n return builder.createComponent(options);\n }\n\n return builder.editComponent(options);\n });\n\n // generate api skeleton\n await generateAPI({\n displayName: contentType!.displayName || contentType!.info.displayName,\n singularName: contentType!.singularName,\n pluralName: contentType!.pluralName,\n kind: contentType!.kind,\n });\n\n if (!options.defaultBuilder) {\n await builder.writeFiles();\n }\n\n strapi.eventHub.emit('content-type.create', { contentType: newContentType });\n\n return newContentType;\n};\n\n/**\n * Generate an API skeleton\n */\nexport const generateAPI = ({\n singularName,\n kind = 'collectionType',\n pluralName,\n displayName,\n}: any) => {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const strapiGenerators = require('@strapi/generators');\n return strapiGenerators.generate(\n 'content-type',\n {\n kind,\n singularName,\n id: singularName,\n pluralName,\n displayName,\n destination: 'new',\n bootstrapApi: true,\n attributes: [],\n },\n { dir: strapi.dirs.app.root }\n );\n};\n\n/**\n * Edits a contentType and handle the nested contentTypes sent with it\n */\nexport const editContentType = async (\n uid: UID.ContentType,\n { contentType, components = [] }: any\n) => {\n const builder = createBuilder();\n\n const previousSchema = builder.contentTypes.get(uid).schema;\n const previousKind = previousSchema.kind;\n const newKind = contentType.kind || previousKind;\n\n // Restore non-visible attributes from previous schema\n const previousAttributes = previousSchema.attributes;\n const prevNonVisibleAttributes = contentTypesUtils\n .getNonVisibleAttributes(previousSchema)\n .reduce((acc, key) => {\n if (key in previousAttributes) {\n acc[key] = previousAttributes[key];\n }\n\n return acc;\n }, {} as any);\n contentType.attributes = _.merge(prevNonVisibleAttributes, contentType.attributes);\n\n if (newKind !== previousKind && newKind === 'singleType') {\n const entryCount = await strapi.db.query(uid).count();\n if (entryCount > 1) {\n throw new ApplicationError(\n 'You cannot convert a collectionType to a singleType when having multiple entries in DB'\n );\n }\n }\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const updatedContentType = builder.editContentType({\n uid,\n ...replaceTmpUIDs(contentType),\n });\n\n components.forEach((component: any) => {\n if (!_.has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n if (newKind !== previousKind) {\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n try {\n await apiHandler.clear(uid);\n\n // generate new api skeleton\n await generateAPI({\n displayName: updatedContentType.schema.info.displayName,\n singularName: updatedContentType.schema.info.singularName,\n pluralName: updatedContentType.schema.info.pluralName,\n kind: updatedContentType.schema.kind,\n });\n\n await builder.writeFiles();\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n\n return updatedContentType;\n }\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('content-type.update', { contentType: updatedContentType });\n\n return updatedContentType;\n};\n\nexport const deleteContentTypes = async (uids: UID.ContentType[]) => {\n const builder = createBuilder();\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n\n for (const uid of uids) {\n await deleteContentType(uid, builder);\n }\n\n await builder.writeFiles();\n for (const uid of uids) {\n try {\n await apiHandler.clear(uid);\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n }\n};\n\n/**\n * Deletes a content type and the api files related to it\n */\nexport const deleteContentType = async (uid: UID.ContentType, defaultBuilder: any = undefined) => {\n const builder = defaultBuilder || createBuilder();\n // make a backup\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n const contentType = builder.deleteContentType(uid);\n\n if (!defaultBuilder) {\n try {\n await builder.writeFiles();\n await apiHandler.clear(uid);\n } catch (error) {\n await apiHandler.rollback(uid);\n }\n }\n\n strapi.eventHub.emit('content-type.delete', { contentType });\n\n return contentType;\n};\n","import type { Internal, Struct } from '@strapi/types';\nimport { get, has } from 'lodash';\n\nimport { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes';\nimport createBuilder from './schema-builder';\n\n/**\n * Formats a component attributes\n */\nexport const formatComponent = (component: any) => {\n const { uid, modelName, connection, collectionName, info, category } = component;\n\n return {\n uid,\n category,\n apiId: modelName,\n schema: {\n displayName: get(info, 'displayName'),\n description: get(info, 'description', ''),\n icon: get(info, 'icon'),\n connection,\n collectionName,\n pluginOptions: component.pluginOptions,\n attributes: formatAttributes(component),\n },\n };\n};\n\n/**\n * Creates a component and handle the nested components sent with it\n */\nexport const createComponent = async ({ component, components = [] }: any) => {\n const builder = createBuilder();\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const newComponent = builder.createComponent(replaceTmpUIDs(component));\n\n components.forEach((component: any) => {\n if (!has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.create', { component: newComponent });\n\n return newComponent;\n};\n\ntype ComponentToCreate = {\n component: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n};\n\nexport const editComponent = async (\n uid: Internal.UID.Component,\n { component, components = [] }: ComponentToCreate\n) => {\n const builder = createBuilder();\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const updatedComponent = builder.editComponent({\n uid,\n ...replaceTmpUIDs(component),\n });\n\n components.forEach((component) => {\n if (!has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.update', { component: updatedComponent });\n\n return updatedComponent;\n};\n\nexport const deleteComponent = async (uid: Internal.UID.Component) => {\n const builder = createBuilder();\n\n const deletedComponent = builder.deleteComponent(uid);\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.delete', { component: deletedComponent });\n\n return deletedComponent;\n};\n","import { join } from 'path';\nimport { strings, errors } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport createBuilder from './schema-builder';\n\ntype Infos = {\n name: string;\n};\n\ninterface WorkingComponent extends Struct.ComponentSchema {\n setUID: (uid: string) => WorkingComponent;\n setDir: (dir: string) => WorkingComponent;\n updateComponent: (oldUID: string, newUID: string) => void;\n}\n\n/**\n * Edit a category name and move components to the write folder\n */\nexport const editCategory = async (name: string, infos: Infos) => {\n const newName = strings.nameToSlug(infos.name);\n\n // don't do anything the name doesn't change\n if (name === newName) return;\n\n if (!categoryExists(name)) {\n throw new errors.ApplicationError('category not found');\n }\n\n if (categoryExists(newName)) {\n throw new errors.ApplicationError('Name already taken');\n }\n\n const builder = createBuilder();\n\n builder.components.forEach((component: WorkingComponent) => {\n const oldUID = component.uid;\n const newUID = `${newName}.${component.modelName}`;\n\n // only edit the components in this specific category\n if (component.category !== name) return;\n\n component.setUID(newUID).setDir(join(strapi.dirs.app.components, newName));\n\n builder.components.forEach((compo: WorkingComponent) => {\n compo.updateComponent(oldUID, newUID);\n });\n\n builder.contentTypes.forEach((ct: WorkingComponent) => {\n ct.updateComponent(oldUID, newUID);\n });\n });\n\n await builder.writeFiles();\n\n return newName;\n};\n\n/**\n * Deletes a category and its components\n */\nexport const deleteCategory = async (name: string) => {\n if (!categoryExists(name)) {\n throw new errors.ApplicationError('category not found');\n }\n\n const builder = createBuilder();\n\n builder.components.forEach((component) => {\n if (component.category === name) {\n builder.deleteComponent(component.uid);\n }\n });\n\n await builder.writeFiles();\n};\n\n/**\n * Checks if a category exists\n */\nconst categoryExists = (name: string) => {\n const matchingIndex = Object.values(strapi.components).findIndex(\n (component) => component.category === name\n );\n\n return matchingIndex > -1;\n};\n","import { snakeCase } from 'lodash/fp';\n\n// use snake_case\nexport const reservedAttributes = [\n // TODO: these need to come from a centralized place so we don't break things accidentally in the future and can share them outside the CTB, for example on Strapi bootstrap prior to schema db sync\n\n // ID fields\n 'id',\n 'document_id',\n\n // Creator fields\n 'created_at',\n 'updated_at',\n 'published_at',\n 'created_by_id',\n 'updated_by_id',\n // does not actually conflict because the fields are called *_by_id but we'll leave it to avoid confusion\n 'created_by',\n 'updated_by',\n\n // Used for Strapi functionality\n 'entry_id',\n 'status',\n 'localizations',\n 'meta',\n 'locale',\n '__component',\n '__contentType',\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\n// use snake_case\nexport const reservedModels = [\n 'boolean',\n 'date',\n 'date_time',\n 'time',\n 'upload',\n 'document',\n 'then', // no longer an issue but still restricting for being a javascript keyword\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\nexport const getReservedNames = () => {\n return {\n models: reservedModels,\n attributes: reservedAttributes,\n };\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedModelName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedModels.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedModels\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedAttributeName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedAttributes.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedAttributes\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n","import * as path from 'path';\nimport * as fse from 'fs-extra';\nimport type { Internal } from '@strapi/types';\n\n/**\n * Deletes the API folder of a contentType\n */\nexport async function clear(uid: Internal.UID.ContentType) {\n // TODO double check if this is the correct way to get the apiName\n const { apiName, modelName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n\n await recursiveRemoveFiles(apiFolder, createDeleteApiFunction(modelName));\n await deleteBackup(uid);\n}\n\n/**\n * Backups the API folder of a contentType\n * @param {string} uid content type uid\n */\nexport async function backup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n // backup the api folder\n await fse.copy(apiFolder, backupFolder);\n}\n\n/**\n * Deletes an API backup folder\n */\nasync function deleteBackup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const backupFolder = path.join(strapi.dirs.app.api, '.backup');\n const apiBackupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n await fse.remove(apiBackupFolder);\n\n const list = await fse.readdir(backupFolder);\n if (list.length === 0) {\n await fse.remove(backupFolder);\n }\n}\n\n/**\n * Rollbacks the API folder of a contentType\n */\nexport async function rollback(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n try {\n await fse.access(backupFolder);\n } catch {\n throw new Error('Cannot rollback api that was not backed up');\n }\n\n await fse.remove(apiFolder);\n await fse.copy(backupFolder, apiFolder);\n await deleteBackup(uid);\n}\n\n/**\n * Creates a delete function to clear an api folder\n */\nconst createDeleteApiFunction = (baseName: string) => {\n /**\n * Delets a file in an api.\n * Will only update routes.json instead of deleting it if other routes are present\n */\n return async (filePath: string) => {\n const fileName = path.basename(filePath, path.extname(filePath));\n\n const isSchemaFile = filePath.endsWith(`${baseName}/schema.json`);\n if (fileName === baseName || isSchemaFile) {\n return fse.remove(filePath);\n }\n };\n};\n\n/**\n * Deletes a folder recursively using a delete function\n * @param {string} folder folder to delete\n */\nconst recursiveRemoveFiles = async (folder: string, deleteFn: (file: string) => unknown) => {\n const filesName = await fse.readdir(folder);\n\n for (const fileName of filesName) {\n const filePath = path.join(folder, fileName);\n\n const stat = await fse.stat(filePath);\n\n if (stat.isDirectory()) {\n await recursiveRemoveFiles(filePath, deleteFn);\n } else {\n await deleteFn(filePath);\n }\n }\n\n const files = await fse.readdir(folder);\n if (files.length === 0) {\n await fse.remove(folder);\n }\n};\n","import * as contentTypes from './content-types';\nimport * as components from './components';\nimport * as componentCategories from './component-categories';\nimport * as builder from './builder';\nimport * as apiHandler from './api-handler';\n\nexport default {\n 'content-types': contentTypes,\n components,\n 'component-categories': componentCategories,\n builder,\n 'api-handler': apiHandler,\n};\n","import type * as components from '../services/components';\nimport type * as builder from '../services/builder';\nimport type * as contentTypes from '../services/content-types';\nimport type * as componentCategories from '../services/component-categories';\nimport type * as apiHandler from '../services/api-handler';\n\ntype S = {\n 'content-types': typeof contentTypes;\n components: typeof components;\n 'component-categories': typeof componentCategories;\n builder: typeof builder;\n 'api-handler': typeof apiHandler;\n};\n\nexport function getService<T extends keyof S>(\n name: T\n): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T] {\n return strapi.plugin('content-type-builder').service(name);\n}\n","import type { Context } from 'koa';\nimport { getService } from '../utils';\n\nexport default {\n getReservedNames(ctx: Context) {\n ctx.body = getService('builder').getReservedNames();\n },\n};\n","/* 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","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","import type { Context } from 'koa';\nimport { getService } from '../utils';\nimport validateComponentCategory from './validation/component-category';\n\nexport default {\n async editCategory(ctx: Context) {\n const body = ctx.request.body as any;\n\n try {\n await validateComponentCategory(body);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n const { name } = ctx.params;\n\n strapi.reload.isWatching = false;\n\n const componentCategoryService = getService('component-categories');\n\n const newName = await componentCategoryService.editCategory(name, body);\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ name: newName });\n },\n\n async deleteCategory(ctx: Context) {\n const { name } = ctx.params;\n\n strapi.reload.isWatching = false;\n\n const componentCategoryService = getService('component-categories');\n\n await componentCategoryService.deleteCategory(name);\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ name });\n },\n};\n","import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidUID,\n isValidRegExpPattern,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\n multiple: yup.boolean(),\n required: validators.required,\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1),\n };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function (value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(isValidUID),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n };\n }\n\n /**\n * scalar types\n */\n case 'string':\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test('isArray', '${path} must be an array', (value) => Array.isArray(value))\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n","import { isUndefined } from 'lodash/fp';\nimport { yup } from '@strapi/utils';\nimport type { TestContext, TestFunction } from 'yup';\nimport type { Schema, UID } from '@strapi/types';\nimport { typeKinds, coreUids } from '../../services/constants';\nimport { isValidName } from './common';\n\nconst STRAPI_USER_RELATIONS = ['oneToOne', 'oneToMany'];\n\nconst isValidRelation = (validNatures: ReadonlyArray<string>): TestFunction<string | undefined> =>\n function (this: TestContext, value) {\n // NOTE: In case of an undefined value, delegate the check to .required()\n if (value === undefined) {\n return true;\n }\n\n if (this.parent.target === coreUids.STRAPI_USER) {\n if (!validNatures.includes(value) || !isUndefined(this.parent.targetAttribute)) {\n return this.createError({\n path: this.path,\n message: `must be one of the following values: ${STRAPI_USER_RELATIONS.join(', ')}`,\n });\n }\n }\n\n return validNatures.includes(value)\n ? true\n : this.createError({\n path: this.path,\n message: `must be one of the following values: ${validNatures.join(', ')}`,\n });\n };\n\nexport const getRelationValidator = (\n attribute: Schema.Attribute.Relation,\n allowedRelations: ReadonlyArray<string>\n) => {\n const contentTypesUIDs = Object.keys(strapi.contentTypes)\n .filter((key) => strapi.contentTypes[key as UID.ContentType].kind === typeKinds.COLLECTION_TYPE)\n .filter((key) => !key.startsWith(coreUids.PREFIX) || key === coreUids.STRAPI_USER)\n .concat(['__self__', '__contentType__']);\n\n const base = {\n type: yup.string().oneOf(['relation']).required(),\n relation: yup.string().test('isValidRelation', isValidRelation(allowedRelations)).required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n };\n\n switch (attribute.relation) {\n case 'oneToOne':\n case 'oneToMany':\n case 'manyToOne':\n case 'manyToMany':\n case 'morphOne':\n case 'morphMany': {\n return yup.object({\n ...base,\n target: yup.string().oneOf(contentTypesUIDs).required(),\n targetAttribute: yup.string().test(isValidName).nullable(),\n });\n }\n case 'morphToOne':\n case 'morphToMany':\n default: {\n return yup.object({ ...base });\n }\n }\n};\n","import { yup } from '@strapi/utils';\nimport _ from 'lodash';\nimport { snakeCase } from 'lodash/fp';\nimport { modelTypes, typeKinds } from '../../services/constants';\nimport { getService } from '../../utils';\nimport { isValidKey, isValidCollectionName } from './common';\nimport { getTypeValidator } from './types';\nimport { getRelationValidator } from './relations';\n\ntype ModelTypeInput = (typeof modelTypes)[keyof typeof modelTypes];\n\ntype CreateAttributesInput = {\n types: ReadonlyArray<string>;\n relations: ReadonlyArray<string>;\n modelType?: ModelTypeInput;\n};\n\nexport const createSchema = (\n types: CreateAttributesInput['types'],\n relations: CreateAttributesInput['relations'],\n { modelType }: { modelType?: ModelTypeInput } = {}\n) => {\n const shape = {\n description: yup.string(),\n options: yup.object(),\n pluginOptions: yup.object(),\n collectionName: yup.string().nullable().test(isValidCollectionName),\n attributes: createAttributesValidator({ types, relations, modelType }),\n draftAndPublish: yup.boolean(),\n } as any;\n\n if (modelType === modelTypes.CONTENT_TYPE) {\n shape.kind = yup.string().oneOf([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]).nullable();\n }\n\n return yup.object(shape).noUnknown();\n};\n\nconst createAttributesValidator = ({ types, modelType, relations }: CreateAttributesInput) => {\n return yup.lazy((attributes) => {\n return yup\n .object()\n .shape(\n _.mapValues(attributes, (attribute, key) => {\n if (isForbiddenKey(key)) {\n return forbiddenValidator();\n }\n\n if (isConflictingKey(key, attributes)) {\n return conflictingKeysValidator(key);\n }\n\n if (attribute.type === 'relation') {\n return getRelationValidator(attribute, relations).test(isValidKey(key));\n }\n\n if (_.has(attribute, 'type')) {\n return getTypeValidator(attribute, { types, modelType, attributes }).test(\n isValidKey(key)\n );\n }\n\n return typeOrRelationValidator;\n })\n )\n .required('attributes.required');\n });\n};\n\nconst isConflictingKey = (key: string, attributes: Record<string, any>) => {\n const snakeCaseKey = snakeCase(key);\n\n return Object.keys(attributes).some((existingKey) => {\n if (existingKey === key) return false; // don't compare against itself\n return snakeCase(existingKey) === snakeCaseKey;\n });\n};\n\nconst isForbiddenKey = (key: string) => {\n return getService('builder').isReservedAttributeName(key);\n};\n\nconst forbiddenValidator = () => {\n const reservedNames = [...getService('builder').getReservedNames().attributes];\n\n return yup.mixed().test({\n name: 'forbiddenKeys',\n message: `Attribute keys cannot be one of ${reservedNames.join(', ')}`,\n test: () => false,\n });\n};\n\nconst conflictingKeysValidator = (key: string) => {\n return yup.mixed().test({\n name: 'conflictingKeys',\n message: `Attribute ${key} conflicts with an existing key`,\n test: () => false,\n });\n};\n\nconst typeOrRelationValidator = yup.object().test({\n name: 'mustHaveTypeOrTarget',\n message: 'Attribute must have either a type or a target',\n test: () => false,\n});\n","import type { Schema } from '@strapi/types';\n\nexport const hasDefaultAttribute = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.DefaultOption<unknown> => {\n return 'default' in attribute;\n};\n","import type { Struct } from '@strapi/types';\nimport _ from 'lodash';\nimport { hasDefaultAttribute } from '../../utils/typeguards';\n\nexport const removeEmptyDefaults = (\n data: Partial<Struct.ContentTypeSchema> | Partial<Struct.ComponentSchema> | undefined\n) => {\n const { attributes } = data || {};\n\n Object.keys(attributes!).forEach((attributeName) => {\n const attribute = attributes![attributeName];\n\n if (hasDefaultAttribute(attribute) && attribute.default === '') {\n attribute.default = undefined;\n }\n });\n};\n\nexport const removeDeletedUIDTargetFields = (data: Struct.ContentTypeSchema) => {\n if (_.has(data, 'attributes')) {\n Object.values(data.attributes).forEach((attribute) => {\n if (\n attribute.type === 'uid' &&\n !_.isUndefined(attribute.targetField) &&\n !_.has(data.attributes, attribute.targetField)\n ) {\n attribute.targetField = undefined;\n }\n });\n }\n};\n","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","import _ from 'lodash';\nimport type { Context } from 'koa';\nimport type { UID } from '@strapi/types';\nimport { getService } from '../utils';\nimport { validateComponentInput, validateUpdateComponentInput } from './validation/component';\n\n/**\n * Components controller\n */\n\nexport default {\n /**\n * GET /components handler\n * Returns a list of available components\n * @param {Object} ctx - koa context\n */\n async getComponents(ctx: Context) {\n const componentService = getService('components');\n const componentUIDs = Object.keys(strapi.components) as UID.Component[];\n\n const data = componentUIDs.map((uid) => {\n return componentService.formatComponent(strapi.components[uid]);\n });\n\n ctx.send({ data });\n },\n\n /**\n * GET /components/:uid\n * Returns a specific component\n * @param {Object} ctx - koa context\n */\n async getComponent(ctx: Context) {\n const { uid } = ctx.params;\n\n const component = strapi.components[uid];\n\n if (!component) {\n return ctx.send({ error: 'component.notFound' }, 404);\n }\n\n const componentService = getService('components');\n\n ctx.send({ data: componentService.formatComponent(component) });\n },\n\n /**\n * POST /components\n * Creates a component and returns its infos\n * @param {Object} ctx - koa context\n */\n async createComponent(ctx: Context) {\n const body = ctx.request.body as any;\n\n try {\n await validateComponentInput(body);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const componentService = getService('components');\n\n const component = await componentService.createComponent({\n component: body.component,\n components: body.components,\n });\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: component.uid } }, 201);\n } catch (error) {\n strapi.log.error(error);\n ctx.send({ error: (error as any)?.message || 'Unknown error' }, 400);\n }\n },\n\n /**\n * PUT /components/:uid\n * Updates a component and return its infos\n * @param {Object} ctx - koa context - enhanced koa context\n */\n async updateComponent(ctx: Context) {\n const { uid } = ctx.params;\n const body = ctx.request.body as any;\n\n if (!_.has(strapi.components, uid)) {\n return ctx.send({ error: 'component.notFound' }, 404);\n }\n\n try {\n await validateUpdateComponentInput(body);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const componentService = getService('components');\n\n const component = (await componentService.editComponent(uid, {\n component: body.component,\n components: body.components,\n })) as any;\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: component.uid } });\n } catch (error) {\n strapi.log.error(error);\n\n ctx.send({ error: (error as any)?.message || 'Unknown error' }, 400);\n }\n },\n\n /**\n * DELETE /components/:uid\n * Deletes a components and returns its old infos\n * @param {Object} ctx - koa context\n */\n async deleteComponent(ctx: Context) {\n const { uid } = ctx.params;\n\n if (!_.has(strapi.components, uid)) {\n return ctx.send({ error: 'component.notFound' }, 404);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const componentService = getService('components');\n\n const component = await componentService.deleteComponent(uid);\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: component.uid } });\n } catch (error) {\n strapi.log.error(error);\n ctx.send({ error: (error as any)?.message || 'Unknown error' }, 400);\n }\n },\n};\n","/* 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","import _ from 'lodash';\nimport type { Context } from 'koa';\nimport type {} from 'koa-body';\nimport type { Internal } from '@strapi/types';\nimport { getService } from '../utils';\nimport {\n validateContentTypeInput,\n validateUpdateContentTypeInput,\n validateKind,\n} from './validation/content-type';\n\nexport default {\n async getContentTypes(ctx: Context) {\n const { kind } = ctx.query;\n\n try {\n await validateKind(kind);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n const contentTypeService = getService('content-types');\n\n const contentTypes = Object.keys(strapi.contentTypes)\n .filter(\n (uid) =>\n !kind ||\n _.get(strapi.contentTypes[uid as Internal.UID.ContentType], 'kind', 'collectionType') ===\n kind\n )\n .map((uid) =>\n contentTypeService.formatContentType(strapi.contentTypes[uid as Internal.UID.ContentType])\n );\n\n ctx.send({\n data: contentTypes,\n });\n },\n\n getContentType(ctx: Context) {\n const { uid } = ctx.params;\n\n const contentType = strapi.contentTypes[uid];\n\n if (!contentType) {\n return ctx.send({ error: 'contentType.notFound' }, 404);\n }\n\n const contentTypeService = getService('content-types');\n\n ctx.send({ data: contentTypeService.formatContentType(contentType) });\n },\n\n async createContentType(ctx: Context) {\n const body = ctx.request.body as any;\n\n try {\n await validateContentTypeInput(body);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const contentTypeService = getService('content-types');\n\n const contentType = await contentTypeService.createContentType({\n contentType: body.contentType,\n components: body.components,\n });\n\n const metricsPayload = {\n eventProperties: {\n kind: contentType.kind,\n },\n };\n\n if (_.isEmpty(strapi.apis)) {\n await strapi.telemetry.send('didCreateFirstContentType', metricsPayload);\n } else {\n await strapi.telemetry.send('didCreateContentType', metricsPayload);\n }\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: contentType.uid } }, 201);\n } catch (err) {\n strapi.log.error(err);\n await strapi.telemetry.send('didNotCreateContentType', {\n eventProperties: { error: (err as Error).message || err },\n });\n ctx.send({ error: (err as Error).message || 'Unknown error' }, 400);\n }\n },\n\n async updateContentType(ctx: Context) {\n const { uid } = ctx.params;\n const body = ctx.request.body as any;\n\n if (!_.has(strapi.contentTypes, uid)) {\n return ctx.send({ error: 'contentType.notFound' }, 404);\n }\n\n try {\n await validateUpdateContentTypeInput(body);\n } catch (error) {\n return ctx.send({ error }, 400);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const contentTypeService = getService('content-types');\n\n const component = await contentTypeService.editContentType(uid, {\n contentType: body.contentType,\n components: body.components,\n });\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: component.uid } }, 201);\n } catch (error) {\n strapi.log.error(error);\n ctx.send({ error: (error as Error)?.message || 'Unknown error' }, 400);\n }\n },\n\n async deleteContentType(ctx: Context) {\n const { uid } = ctx.params;\n\n if (!_.has(strapi.contentTypes, uid)) {\n return ctx.send({ error: 'contentType.notFound' }, 404);\n }\n\n try {\n strapi.reload.isWatching = false;\n\n const contentTypeService = getService('content-types');\n\n const component = await contentTypeService.deleteContentType(uid);\n\n setImmediate(() => strapi.reload());\n\n ctx.send({ data: { uid: component.uid } });\n } catch (error) {\n strapi.log.error(error);\n ctx.send({ error: (error as Error)?.message || 'Unknown error' }, 400);\n }\n },\n};\n","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","export default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/reserved-names',\n handler: 'builder.getReservedNames',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-types',\n handler: 'content-types.createContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid',\n handler: 'content-types.updateContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/content-types/:uid',\n handler: 'content-types.deleteContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/components',\n handler: 'components.createComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid',\n handler: 'components.updateComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/components/:uid',\n handler: 'components.deleteComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/component-categories/:name',\n handler: 'component-categories.editCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/component-categories/:name',\n handler: 'component-categories.deleteCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n ],\n};\n","export default {\n type: 'content-api',\n routes: [\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n },\n ],\n};\n","import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport '@strapi/types';\n\nimport config from './config';\nimport bootstrap from './bootstrap';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\n\nexport default () => ({\n config,\n bootstrap,\n services,\n controllers,\n routes,\n});\n"],"names":["default","validator","strapi","actions","section","displayName","uid","pluginName","service","actionProvider","registerMany","ApplicationError","errors","isConfigurable","attribute","_","get","isRelation","type","formatAttributes","model","getVisibleAttributes","utils","contentTypes","reduce","acc","key","formatAttribute","attributes","configurable","required","autoPopulate","pluginOptions","multiple","undefined","private","allowedTypes","target","targetAttribute","inversedBy","mappedBy","replaceTemporaryUIDs","uidMap","schema","Object","keys","attr","has","component","components","intersection","length","map","value","createSchemaHandler","infos","category","modelName","plugin","dir","filename","initialState","info","options","state","cloneDeep","freeze","modified","deleted","kind","writable","setUID","val","setDir","setSchema","path","set","defaultTo","unset","delete","getAttribute","setAttribute","deleteAttribute","setAttributes","newAttributes","removeContentType","forEach","removeComponent","Array","isArray","includes","updatedComponentList","filter","updateComponent","newUID","flush","initialPath","join","filePath","fse","remove","list","readdir","Promise","resolve","ensureFile","writeJSON","collectionName","config","spaces","rollback","createComponentBuilder","createComponentUID","strings","nameToSlug","createNewComponentUIDMap","tmpUID","createComponent","handler","dirs","app","nameToCollectionName","pluralize","compo","icon","description","convertAttributes","size","telemetry","send","editComponent","nameUID","split","newCategory","newDir","oldAttributes","omitBy","ct","deleteComponent","modelTypes","CONTENT_TYPE","COMPONENT","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","DEFAULT_TYPES","VALID_UID_TARGETS","coreUids","STRAPI_USER","PREFIX","pluginsUids","UPLOAD_FILE","reuseUnsetPreviousProperties","newAttribute","oldAttribute","defaults","omit","setRelation","targetCT","generateRelation","unsetRelation","targetAttributeName","createContentType","createContentTypeUID","contentType","singularName","api","pluralName","draftAndPublish","relation","dominant","editContentType","newKeys","difference","deletedKeys","remainingKeys","isNil","oldTargetAttributeName","sameRelation","targetAttributeHasChanged","deleteContentType","opts","restOptions","createBuilder","values","componentInput","__filename__","__schema__","contentTypeInput","extensions","apiName","createSchemaBuilder","tmpComponents","Map","tmpContentTypes","isPrivate","baseProperties","restOfProperties","createContentTypeBuilder","writeFiles","schemas","from","all","catch","error","log","isContentTypeVisible","getOr","getRestrictRelationsTo","startsWith","formatContentType","apiID","contentTypesUtils","getOptions","visible","restrictRelationsTo","createContentTypes","builder","createdContentTypes","push","defaultBuilder","replaceTmpUIDs","newContentType","targetContentType","generateAPI","eventHub","emit","strapiGenerators","require","generate","id","destination","bootstrapApi","root","previousSchema","previousKind","newKind","previousAttributes","prevNonVisibleAttributes","getNonVisibleAttributes","merge","entryCount","db","query","count","updatedContentType","apiHandler","backup","clear","deleteContentTypes","uids","formatComponent","connection","apiId","newComponent","updatedComponent","deletedComponent","editCategory","name","newName","categoryExists","oldUID","deleteCategory","matchingIndex","findIndex","reservedAttributes","reservedModels","getReservedNames","models","isReservedModelName","snakeCaseName","snakeCase","endsWith","slice","some","prefix","isReservedAttributeName","apiFolder","recursiveRemoveFiles","createDeleteApiFunction","deleteBackup","backupFolder","copy","apiBackupFolder","access","Error","baseName","fileName","basename","extname","isSchemaFile","folder","deleteFn","filesName","stat","isDirectory","files","componentCategories","getService","ctx","body","validators","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","isValidName","message","test","isValidIcon","isValidUID","isValidCategoryName","isValidCollectionName","isValidKey","isValidEnum","startsWithANumber","areEnumValuesUnique","filtered","Set","isValidRegExpPattern","RegExp","isValidDefaultJSON","isNumber","isNull","isObject","JSON","parse","err","componentCategorySchema","object","string","min","noUnknown","validateYupSchema","request","validateComponentCategory","params","reload","isWatching","componentCategoryService","setImmediate","maxLengthIsGreaterThanOrEqualToMinLength","parent","isUndefined","getTypeValidator","types","modelType","oneOf","nullable","getTypeShape","array","of","targetField","max","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","regex","mixed","enum","when","enumVal","enumName","email","matches","repeatable","STRAPI_USER_RELATIONS","isValidRelation","validNatures","createError","getRelationValidator","allowedRelations","contentTypesUIDs","concat","base","createSchema","relations","createAttributesValidator","lazy","mapValues","isForbiddenKey","forbiddenValidator","isConflictingKey","conflictingKeysValidator","typeOrRelationValidator","snakeCaseKey","existingKey","reservedNames","hasDefaultAttribute","removeEmptyDefaults","data","attributeName","removeDeletedUIDTargetFields","VALID_RELATIONS","VALID_TYPES","componentSchema","nestedComponentSchema","componentInputSchema","validateComponentInput","updateComponentInputSchema","validateUpdateComponentInput","getComponents","componentService","componentUIDs","getComponent","createContentTypeSchema","isEdition","contentTypeSchema","nameIsAvailable","forbiddenContentTypeNameValidator","isKebabCase","nameIsNotExistingCollectionName","validateContentTypeInput","validateUpdateContentTypeInput","comp","usedNames","flatMap","every","usedName","kindSchema","validateKind","getContentTypes","contentTypeService","getContentType","metricsPayload","eventProperties","isEmpty","apis","updateContentType","exportObject","routes","method","policies","admin","contentApi","bootstrap","services","controllers"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nimport '@strapi/types';\n\nimport config from './config';\nimport bootstrap from './bootstrap';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\n\nexport default () => ({\n config,\n bootstrap,\n services,\n controllers,\n routes,\n});\n"],"names":["config","bootstrap","services","controllers","routes"],"mappings":";;;;;;;AAAA;AASA,YAAe,CAAA,KAAO;AACpBA,QAAAA,MAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,QAAAA;AACAC,qBAAAA,YAAAA;AACAC,QAAAA;AACF,KAAA,CAAC;;;;"}