@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-builder.js","sources":["../../../../server/src/services/schema-builder/content-type-builder.ts"],"sourcesContent":["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"],"names":["ApplicationError","errors","reuseUnsetPreviousProperties","newAttribute","oldAttribute","_","defaults","omit","createComponentBuilder","setRelation","key","uid","attribute","has","targetCT","contentTypes","get","target","targetAttribute","getAttribute","setAttribute","generateRelation","unsetRelation","targetAttributeName","inversedBy","mappedBy","deleteAttribute","createContentType","infos","createContentTypeUID","contentType","createSchemaHandler","modelName","singularName","dir","path","join","strapi","dirs","app","api","filename","set","Object","keys","attributes","forEach","setUID","kind","typeKinds","COLLECTION_TYPE","collectionName","strings","nameToCollectionName","pluralName","displayName","description","options","draftAndPublish","pluginOptions","config","setAttributes","convertAttributes","isRelation","includes","relation","undefined","dominant","editContentType","oldAttributes","schema","newAttributes","omitBy","attr","isConfigurable","newKeys","difference","deletedKeys","remainingKeys","intersection","isNil","oldTargetAttributeName","sameRelation","targetAttributeHasChanged","deleteContentType","components","compo","removeContentType","ct","delete","opts","type","autoPopulate","private","restOptions"],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ import path__default from 'path';
2
+ import _ from 'lodash';
3
+ import { strings, errors } from '@strapi/utils';
4
+ import { isRelation, isConfigurable } from '../../utils/attributes.mjs';
5
+ import { typeKinds } from '../constants.mjs';
6
+ import createSchemaHandler from './schema-handler.mjs';
7
+
8
+ const { ApplicationError } = errors;
9
+ const reuseUnsetPreviousProperties = (newAttribute, oldAttribute)=>{
10
+ _.defaults(newAttribute, _.omit(oldAttribute, [
11
+ 'configurable',
12
+ 'required',
13
+ 'private',
14
+ 'unique',
15
+ 'pluginOptions',
16
+ 'inversedBy',
17
+ 'mappedBy'
18
+ ]));
19
+ };
20
+ function createComponentBuilder() {
21
+ return {
22
+ setRelation ({ key, uid, attribute }) {
23
+ if (!_.has(attribute, 'target')) {
24
+ return;
25
+ }
26
+ const targetCT = this.contentTypes.get(attribute.target);
27
+ const targetAttribute = targetCT.getAttribute(attribute.targetAttribute);
28
+ if (!attribute.targetAttribute) {
29
+ return;
30
+ }
31
+ targetCT.setAttribute(attribute.targetAttribute, generateRelation({
32
+ key,
33
+ attribute,
34
+ uid,
35
+ targetAttribute
36
+ }));
37
+ },
38
+ unsetRelation (attribute) {
39
+ if (!_.has(attribute, 'target')) {
40
+ return;
41
+ }
42
+ const targetCT = this.contentTypes.get(attribute.target);
43
+ const targetAttributeName = attribute.inversedBy || attribute.mappedBy;
44
+ const targetAttribute = targetCT.getAttribute(targetAttributeName);
45
+ if (!targetAttribute) return;
46
+ return targetCT.deleteAttribute(targetAttributeName);
47
+ },
48
+ /**
49
+ * Creates a content type in memory to be written to files later on
50
+ */ createContentType (infos) {
51
+ const uid = createContentTypeUID(infos);
52
+ if (this.contentTypes.has(uid)) {
53
+ throw new ApplicationError('contentType.alreadyExists');
54
+ }
55
+ const contentType = createSchemaHandler({
56
+ modelName: infos.singularName,
57
+ dir: path__default.join(strapi.dirs.app.api, infos.singularName, 'content-types', infos.singularName),
58
+ filename: `schema.json`
59
+ });
60
+ this.contentTypes.set(uid, contentType);
61
+ // support self referencing content type relation
62
+ Object.keys(infos.attributes).forEach((key)=>{
63
+ const { target } = infos.attributes[key];
64
+ if (target === '__self__') {
65
+ infos.attributes[key].target = uid;
66
+ }
67
+ });
68
+ contentType.setUID(uid).set('kind', infos.kind || typeKinds.COLLECTION_TYPE).set('collectionName', infos.collectionName || strings.nameToCollectionName(infos.pluralName)).set('info', {
69
+ singularName: infos.singularName,
70
+ pluralName: infos.pluralName,
71
+ displayName: infos.displayName,
72
+ description: infos.description
73
+ }).set('options', {
74
+ ...infos.options ?? {},
75
+ draftAndPublish: infos.draftAndPublish
76
+ }).set('pluginOptions', infos.pluginOptions).set('config', infos.config).setAttributes(this.convertAttributes(infos.attributes));
77
+ Object.keys(infos.attributes).forEach((key)=>{
78
+ const attribute = infos.attributes[key];
79
+ if (isRelation(attribute)) {
80
+ if ([
81
+ 'manyToMany',
82
+ 'oneToOne'
83
+ ].includes(attribute.relation)) {
84
+ if (attribute.target === uid && attribute.targetAttribute !== undefined) {
85
+ // self referencing relation
86
+ const targetAttribute = infos.attributes[attribute.targetAttribute];
87
+ if (targetAttribute.dominant === undefined) {
88
+ attribute.dominant = true;
89
+ } else {
90
+ attribute.dominant = false;
91
+ }
92
+ } else {
93
+ attribute.dominant = true;
94
+ }
95
+ }
96
+ this.setRelation({
97
+ key,
98
+ uid,
99
+ attribute
100
+ });
101
+ }
102
+ });
103
+ return contentType;
104
+ },
105
+ editContentType (infos) {
106
+ const { uid } = infos;
107
+ if (!this.contentTypes.has(uid)) {
108
+ throw new ApplicationError('contentType.notFound');
109
+ }
110
+ const contentType = this.contentTypes.get(uid);
111
+ const oldAttributes = contentType.schema.attributes;
112
+ const newAttributes = _.omitBy(infos.attributes, (attr, key)=>{
113
+ return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);
114
+ });
115
+ const newKeys = _.difference(Object.keys(newAttributes), Object.keys(oldAttributes));
116
+ const deletedKeys = _.difference(Object.keys(oldAttributes), Object.keys(newAttributes));
117
+ const remainingKeys = _.intersection(Object.keys(oldAttributes), Object.keys(newAttributes));
118
+ // remove old relations
119
+ deletedKeys.forEach((key)=>{
120
+ const attribute = oldAttributes[key];
121
+ const targetAttributeName = attribute.inversedBy || attribute.mappedBy;
122
+ // if the old relation has a target attribute. we need to remove it in the target type
123
+ if (isConfigurable(attribute) && isRelation(attribute) && !_.isNil(targetAttributeName)) {
124
+ this.unsetRelation(attribute);
125
+ }
126
+ });
127
+ remainingKeys.forEach((key)=>{
128
+ const oldAttribute = oldAttributes[key];
129
+ const newAttribute = newAttributes[key];
130
+ if (!isRelation(oldAttribute) && isRelation(newAttribute)) {
131
+ return this.setRelation({
132
+ key,
133
+ uid,
134
+ attribute: newAttributes[key]
135
+ });
136
+ }
137
+ if (isRelation(oldAttribute) && !isRelation(newAttribute)) {
138
+ return this.unsetRelation(oldAttribute);
139
+ }
140
+ if (isRelation(oldAttribute) && isRelation(newAttribute)) {
141
+ const oldTargetAttributeName = oldAttribute.inversedBy || oldAttribute.mappedBy;
142
+ const sameRelation = oldAttribute.relation === newAttribute.relation;
143
+ const targetAttributeHasChanged = oldTargetAttributeName !== newAttribute.targetAttribute;
144
+ if (!sameRelation || targetAttributeHasChanged) {
145
+ this.unsetRelation(oldAttribute);
146
+ }
147
+ // keep extra options that were set manually on oldAttribute
148
+ reuseUnsetPreviousProperties(newAttribute, oldAttribute);
149
+ if (oldAttribute.inversedBy) {
150
+ newAttribute.dominant = true;
151
+ } else if (oldAttribute.mappedBy) {
152
+ newAttribute.dominant = false;
153
+ }
154
+ return this.setRelation({
155
+ key,
156
+ uid,
157
+ attribute: newAttribute
158
+ });
159
+ }
160
+ });
161
+ // add new relations
162
+ newKeys.forEach((key)=>{
163
+ const attribute = newAttributes[key];
164
+ if (isRelation(attribute)) {
165
+ if ([
166
+ 'manyToMany',
167
+ 'oneToOne'
168
+ ].includes(attribute.relation)) {
169
+ if (attribute.target === uid && attribute.targetAttribute !== undefined) {
170
+ // self referencing relation
171
+ const targetAttribute = newAttributes[attribute.targetAttribute];
172
+ if (targetAttribute.dominant === undefined) {
173
+ attribute.dominant = true;
174
+ } else {
175
+ attribute.dominant = false;
176
+ }
177
+ } else {
178
+ attribute.dominant = true;
179
+ }
180
+ }
181
+ this.setRelation({
182
+ key,
183
+ uid,
184
+ attribute
185
+ });
186
+ }
187
+ });
188
+ contentType.set('kind', infos.kind || contentType.schema.kind).set([
189
+ 'info',
190
+ 'displayName'
191
+ ], infos.displayName).set([
192
+ 'info',
193
+ 'description'
194
+ ], infos.description).set('options', {
195
+ ...infos.options ?? {},
196
+ draftAndPublish: infos.draftAndPublish
197
+ }).set('pluginOptions', infos.pluginOptions).setAttributes(this.convertAttributes(newAttributes));
198
+ return contentType;
199
+ },
200
+ deleteContentType (uid) {
201
+ if (!this.contentTypes.has(uid)) {
202
+ throw new ApplicationError('contentType.notFound');
203
+ }
204
+ this.components.forEach((compo)=>{
205
+ compo.removeContentType(uid);
206
+ });
207
+ this.contentTypes.forEach((ct)=>{
208
+ ct.removeContentType(uid);
209
+ });
210
+ return this.contentTypes.get(uid).delete();
211
+ }
212
+ };
213
+ }
214
+ /**
215
+ * Returns a uid from a content type infos
216
+ *
217
+ * @param {object} options options
218
+ * @param {string} options.singularName content-type singularName
219
+ * @returns {string} uid
220
+ */ const createContentTypeUID = ({ singularName })=>`api::${singularName}.${singularName}`;
221
+ const generateRelation = ({ key, attribute, uid, targetAttribute = {} })=>{
222
+ const opts = {
223
+ type: 'relation',
224
+ target: uid,
225
+ autoPopulate: targetAttribute.autoPopulate,
226
+ private: targetAttribute.private || undefined,
227
+ pluginOptions: targetAttribute.pluginOptions || undefined
228
+ };
229
+ switch(attribute.relation){
230
+ case 'oneToOne':
231
+ {
232
+ opts.relation = 'oneToOne';
233
+ if (attribute.dominant) {
234
+ opts.mappedBy = key;
235
+ } else {
236
+ opts.inversedBy = key;
237
+ }
238
+ break;
239
+ }
240
+ case 'oneToMany':
241
+ {
242
+ opts.relation = 'manyToOne';
243
+ opts.inversedBy = key;
244
+ break;
245
+ }
246
+ case 'manyToOne':
247
+ {
248
+ opts.relation = 'oneToMany';
249
+ opts.mappedBy = key;
250
+ break;
251
+ }
252
+ case 'manyToMany':
253
+ {
254
+ opts.relation = 'manyToMany';
255
+ if (attribute.dominant) {
256
+ opts.mappedBy = key;
257
+ } else {
258
+ opts.inversedBy = key;
259
+ }
260
+ break;
261
+ }
262
+ }
263
+ // we do this just to make sure we have the same key order when writing to files
264
+ const { type, relation, target, ...restOptions } = opts;
265
+ return {
266
+ type,
267
+ relation,
268
+ target,
269
+ ...restOptions
270
+ };
271
+ };
272
+
273
+ export { createComponentBuilder as default };
274
+ //# sourceMappingURL=content-type-builder.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-builder.mjs","sources":["../../../../server/src/services/schema-builder/content-type-builder.ts"],"sourcesContent":["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"],"names":["ApplicationError","errors","reuseUnsetPreviousProperties","newAttribute","oldAttribute","_","defaults","omit","createComponentBuilder","setRelation","key","uid","attribute","has","targetCT","contentTypes","get","target","targetAttribute","getAttribute","setAttribute","generateRelation","unsetRelation","targetAttributeName","inversedBy","mappedBy","deleteAttribute","createContentType","infos","createContentTypeUID","contentType","createSchemaHandler","modelName","singularName","dir","path","join","strapi","dirs","app","api","filename","set","Object","keys","attributes","forEach","setUID","kind","typeKinds","COLLECTION_TYPE","collectionName","strings","nameToCollectionName","pluralName","displayName","description","options","draftAndPublish","pluginOptions","config","setAttributes","convertAttributes","isRelation","includes","relation","undefined","dominant","editContentType","oldAttributes","schema","newAttributes","omitBy","attr","isConfigurable","newKeys","difference","deletedKeys","remainingKeys","intersection","isNil","oldTargetAttributeName","sameRelation","targetAttributeHasChanged","deleteContentType","components","compo","removeContentType","ct","delete","opts","type","autoPopulate","private","restOptions"],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var _ = require('lodash');
5
+ var utils = require('@strapi/utils');
6
+ var schemaHandler = require('./schema-handler.js');
7
+ var componentBuilder = require('./component-builder.js');
8
+ var contentTypeBuilder = require('./content-type-builder.js');
9
+
10
+ /**
11
+ * Creates a content type schema builder instance
12
+ */ function createBuilder() {
13
+ const components = Object.values(strapi.components).map((componentInput)=>({
14
+ category: componentInput.category,
15
+ modelName: componentInput.modelName,
16
+ plugin: componentInput.modelName,
17
+ uid: componentInput.uid,
18
+ filename: componentInput.__filename__,
19
+ dir: path.join(strapi.dirs.app.components, componentInput.category),
20
+ schema: componentInput.__schema__,
21
+ config: componentInput.config
22
+ }));
23
+ const contentTypes = Object.values(strapi.contentTypes).map((contentTypeInput)=>{
24
+ const dir = contentTypeInput.plugin ? path.join(strapi.dirs.app.extensions, contentTypeInput.plugin, 'content-types', contentTypeInput.info.singularName) : path.join(strapi.dirs.app.api, contentTypeInput.apiName, 'content-types', contentTypeInput.info.singularName);
25
+ return {
26
+ modelName: contentTypeInput.modelName,
27
+ plugin: contentTypeInput.plugin,
28
+ uid: contentTypeInput.uid,
29
+ filename: 'schema.json',
30
+ dir,
31
+ schema: contentTypeInput.__schema__,
32
+ config: contentTypeInput.config
33
+ };
34
+ });
35
+ return createSchemaBuilder({
36
+ components,
37
+ contentTypes
38
+ });
39
+ }
40
+ function createSchemaBuilder({ components, contentTypes }) {
41
+ const tmpComponents = new Map();
42
+ const tmpContentTypes = new Map();
43
+ // init temporary ContentTypes
44
+ Object.keys(contentTypes).forEach((key)=>{
45
+ tmpContentTypes.set(contentTypes[key].uid, schemaHandler(contentTypes[key]));
46
+ });
47
+ // init temporary components
48
+ Object.keys(components).forEach((key)=>{
49
+ tmpComponents.set(components[key].uid, schemaHandler(components[key]));
50
+ });
51
+ return {
52
+ get components () {
53
+ return tmpComponents;
54
+ },
55
+ get contentTypes () {
56
+ return tmpContentTypes;
57
+ },
58
+ /**
59
+ * Convert Attributes received from the API to the right syntax
60
+ */ convertAttributes (attributes) {
61
+ return Object.keys(attributes).reduce((acc, key)=>{
62
+ const attribute = attributes[key];
63
+ const { configurable, private: isPrivate } = attribute;
64
+ const baseProperties = {
65
+ private: isPrivate === true ? true : undefined,
66
+ configurable: configurable === false ? false : undefined
67
+ };
68
+ if (attribute.type === 'relation') {
69
+ const { target, relation, targetAttribute, dominant, ...restOfProperties } = attribute;
70
+ const attr = {
71
+ type: 'relation',
72
+ relation,
73
+ target,
74
+ ...restOfProperties,
75
+ ...baseProperties
76
+ };
77
+ acc[key] = attr;
78
+ if (target && !this.contentTypes.has(target)) {
79
+ throw new utils.errors.ApplicationError(`target: ${target} does not exist`);
80
+ }
81
+ if (_.isNil(targetAttribute)) {
82
+ return acc;
83
+ }
84
+ if ([
85
+ 'oneToOne',
86
+ 'manyToMany'
87
+ ].includes(relation) && dominant === true) {
88
+ attr.inversedBy = targetAttribute;
89
+ } else if ([
90
+ 'oneToOne',
91
+ 'manyToMany'
92
+ ].includes(relation) && dominant === false) {
93
+ attr.mappedBy = targetAttribute;
94
+ } else if ([
95
+ 'oneToOne',
96
+ 'manyToOne',
97
+ 'manyToMany'
98
+ ].includes(relation)) {
99
+ attr.inversedBy = targetAttribute;
100
+ } else if ([
101
+ 'oneToMany'
102
+ ].includes(relation)) {
103
+ attr.mappedBy = targetAttribute;
104
+ }
105
+ return acc;
106
+ }
107
+ acc[key] = {
108
+ ...attribute,
109
+ ...baseProperties
110
+ };
111
+ return acc;
112
+ }, {});
113
+ },
114
+ ...componentBuilder(),
115
+ ...contentTypeBuilder(),
116
+ /**
117
+ * Write all type to files
118
+ */ writeFiles () {
119
+ const schemas = [
120
+ ...Array.from(tmpComponents.values()),
121
+ ...Array.from(tmpContentTypes.values())
122
+ ];
123
+ return Promise.all(schemas.map((schema)=>schema.flush())).catch((error)=>{
124
+ strapi.log.error('Error writing schema files');
125
+ strapi.log.error(error);
126
+ return this.rollback();
127
+ }).catch((error)=>{
128
+ strapi.log.error('Error rolling back schema files. You might need to fix your files manually');
129
+ strapi.log.error(error);
130
+ throw new utils.errors.ApplicationError('Invalid schema edition');
131
+ });
132
+ },
133
+ /**
134
+ * rollback all files
135
+ */ rollback () {
136
+ return Promise.all([
137
+ ...Array.from(tmpComponents.values()),
138
+ ...Array.from(tmpContentTypes.values())
139
+ ].map((schema)=>schema.rollback()));
140
+ }
141
+ };
142
+ }
143
+
144
+ module.exports = createBuilder;
145
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/schema-builder/index.ts"],"sourcesContent":["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"],"names":["createBuilder","components","Object","values","strapi","map","componentInput","category","modelName","plugin","uid","filename","__filename__","dir","join","dirs","app","schema","__schema__","config","contentTypes","contentTypeInput","extensions","info","singularName","api","apiName","createSchemaBuilder","tmpComponents","Map","tmpContentTypes","keys","forEach","key","set","createSchemaHandler","convertAttributes","attributes","reduce","acc","attribute","configurable","private","isPrivate","baseProperties","undefined","type","target","relation","targetAttribute","dominant","restOfProperties","attr","has","errors","ApplicationError","_","isNil","includes","inversedBy","mappedBy","createComponentBuilder","createContentTypeBuilder","writeFiles","schemas","Array","from","Promise","all","flush","catch","error","log","rollback"],"mappings":"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"}