@akbarsafari00/bonyan-content-type-builder 5.52.1-fa.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 (1148) hide show
  1. package/LICENSE +37 -0
  2. package/README.md +9 -0
  3. package/dist/admin/components/AIChat/Chat.js +437 -0
  4. package/dist/admin/components/AIChat/Chat.js.map +1 -0
  5. package/dist/admin/components/AIChat/Chat.mjs +435 -0
  6. package/dist/admin/components/AIChat/Chat.mjs.map +1 -0
  7. package/dist/admin/components/AIChat/FeedbackModal.js +238 -0
  8. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -0
  9. package/dist/admin/components/AIChat/FeedbackModal.mjs +234 -0
  10. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -0
  11. package/dist/admin/components/AIChat/UploadCodeModal.js +427 -0
  12. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -0
  13. package/dist/admin/components/AIChat/UploadCodeModal.mjs +423 -0
  14. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -0
  15. package/dist/admin/components/AIChat/UploadFigmaModal.js +379 -0
  16. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -0
  17. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +375 -0
  18. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -0
  19. package/dist/admin/components/AIChat/components/Alert.js +46 -0
  20. package/dist/admin/components/AIChat/components/Alert.js.map +1 -0
  21. package/dist/admin/components/AIChat/components/Alert.mjs +44 -0
  22. package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -0
  23. package/dist/admin/components/AIChat/components/AnimatedBox.js +34 -0
  24. package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -0
  25. package/dist/admin/components/AIChat/components/AnimatedBox.mjs +32 -0
  26. package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -0
  27. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js +92 -0
  28. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -0
  29. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs +90 -0
  30. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -0
  31. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +100 -0
  32. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -0
  33. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +97 -0
  34. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -0
  35. package/dist/admin/components/AIChat/components/Base64Image.js +127 -0
  36. package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -0
  37. package/dist/admin/components/AIChat/components/Base64Image.mjs +125 -0
  38. package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -0
  39. package/dist/admin/components/AIChat/components/Collapsible.js +71 -0
  40. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -0
  41. package/dist/admin/components/AIChat/components/Collapsible.mjs +66 -0
  42. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -0
  43. package/dist/admin/components/AIChat/components/Dropzone.js +168 -0
  44. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -0
  45. package/dist/admin/components/AIChat/components/Dropzone.mjs +163 -0
  46. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -0
  47. package/dist/admin/components/AIChat/components/FloatingPanel.js +166 -0
  48. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -0
  49. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +163 -0
  50. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -0
  51. package/dist/admin/components/AIChat/components/FullScreenImage.js +190 -0
  52. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -0
  53. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +187 -0
  54. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -0
  55. package/dist/admin/components/AIChat/components/ImagePreview.js +87 -0
  56. package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -0
  57. package/dist/admin/components/AIChat/components/ImagePreview.mjs +85 -0
  58. package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -0
  59. package/dist/admin/components/AIChat/components/Input.js +122 -0
  60. package/dist/admin/components/AIChat/components/Input.js.map +1 -0
  61. package/dist/admin/components/AIChat/components/Input.mjs +118 -0
  62. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -0
  63. package/dist/admin/components/AIChat/components/Messages/Marker.js +138 -0
  64. package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -0
  65. package/dist/admin/components/AIChat/components/Messages/Marker.mjs +136 -0
  66. package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -0
  67. package/dist/admin/components/AIChat/components/Messages/Message.js +229 -0
  68. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -0
  69. package/dist/admin/components/AIChat/components/Messages/Message.mjs +223 -0
  70. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -0
  71. package/dist/admin/components/AIChat/components/ResizableTextArea.js +78 -0
  72. package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -0
  73. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs +76 -0
  74. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -0
  75. package/dist/admin/components/AIChat/components/SimpleMenu.js +61 -0
  76. package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -0
  77. package/dist/admin/components/AIChat/components/SimpleMenu.mjs +35 -0
  78. package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -0
  79. package/dist/admin/components/AIChat/components/StepModal.js +175 -0
  80. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -0
  81. package/dist/admin/components/AIChat/components/StepModal.mjs +171 -0
  82. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -0
  83. package/dist/admin/components/AIChat/components/animations.js +67 -0
  84. package/dist/admin/components/AIChat/components/animations.js.map +1 -0
  85. package/dist/admin/components/AIChat/components/animations.mjs +65 -0
  86. package/dist/admin/components/AIChat/components/animations.mjs.map +1 -0
  87. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js +50 -0
  88. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -0
  89. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs +48 -0
  90. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -0
  91. package/dist/admin/components/AIChat/components/icons/StopIcon.js +25 -0
  92. package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -0
  93. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs +23 -0
  94. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -0
  95. package/dist/admin/components/AIChat/hooks/useAIFetch.js +107 -0
  96. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -0
  97. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +96 -0
  98. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -0
  99. package/dist/admin/components/AIChat/hooks/useAttachments.js +152 -0
  100. package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -0
  101. package/dist/admin/components/AIChat/hooks/useAttachments.mjs +150 -0
  102. package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -0
  103. package/dist/admin/components/AIChat/hooks/useChatTitle.js +47 -0
  104. package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -0
  105. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs +45 -0
  106. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -0
  107. package/dist/admin/components/AIChat/hooks/useCodeUpload.js +217 -0
  108. package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -0
  109. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs +207 -0
  110. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -0
  111. package/dist/admin/components/AIChat/hooks/useFeedback.js +79 -0
  112. package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -0
  113. package/dist/admin/components/AIChat/hooks/useFeedback.mjs +77 -0
  114. package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -0
  115. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js +206 -0
  116. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -0
  117. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs +200 -0
  118. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -0
  119. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js +115 -0
  120. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -0
  121. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs +113 -0
  122. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -0
  123. package/dist/admin/components/AIChat/hooks/useTranslations.js +19 -0
  124. package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -0
  125. package/dist/admin/components/AIChat/hooks/useTranslations.mjs +17 -0
  126. package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -0
  127. package/dist/admin/components/AIChat/lib/aiClient.js +174 -0
  128. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -0
  129. package/dist/admin/components/AIChat/lib/aiClient.mjs +167 -0
  130. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -0
  131. package/dist/admin/components/AIChat/lib/constants.js +16 -0
  132. package/dist/admin/components/AIChat/lib/constants.js.map +1 -0
  133. package/dist/admin/components/AIChat/lib/constants.mjs +10 -0
  134. package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -0
  135. package/dist/admin/components/AIChat/lib/misc.js +8 -0
  136. package/dist/admin/components/AIChat/lib/misc.js.map +1 -0
  137. package/dist/admin/components/AIChat/lib/misc.mjs +6 -0
  138. package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -0
  139. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +46 -0
  140. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -0
  141. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +44 -0
  142. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -0
  143. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +211 -0
  144. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -0
  145. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +202 -0
  146. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -0
  147. package/dist/admin/components/AIChat/providers/ChatProvider.js +192 -0
  148. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -0
  149. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +188 -0
  150. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -0
  151. package/dist/admin/components/AIChat/providers/SchemaProvider.js +90 -0
  152. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -0
  153. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +88 -0
  154. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -0
  155. package/dist/admin/components/AllowedTypesSelect.js +82 -0
  156. package/dist/admin/components/AllowedTypesSelect.js.map +1 -0
  157. package/dist/admin/components/AllowedTypesSelect.mjs +76 -0
  158. package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -0
  159. package/dist/admin/components/ApplyConditionButton.js +34 -0
  160. package/dist/admin/components/ApplyConditionButton.js.map +1 -0
  161. package/dist/admin/components/ApplyConditionButton.mjs +32 -0
  162. package/dist/admin/components/ApplyConditionButton.mjs.map +1 -0
  163. package/dist/admin/components/AttributeIcon.js +73 -0
  164. package/dist/admin/components/AttributeIcon.js.map +1 -0
  165. package/dist/admin/components/AttributeIcon.mjs +71 -0
  166. package/dist/admin/components/AttributeIcon.mjs.map +1 -0
  167. package/dist/admin/components/AttributeOptions/AttributeList.js +32 -0
  168. package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -0
  169. package/dist/admin/components/AttributeOptions/AttributeList.mjs +30 -0
  170. package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -0
  171. package/dist/admin/components/AttributeOptions/AttributeOption.js +92 -0
  172. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -0
  173. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +90 -0
  174. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -0
  175. package/dist/admin/components/AttributeOptions/AttributeOptions.js +71 -0
  176. package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -0
  177. package/dist/admin/components/AttributeOptions/AttributeOptions.mjs +69 -0
  178. package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -0
  179. package/dist/admin/components/AttributeOptions/CustomFieldOption.js +58 -0
  180. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -0
  181. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +56 -0
  182. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -0
  183. package/dist/admin/components/AttributeOptions/CustomFieldsList.js +55 -0
  184. package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -0
  185. package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs +53 -0
  186. package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -0
  187. package/dist/admin/components/AttributeOptions/EmptyAttributes.js +123 -0
  188. package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -0
  189. package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs +100 -0
  190. package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -0
  191. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js +19 -0
  192. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -0
  193. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs +17 -0
  194. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -0
  195. package/dist/admin/components/AttributeRow.js +403 -0
  196. package/dist/admin/components/AttributeRow.js.map +1 -0
  197. package/dist/admin/components/AttributeRow.mjs +395 -0
  198. package/dist/admin/components/AttributeRow.mjs.map +1 -0
  199. package/dist/admin/components/AutoReloadOverlayBlocker.js +216 -0
  200. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -0
  201. package/dist/admin/components/AutoReloadOverlayBlocker.mjs +193 -0
  202. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -0
  203. package/dist/admin/components/BooleanDefaultValueSelect.js +55 -0
  204. package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -0
  205. package/dist/admin/components/BooleanDefaultValueSelect.mjs +53 -0
  206. package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -0
  207. package/dist/admin/components/BooleanRadioGroup.js +27 -0
  208. package/dist/admin/components/BooleanRadioGroup.js.map +1 -0
  209. package/dist/admin/components/BooleanRadioGroup.mjs +25 -0
  210. package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -0
  211. package/dist/admin/components/CTBSession/CTBSessionProvider.js +49 -0
  212. package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -0
  213. package/dist/admin/components/CTBSession/CTBSessionProvider.mjs +46 -0
  214. package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -0
  215. package/dist/admin/components/CTBSession/sessionContext.js +8 -0
  216. package/dist/admin/components/CTBSession/sessionContext.js.map +1 -0
  217. package/dist/admin/components/CTBSession/sessionContext.mjs +6 -0
  218. package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -0
  219. package/dist/admin/components/CTBSession/useCTBSession.js +25 -0
  220. package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -0
  221. package/dist/admin/components/CTBSession/useCTBSession.mjs +23 -0
  222. package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -0
  223. package/dist/admin/components/CTBSession/useCTBTracking.js +37 -0
  224. package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -0
  225. package/dist/admin/components/CTBSession/useCTBTracking.mjs +35 -0
  226. package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -0
  227. package/dist/admin/components/CheckboxWithNumberField.js +88 -0
  228. package/dist/admin/components/CheckboxWithNumberField.js.map +1 -0
  229. package/dist/admin/components/CheckboxWithNumberField.mjs +86 -0
  230. package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -0
  231. package/dist/admin/components/ComponentCard/ComponentCard.js +118 -0
  232. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -0
  233. package/dist/admin/components/ComponentCard/ComponentCard.mjs +112 -0
  234. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -0
  235. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js +24 -0
  236. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -0
  237. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs +22 -0
  238. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -0
  239. package/dist/admin/components/ComponentList.js +31 -0
  240. package/dist/admin/components/ComponentList.js.map +1 -0
  241. package/dist/admin/components/ComponentList.mjs +25 -0
  242. package/dist/admin/components/ComponentList.mjs.map +1 -0
  243. package/dist/admin/components/ComponentRow.js +42 -0
  244. package/dist/admin/components/ComponentRow.js.map +1 -0
  245. package/dist/admin/components/ComponentRow.mjs +40 -0
  246. package/dist/admin/components/ComponentRow.mjs.map +1 -0
  247. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +279 -0
  248. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -0
  249. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +277 -0
  250. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -0
  251. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +157 -0
  252. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -0
  253. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +151 -0
  254. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -0
  255. package/dist/admin/components/ContentTypeRadioGroup.js +29 -0
  256. package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -0
  257. package/dist/admin/components/ContentTypeRadioGroup.mjs +27 -0
  258. package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -0
  259. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +80 -0
  260. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -0
  261. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +78 -0
  262. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -0
  263. package/dist/admin/components/CustomRadioGroup/Styles.js +75 -0
  264. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -0
  265. package/dist/admin/components/CustomRadioGroup/Styles.mjs +73 -0
  266. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -0
  267. package/dist/admin/components/DataManager/DataManagerContext.js +9 -0
  268. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
  269. package/dist/admin/components/DataManager/DataManagerContext.mjs +7 -0
  270. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
  271. package/dist/admin/components/DataManager/DataManagerProvider.js +411 -0
  272. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
  273. package/dist/admin/components/DataManager/DataManagerProvider.mjs +384 -0
  274. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
  275. package/dist/admin/components/DataManager/reducer.js +597 -0
  276. package/dist/admin/components/DataManager/reducer.js.map +1 -0
  277. package/dist/admin/components/DataManager/reducer.mjs +588 -0
  278. package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
  279. package/dist/admin/components/DataManager/undoRedo.js +102 -0
  280. package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
  281. package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
  282. package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
  283. package/dist/admin/components/DataManager/useDataManager.js +9 -0
  284. package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
  285. package/dist/admin/components/DataManager/useDataManager.mjs +7 -0
  286. package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
  287. package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
  288. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
  289. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
  290. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
  291. package/dist/admin/components/DataManager/utils/cleanData.js +220 -0
  292. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
  293. package/dist/admin/components/DataManager/utils/cleanData.mjs +211 -0
  294. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
  295. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +38 -0
  296. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
  297. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs +31 -0
  298. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
  299. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js +45 -0
  300. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
  301. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs +43 -0
  302. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
  303. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +21 -0
  304. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
  305. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
  306. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
  307. package/dist/admin/components/DisplayedType.js +48 -0
  308. package/dist/admin/components/DisplayedType.js.map +1 -0
  309. package/dist/admin/components/DisplayedType.mjs +46 -0
  310. package/dist/admin/components/DisplayedType.mjs.map +1 -0
  311. package/dist/admin/components/DraftAndPublishToggle.js +86 -0
  312. package/dist/admin/components/DraftAndPublishToggle.js.map +1 -0
  313. package/dist/admin/components/DraftAndPublishToggle.mjs +84 -0
  314. package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -0
  315. package/dist/admin/components/DynamicZoneList.js +122 -0
  316. package/dist/admin/components/DynamicZoneList.js.map +1 -0
  317. package/dist/admin/components/DynamicZoneList.mjs +120 -0
  318. package/dist/admin/components/DynamicZoneList.mjs.map +1 -0
  319. package/dist/admin/components/ExitPrompt.js +50 -0
  320. package/dist/admin/components/ExitPrompt.js.map +1 -0
  321. package/dist/admin/components/ExitPrompt.mjs +48 -0
  322. package/dist/admin/components/ExitPrompt.mjs.map +1 -0
  323. package/dist/admin/components/Footers.js +95 -0
  324. package/dist/admin/components/Footers.js.map +1 -0
  325. package/dist/admin/components/Footers.mjs +92 -0
  326. package/dist/admin/components/Footers.mjs.map +1 -0
  327. package/dist/admin/components/FormModal/FormModal.js +1148 -0
  328. package/dist/admin/components/FormModal/FormModal.js.map +1 -0
  329. package/dist/admin/components/FormModal/FormModal.mjs +1120 -0
  330. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -0
  331. package/dist/admin/components/FormModal/attributes/ConditionForm.js +454 -0
  332. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -0
  333. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +433 -0
  334. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -0
  335. package/dist/admin/components/FormModal/attributes/advancedForm.js +526 -0
  336. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -0
  337. package/dist/admin/components/FormModal/attributes/advancedForm.mjs +524 -0
  338. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -0
  339. package/dist/admin/components/FormModal/attributes/attributeOptions.js +97 -0
  340. package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -0
  341. package/dist/admin/components/FormModal/attributes/attributeOptions.mjs +95 -0
  342. package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -0
  343. package/dist/admin/components/FormModal/attributes/baseForm.js +482 -0
  344. package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -0
  345. package/dist/admin/components/FormModal/attributes/baseForm.mjs +480 -0
  346. package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -0
  347. package/dist/admin/components/FormModal/attributes/commonBaseForm.js +17 -0
  348. package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -0
  349. package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs +15 -0
  350. package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -0
  351. package/dist/admin/components/FormModal/attributes/form.js +12 -0
  352. package/dist/admin/components/FormModal/attributes/form.js.map +1 -0
  353. package/dist/admin/components/FormModal/attributes/form.mjs +10 -0
  354. package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -0
  355. package/dist/admin/components/FormModal/attributes/nameField.js +19 -0
  356. package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -0
  357. package/dist/admin/components/FormModal/attributes/nameField.mjs +17 -0
  358. package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -0
  359. package/dist/admin/components/FormModal/attributes/types.js +314 -0
  360. package/dist/admin/components/FormModal/attributes/types.js.map +1 -0
  361. package/dist/admin/components/FormModal/attributes/types.mjs +289 -0
  362. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -0
  363. package/dist/admin/components/FormModal/attributes/validation/common.js +160 -0
  364. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -0
  365. package/dist/admin/components/FormModal/attributes/validation/common.mjs +129 -0
  366. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -0
  367. package/dist/admin/components/FormModal/component/componentField.js +40 -0
  368. package/dist/admin/components/FormModal/component/componentField.js.map +1 -0
  369. package/dist/admin/components/FormModal/component/componentField.mjs +38 -0
  370. package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -0
  371. package/dist/admin/components/FormModal/component/componentForm.js +53 -0
  372. package/dist/admin/components/FormModal/component/componentForm.js.map +1 -0
  373. package/dist/admin/components/FormModal/component/componentForm.mjs +51 -0
  374. package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -0
  375. package/dist/admin/components/FormModal/component/createComponentSchema.js +66 -0
  376. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -0
  377. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +44 -0
  378. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -0
  379. package/dist/admin/components/FormModal/contentType/contentTypeForm.js +169 -0
  380. package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -0
  381. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +167 -0
  382. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -0
  383. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +171 -0
  384. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -0
  385. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +149 -0
  386. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -0
  387. package/dist/admin/components/FormModal/dynamiczoneForm.js +68 -0
  388. package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -0
  389. package/dist/admin/components/FormModal/dynamiczoneForm.mjs +66 -0
  390. package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -0
  391. package/dist/admin/components/FormModal/forms/forms.js +280 -0
  392. package/dist/admin/components/FormModal/forms/forms.js.map +1 -0
  393. package/dist/admin/components/FormModal/forms/forms.mjs +278 -0
  394. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -0
  395. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js +21 -0
  396. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -0
  397. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs +19 -0
  398. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -0
  399. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +17 -0
  400. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -0
  401. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +11 -0
  402. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -0
  403. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js +10 -0
  404. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -0
  405. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs +8 -0
  406. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -0
  407. package/dist/admin/components/FormModal/reducer.js +343 -0
  408. package/dist/admin/components/FormModal/reducer.js.map +1 -0
  409. package/dist/admin/components/FormModal/reducer.mjs +333 -0
  410. package/dist/admin/components/FormModal/reducer.mjs.map +1 -0
  411. package/dist/admin/components/FormModal/utils/canEditContentType.js +27 -0
  412. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -0
  413. package/dist/admin/components/FormModal/utils/canEditContentType.mjs +25 -0
  414. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -0
  415. package/dist/admin/components/FormModal/utils/createUid.js +16 -0
  416. package/dist/admin/components/FormModal/utils/createUid.js.map +1 -0
  417. package/dist/admin/components/FormModal/utils/createUid.mjs +13 -0
  418. package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -0
  419. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +18 -0
  420. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -0
  421. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +16 -0
  422. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -0
  423. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js +56 -0
  424. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -0
  425. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs +54 -0
  426. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -0
  427. package/dist/admin/components/FormModal/utils/getFormInputNames.js +17 -0
  428. package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -0
  429. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +15 -0
  430. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -0
  431. package/dist/admin/components/FormModal/utils/relations.js +15 -0
  432. package/dist/admin/components/FormModal/utils/relations.js.map +1 -0
  433. package/dist/admin/components/FormModal/utils/relations.mjs +12 -0
  434. package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -0
  435. package/dist/admin/components/FormModalEndActions.js +289 -0
  436. package/dist/admin/components/FormModalEndActions.js.map +1 -0
  437. package/dist/admin/components/FormModalEndActions.mjs +287 -0
  438. package/dist/admin/components/FormModalEndActions.mjs.map +1 -0
  439. package/dist/admin/components/FormModalHeader.js +138 -0
  440. package/dist/admin/components/FormModalHeader.js.map +1 -0
  441. package/dist/admin/components/FormModalHeader.mjs +132 -0
  442. package/dist/admin/components/FormModalHeader.mjs.map +1 -0
  443. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +29 -0
  444. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
  445. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs +7 -0
  446. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
  447. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +218 -0
  448. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
  449. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +215 -0
  450. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
  451. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js +9 -0
  452. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
  453. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs +7 -0
  454. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
  455. package/dist/admin/components/FormModalSubHeader.js +74 -0
  456. package/dist/admin/components/FormModalSubHeader.js.map +1 -0
  457. package/dist/admin/components/FormModalSubHeader.mjs +67 -0
  458. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -0
  459. package/dist/admin/components/GenericInputs.js +552 -0
  460. package/dist/admin/components/GenericInputs.js.map +1 -0
  461. package/dist/admin/components/GenericInputs.mjs +526 -0
  462. package/dist/admin/components/GenericInputs.mjs.map +1 -0
  463. package/dist/admin/components/IconPicker/IconPicker.js +201 -0
  464. package/dist/admin/components/IconPicker/IconPicker.js.map +1 -0
  465. package/dist/admin/components/IconPicker/IconPicker.mjs +199 -0
  466. package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -0
  467. package/dist/admin/components/IconPicker/constants.js +159 -0
  468. package/dist/admin/components/IconPicker/constants.js.map +1 -0
  469. package/dist/admin/components/IconPicker/constants.mjs +136 -0
  470. package/dist/admin/components/IconPicker/constants.mjs.map +1 -0
  471. package/dist/admin/components/List.js +199 -0
  472. package/dist/admin/components/List.js.map +1 -0
  473. package/dist/admin/components/List.mjs +196 -0
  474. package/dist/admin/components/List.mjs.map +1 -0
  475. package/dist/admin/components/PluralName.js +82 -0
  476. package/dist/admin/components/PluralName.js.map +1 -0
  477. package/dist/admin/components/PluralName.mjs +76 -0
  478. package/dist/admin/components/PluralName.mjs.map +1 -0
  479. package/dist/admin/components/Relation/Relation.js +48 -0
  480. package/dist/admin/components/Relation/Relation.js.map +1 -0
  481. package/dist/admin/components/Relation/Relation.mjs +46 -0
  482. package/dist/admin/components/Relation/Relation.mjs.map +1 -0
  483. package/dist/admin/components/Relation/RelationField/RelationField.js +52 -0
  484. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -0
  485. package/dist/admin/components/Relation/RelationField/RelationField.mjs +50 -0
  486. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -0
  487. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +75 -0
  488. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -0
  489. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +73 -0
  490. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -0
  491. package/dist/admin/components/Relation/RelationNaturePicker/Components.js +59 -0
  492. package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -0
  493. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +55 -0
  494. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -0
  495. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +153 -0
  496. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -0
  497. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +145 -0
  498. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -0
  499. package/dist/admin/components/SelectCategory.js +66 -0
  500. package/dist/admin/components/SelectCategory.js.map +1 -0
  501. package/dist/admin/components/SelectCategory.mjs +64 -0
  502. package/dist/admin/components/SelectCategory.mjs.map +1 -0
  503. package/dist/admin/components/SelectComponent.js +87 -0
  504. package/dist/admin/components/SelectComponent.js.map +1 -0
  505. package/dist/admin/components/SelectComponent.mjs +85 -0
  506. package/dist/admin/components/SelectComponent.mjs.map +1 -0
  507. package/dist/admin/components/SelectComponents.js +73 -0
  508. package/dist/admin/components/SelectComponents.js.map +1 -0
  509. package/dist/admin/components/SelectComponents.mjs +71 -0
  510. package/dist/admin/components/SelectComponents.mjs.map +1 -0
  511. package/dist/admin/components/SelectDateType.js +62 -0
  512. package/dist/admin/components/SelectDateType.js.map +1 -0
  513. package/dist/admin/components/SelectDateType.mjs +60 -0
  514. package/dist/admin/components/SelectDateType.mjs.map +1 -0
  515. package/dist/admin/components/SelectNumber.js +107 -0
  516. package/dist/admin/components/SelectNumber.js.map +1 -0
  517. package/dist/admin/components/SelectNumber.mjs +105 -0
  518. package/dist/admin/components/SelectNumber.mjs.map +1 -0
  519. package/dist/admin/components/SingularName.js +72 -0
  520. package/dist/admin/components/SingularName.js.map +1 -0
  521. package/dist/admin/components/SingularName.mjs +70 -0
  522. package/dist/admin/components/SingularName.mjs.map +1 -0
  523. package/dist/admin/components/Status.js +73 -0
  524. package/dist/admin/components/Status.js.map +1 -0
  525. package/dist/admin/components/Status.mjs +70 -0
  526. package/dist/admin/components/Status.mjs.map +1 -0
  527. package/dist/admin/components/TabForm.js +176 -0
  528. package/dist/admin/components/TabForm.js.map +1 -0
  529. package/dist/admin/components/TabForm.mjs +170 -0
  530. package/dist/admin/components/TabForm.mjs.map +1 -0
  531. package/dist/admin/components/TextareaEnum.js +58 -0
  532. package/dist/admin/components/TextareaEnum.js.map +1 -0
  533. package/dist/admin/components/TextareaEnum.mjs +56 -0
  534. package/dist/admin/components/TextareaEnum.mjs.map +1 -0
  535. package/dist/admin/constants.js +19 -0
  536. package/dist/admin/constants.js.map +1 -0
  537. package/dist/admin/constants.mjs +16 -0
  538. package/dist/admin/constants.mjs.map +1 -0
  539. package/dist/admin/icons/Curve.js +47 -0
  540. package/dist/admin/icons/Curve.js.map +1 -0
  541. package/dist/admin/icons/Curve.mjs +45 -0
  542. package/dist/admin/icons/Curve.mjs.map +1 -0
  543. package/dist/admin/index.js +95 -0
  544. package/dist/admin/index.js.map +1 -0
  545. package/dist/admin/index.mjs +87 -0
  546. package/dist/admin/index.mjs.map +1 -0
  547. package/dist/admin/pages/App/index.js +114 -0
  548. package/dist/admin/pages/App/index.js.map +1 -0
  549. package/dist/admin/pages/App/index.mjs +110 -0
  550. package/dist/admin/pages/App/index.mjs.map +1 -0
  551. package/dist/admin/pages/ListView/EmptyState.js +110 -0
  552. package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
  553. package/dist/admin/pages/ListView/EmptyState.mjs +108 -0
  554. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
  555. package/dist/admin/pages/ListView/LinkToCMSettingsView.js +90 -0
  556. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -0
  557. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +88 -0
  558. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -0
  559. package/dist/admin/pages/ListView/ListView.js +181 -0
  560. package/dist/admin/pages/ListView/ListView.js.map +1 -0
  561. package/dist/admin/pages/ListView/ListView.mjs +175 -0
  562. package/dist/admin/pages/ListView/ListView.mjs.map +1 -0
  563. package/dist/admin/pluginId.js +6 -0
  564. package/dist/admin/pluginId.js.map +1 -0
  565. package/dist/admin/pluginId.mjs +4 -0
  566. package/dist/admin/pluginId.mjs.map +1 -0
  567. package/dist/admin/reducers.js +12 -0
  568. package/dist/admin/reducers.js.map +1 -0
  569. package/dist/admin/reducers.mjs +10 -0
  570. package/dist/admin/reducers.mjs.map +1 -0
  571. package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
  572. package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
  573. package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
  574. package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
  575. package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
  576. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +20 -0
  577. package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
  578. package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
  579. package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
  580. package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
  581. package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +34 -0
  582. package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +33 -0
  583. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
  584. package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
  585. package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
  586. package/dist/admin/src/components/AIChat/components/Input.d.ts +48 -0
  587. package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
  588. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +4 -0
  589. package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +8 -0
  590. package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
  591. package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
  592. package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
  593. package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +4 -0
  594. package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +4 -0
  595. package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
  596. package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
  597. package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
  598. package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
  599. package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
  600. package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
  601. package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
  602. package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
  603. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
  604. package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
  605. package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
  606. package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
  607. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +7 -0
  608. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
  609. package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
  610. package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
  611. package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
  612. package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
  613. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +22 -0
  614. package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
  615. package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
  616. package/dist/admin/src/components/AllowedTypesSelect.d.ts +9 -0
  617. package/dist/admin/src/components/ApplyConditionButton.d.ts +8 -0
  618. package/dist/admin/src/components/AttributeIcon.d.ts +9 -0
  619. package/dist/admin/src/components/AttributeOptions/AttributeList.d.ts +6 -0
  620. package/dist/admin/src/components/AttributeOptions/AttributeOption.d.ts +11 -0
  621. package/dist/admin/src/components/AttributeOptions/AttributeOptions.d.ts +13 -0
  622. package/dist/admin/src/components/AttributeOptions/CustomFieldOption.d.ts +22 -0
  623. package/dist/admin/src/components/AttributeOptions/CustomFieldsList.d.ts +1 -0
  624. package/dist/admin/src/components/AttributeOptions/EmptyAttributes.d.ts +2 -0
  625. package/dist/admin/src/components/AttributeOptions/OptionBoxWrapper.d.ts +13 -0
  626. package/dist/admin/src/components/AttributeRow.d.ts +32 -0
  627. package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +25 -0
  628. package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +20 -0
  629. package/dist/admin/src/components/BooleanRadioGroup.d.ts +8 -0
  630. package/dist/admin/src/components/CTBSession/CTBSessionProvider.d.ts +26 -0
  631. package/dist/admin/src/components/CTBSession/ctbSession.d.ts +5 -0
  632. package/dist/admin/src/components/CTBSession/sessionContext.d.ts +24 -0
  633. package/dist/admin/src/components/CTBSession/useCTBSession.d.ts +12 -0
  634. package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +13 -0
  635. package/dist/admin/src/components/CheckboxWithNumberField.d.ts +13 -0
  636. package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +14 -0
  637. package/dist/admin/src/components/ComponentCard/ComponentIcon/ComponentIcon.d.ts +7 -0
  638. package/dist/admin/src/components/ComponentCard/ComponentIcon/index.d.ts +1 -0
  639. package/dist/admin/src/components/ComponentCard/index.d.ts +1 -0
  640. package/dist/admin/src/components/ComponentList.d.ts +8 -0
  641. package/dist/admin/src/components/ComponentRow.d.ts +19 -0
  642. package/dist/admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.d.ts +1 -0
  643. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +36 -0
  644. package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +16 -0
  645. package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +16 -0
  646. package/dist/admin/src/components/CustomRadioGroup/Styles.d.ts +6 -0
  647. package/dist/admin/src/components/CustomRadioGroup/index.d.ts +1 -0
  648. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +139 -0
  649. package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
  650. package/dist/admin/src/components/DataManager/reducer.d.ts +282 -0
  651. package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
  652. package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
  653. package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
  654. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +333 -0
  655. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -0
  656. package/dist/admin/src/components/DataManager/utils/retrieveComponentsThatHaveComponents.d.ts +12 -0
  657. package/dist/admin/src/components/DataManager/utils/retrieveNestedComponents.d.ts +8 -0
  658. package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -0
  659. package/dist/admin/src/components/DisplayedType.d.ts +8 -0
  660. package/dist/admin/src/components/DraftAndPublishToggle.d.ts +22 -0
  661. package/dist/admin/src/components/DynamicZoneList.d.ts +13 -0
  662. package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
  663. package/dist/admin/src/components/Footers.d.ts +13 -0
  664. package/dist/admin/src/components/FormModal/FormModal.d.ts +1 -0
  665. package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +24 -0
  666. package/dist/admin/src/components/FormModal/attributes/advancedForm.d.ts +696 -0
  667. package/dist/admin/src/components/FormModal/attributes/attributeOptions.d.ts +90 -0
  668. package/dist/admin/src/components/FormModal/attributes/baseForm.d.ts +376 -0
  669. package/dist/admin/src/components/FormModal/attributes/commonBaseForm.d.ts +17 -0
  670. package/dist/admin/src/components/FormModal/attributes/form.d.ts +1072 -0
  671. package/dist/admin/src/components/FormModal/attributes/nameField.d.ts +12 -0
  672. package/dist/admin/src/components/FormModal/attributes/types.d.ts +327 -0
  673. package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +42 -0
  674. package/dist/admin/src/components/FormModal/component/componentField.d.ts +20 -0
  675. package/dist/admin/src/components/FormModal/component/componentForm.d.ts +25 -0
  676. package/dist/admin/src/components/FormModal/component/createComponentSchema.d.ts +10 -0
  677. package/dist/admin/src/components/FormModal/contentType/contentTypeForm.d.ts +116 -0
  678. package/dist/admin/src/components/FormModal/contentType/createContentTypeSchema.d.ts +22 -0
  679. package/dist/admin/src/components/FormModal/dynamiczoneForm.d.ts +68 -0
  680. package/dist/admin/src/components/FormModal/forms/forms.d.ts +204 -0
  681. package/dist/admin/src/components/FormModal/forms/utils/addItemsToFormSection.d.ts +38 -0
  682. package/dist/admin/src/components/FormModal/forms/utils/createCollectionName.d.ts +2 -0
  683. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +22 -0
  684. package/dist/admin/src/components/FormModal/reducer.d.ts +188 -0
  685. package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +18 -0
  686. package/dist/admin/src/components/FormModal/utils/createUid.d.ts +4 -0
  687. package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -0
  688. package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +4 -0
  689. package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -0
  690. package/dist/admin/src/components/FormModal/utils/relations.d.ts +4 -0
  691. package/dist/admin/src/components/FormModalEndActions.d.ts +38 -0
  692. package/dist/admin/src/components/FormModalHeader.d.ts +18 -0
  693. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
  694. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +69 -0
  695. package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
  696. package/dist/admin/src/components/FormModalSubHeader.d.ts +22 -0
  697. package/dist/admin/src/components/GenericInputs.d.ts +90 -0
  698. package/dist/admin/src/components/IconPicker/IconPicker.d.ts +8 -0
  699. package/dist/admin/src/components/IconPicker/constants.d.ts +5 -0
  700. package/dist/admin/src/components/IconPicker/index.d.ts +1 -0
  701. package/dist/admin/src/components/List.d.ts +26 -0
  702. package/dist/admin/src/components/PluralName.d.ts +14 -0
  703. package/dist/admin/src/components/Relation/Relation.d.ts +19 -0
  704. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +15 -0
  705. package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +7 -0
  706. package/dist/admin/src/components/Relation/RelationNaturePicker/Components.d.ts +37 -0
  707. package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +9 -0
  708. package/dist/admin/src/components/SelectCategory.d.ts +12 -0
  709. package/dist/admin/src/components/SelectComponent.d.ts +21 -0
  710. package/dist/admin/src/components/SelectComponents.d.ts +21 -0
  711. package/dist/admin/src/components/SelectDateType.d.ts +38 -0
  712. package/dist/admin/src/components/SelectNumber.d.ts +36 -0
  713. package/dist/admin/src/components/SingularName.d.ts +14 -0
  714. package/dist/admin/src/components/Status.d.ts +6 -0
  715. package/dist/admin/src/components/TabForm.d.ts +40 -0
  716. package/dist/admin/src/components/TextareaEnum.d.ts +20 -0
  717. package/dist/admin/src/constants.d.ts +7 -0
  718. package/dist/admin/src/exports.d.ts +15 -0
  719. package/dist/admin/src/icons/Curve.d.ts +6 -0
  720. package/dist/admin/src/index.d.ts +18 -0
  721. package/dist/admin/src/pages/App/index.d.ts +2 -0
  722. package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
  723. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +7 -0
  724. package/dist/admin/src/pages/ListView/ListView.d.ts +2 -0
  725. package/dist/admin/src/pluginId.d.ts +1 -0
  726. package/dist/admin/src/reducers.d.ts +4 -0
  727. package/dist/admin/src/types.d.ts +63 -0
  728. package/dist/admin/src/utils/conditions.d.ts +26 -0
  729. package/dist/admin/src/utils/findAttribute.d.ts +2 -0
  730. package/dist/admin/src/utils/formAPI.d.ts +48 -0
  731. package/dist/admin/src/utils/getAttributeDisplayedType.d.ts +1 -0
  732. package/dist/admin/src/utils/getMaxDepth.d.ts +23 -0
  733. package/dist/admin/src/utils/getRelationType.d.ts +6 -0
  734. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  735. package/dist/admin/src/utils/getYupInnerErrors.d.ts +7 -0
  736. package/dist/admin/src/utils/index.d.ts +2 -0
  737. package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +2 -0
  738. package/dist/admin/src/utils/makeUnique.d.ts +2 -0
  739. package/dist/admin/src/utils/nameToSlug.d.ts +1 -0
  740. package/dist/admin/src/utils/parseDateValue.d.ts +1 -0
  741. package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
  742. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
  743. package/dist/admin/src/utils/startsWithANumber.d.ts +1 -0
  744. package/dist/admin/src/utils/timeFormat.d.ts +16 -0
  745. package/dist/admin/src/utils/toRegressedEnumValue.d.ts +1 -0
  746. package/dist/admin/translations/ar.json.js +239 -0
  747. package/dist/admin/translations/ar.json.js.map +1 -0
  748. package/dist/admin/translations/ar.json.mjs +233 -0
  749. package/dist/admin/translations/ar.json.mjs.map +1 -0
  750. package/dist/admin/translations/cs.json.js +298 -0
  751. package/dist/admin/translations/cs.json.js.map +1 -0
  752. package/dist/admin/translations/cs.json.mjs +292 -0
  753. package/dist/admin/translations/cs.json.mjs.map +1 -0
  754. package/dist/admin/translations/da.json.js +185 -0
  755. package/dist/admin/translations/da.json.js.map +1 -0
  756. package/dist/admin/translations/da.json.mjs +179 -0
  757. package/dist/admin/translations/da.json.mjs.map +1 -0
  758. package/dist/admin/translations/de.json.js +298 -0
  759. package/dist/admin/translations/de.json.js.map +1 -0
  760. package/dist/admin/translations/de.json.mjs +292 -0
  761. package/dist/admin/translations/de.json.mjs.map +1 -0
  762. package/dist/admin/translations/en.json.js +300 -0
  763. package/dist/admin/translations/en.json.js.map +1 -0
  764. package/dist/admin/translations/en.json.mjs +294 -0
  765. package/dist/admin/translations/en.json.mjs.map +1 -0
  766. package/dist/admin/translations/es.json.js +240 -0
  767. package/dist/admin/translations/es.json.js.map +1 -0
  768. package/dist/admin/translations/es.json.mjs +234 -0
  769. package/dist/admin/translations/es.json.mjs.map +1 -0
  770. package/dist/admin/translations/fa.json.js +300 -0
  771. package/dist/admin/translations/fa.json.js.map +1 -0
  772. package/dist/admin/translations/fa.json.mjs +294 -0
  773. package/dist/admin/translations/fa.json.mjs.map +1 -0
  774. package/dist/admin/translations/fr.json.js +244 -0
  775. package/dist/admin/translations/fr.json.js.map +1 -0
  776. package/dist/admin/translations/fr.json.mjs +238 -0
  777. package/dist/admin/translations/fr.json.mjs.map +1 -0
  778. package/dist/admin/translations/id.json.js +239 -0
  779. package/dist/admin/translations/id.json.js.map +1 -0
  780. package/dist/admin/translations/id.json.mjs +233 -0
  781. package/dist/admin/translations/id.json.mjs.map +1 -0
  782. package/dist/admin/translations/it.json.js +239 -0
  783. package/dist/admin/translations/it.json.js.map +1 -0
  784. package/dist/admin/translations/it.json.mjs +233 -0
  785. package/dist/admin/translations/it.json.mjs.map +1 -0
  786. package/dist/admin/translations/ja.json.js +298 -0
  787. package/dist/admin/translations/ja.json.js.map +1 -0
  788. package/dist/admin/translations/ja.json.mjs +292 -0
  789. package/dist/admin/translations/ja.json.mjs.map +1 -0
  790. package/dist/admin/translations/ko.json.js +302 -0
  791. package/dist/admin/translations/ko.json.js.map +1 -0
  792. package/dist/admin/translations/ko.json.mjs +296 -0
  793. package/dist/admin/translations/ko.json.mjs.map +1 -0
  794. package/dist/admin/translations/ms.json.js +239 -0
  795. package/dist/admin/translations/ms.json.js.map +1 -0
  796. package/dist/admin/translations/ms.json.mjs +233 -0
  797. package/dist/admin/translations/ms.json.mjs.map +1 -0
  798. package/dist/admin/translations/nl.json.js +301 -0
  799. package/dist/admin/translations/nl.json.js.map +1 -0
  800. package/dist/admin/translations/nl.json.mjs +295 -0
  801. package/dist/admin/translations/nl.json.mjs.map +1 -0
  802. package/dist/admin/translations/pl.json.js +298 -0
  803. package/dist/admin/translations/pl.json.js.map +1 -0
  804. package/dist/admin/translations/pl.json.mjs +292 -0
  805. package/dist/admin/translations/pl.json.mjs.map +1 -0
  806. package/dist/admin/translations/pt-BR.json.js +239 -0
  807. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  808. package/dist/admin/translations/pt-BR.json.mjs +233 -0
  809. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  810. package/dist/admin/translations/pt.json.js +239 -0
  811. package/dist/admin/translations/pt.json.js.map +1 -0
  812. package/dist/admin/translations/pt.json.mjs +233 -0
  813. package/dist/admin/translations/pt.json.mjs.map +1 -0
  814. package/dist/admin/translations/ru.json.js +240 -0
  815. package/dist/admin/translations/ru.json.js.map +1 -0
  816. package/dist/admin/translations/ru.json.mjs +234 -0
  817. package/dist/admin/translations/ru.json.mjs.map +1 -0
  818. package/dist/admin/translations/sk.json.js +298 -0
  819. package/dist/admin/translations/sk.json.js.map +1 -0
  820. package/dist/admin/translations/sk.json.mjs +292 -0
  821. package/dist/admin/translations/sk.json.mjs.map +1 -0
  822. package/dist/admin/translations/sv.json.js +224 -0
  823. package/dist/admin/translations/sv.json.js.map +1 -0
  824. package/dist/admin/translations/sv.json.mjs +218 -0
  825. package/dist/admin/translations/sv.json.mjs.map +1 -0
  826. package/dist/admin/translations/th.json.js +187 -0
  827. package/dist/admin/translations/th.json.js.map +1 -0
  828. package/dist/admin/translations/th.json.mjs +181 -0
  829. package/dist/admin/translations/th.json.mjs.map +1 -0
  830. package/dist/admin/translations/tr.json.js +201 -0
  831. package/dist/admin/translations/tr.json.js.map +1 -0
  832. package/dist/admin/translations/tr.json.mjs +195 -0
  833. package/dist/admin/translations/tr.json.mjs.map +1 -0
  834. package/dist/admin/translations/uk.json.js +238 -0
  835. package/dist/admin/translations/uk.json.js.map +1 -0
  836. package/dist/admin/translations/uk.json.mjs +232 -0
  837. package/dist/admin/translations/uk.json.mjs.map +1 -0
  838. package/dist/admin/translations/zh-Hans.json.js +239 -0
  839. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  840. package/dist/admin/translations/zh-Hans.json.mjs +233 -0
  841. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  842. package/dist/admin/translations/zh.json.js +224 -0
  843. package/dist/admin/translations/zh.json.js.map +1 -0
  844. package/dist/admin/translations/zh.json.mjs +218 -0
  845. package/dist/admin/translations/zh.json.mjs.map +1 -0
  846. package/dist/admin/utils/conditions.js +71 -0
  847. package/dist/admin/utils/conditions.js.map +1 -0
  848. package/dist/admin/utils/conditions.mjs +66 -0
  849. package/dist/admin/utils/conditions.mjs.map +1 -0
  850. package/dist/admin/utils/findAttribute.js +8 -0
  851. package/dist/admin/utils/findAttribute.js.map +1 -0
  852. package/dist/admin/utils/findAttribute.mjs +6 -0
  853. package/dist/admin/utils/findAttribute.mjs.map +1 -0
  854. package/dist/admin/utils/formAPI.js +141 -0
  855. package/dist/admin/utils/formAPI.js.map +1 -0
  856. package/dist/admin/utils/formAPI.mjs +115 -0
  857. package/dist/admin/utils/formAPI.mjs.map +1 -0
  858. package/dist/admin/utils/getAttributeDisplayedType.js +32 -0
  859. package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -0
  860. package/dist/admin/utils/getAttributeDisplayedType.mjs +30 -0
  861. package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -0
  862. package/dist/admin/utils/getMaxDepth.js +74 -0
  863. package/dist/admin/utils/getMaxDepth.js.map +1 -0
  864. package/dist/admin/utils/getMaxDepth.mjs +71 -0
  865. package/dist/admin/utils/getMaxDepth.mjs.map +1 -0
  866. package/dist/admin/utils/getRelationType.js +21 -0
  867. package/dist/admin/utils/getRelationType.js.map +1 -0
  868. package/dist/admin/utils/getRelationType.mjs +19 -0
  869. package/dist/admin/utils/getRelationType.mjs.map +1 -0
  870. package/dist/admin/utils/getTrad.js +8 -0
  871. package/dist/admin/utils/getTrad.js.map +1 -0
  872. package/dist/admin/utils/getTrad.mjs +6 -0
  873. package/dist/admin/utils/getTrad.mjs.map +1 -0
  874. package/dist/admin/utils/getYupInnerErrors.js +25 -0
  875. package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
  876. package/dist/admin/utils/getYupInnerErrors.mjs +23 -0
  877. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
  878. package/dist/admin/utils/isAllowedContentTypesForRelations.js +8 -0
  879. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -0
  880. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs +6 -0
  881. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -0
  882. package/dist/admin/utils/makeUnique.js +8 -0
  883. package/dist/admin/utils/makeUnique.js.map +1 -0
  884. package/dist/admin/utils/makeUnique.mjs +6 -0
  885. package/dist/admin/utils/makeUnique.mjs.map +1 -0
  886. package/dist/admin/utils/nameToSlug.js +14 -0
  887. package/dist/admin/utils/nameToSlug.js.map +1 -0
  888. package/dist/admin/utils/nameToSlug.mjs +8 -0
  889. package/dist/admin/utils/nameToSlug.mjs.map +1 -0
  890. package/dist/admin/utils/parseDateValue.js +17 -0
  891. package/dist/admin/utils/parseDateValue.js.map +1 -0
  892. package/dist/admin/utils/parseDateValue.mjs +15 -0
  893. package/dist/admin/utils/parseDateValue.mjs.map +1 -0
  894. package/dist/admin/utils/parseNumberInputValue.js +15 -0
  895. package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
  896. package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
  897. package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
  898. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  899. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  900. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  901. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  902. package/dist/admin/utils/timeFormat.js +38 -0
  903. package/dist/admin/utils/timeFormat.js.map +1 -0
  904. package/dist/admin/utils/timeFormat.mjs +35 -0
  905. package/dist/admin/utils/timeFormat.mjs.map +1 -0
  906. package/dist/admin/utils/toRegressedEnumValue.js +21 -0
  907. package/dist/admin/utils/toRegressedEnumValue.js.map +1 -0
  908. package/dist/admin/utils/toRegressedEnumValue.mjs +15 -0
  909. package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -0
  910. package/dist/server/bootstrap.js +16 -0
  911. package/dist/server/bootstrap.js.map +1 -0
  912. package/dist/server/bootstrap.mjs +14 -0
  913. package/dist/server/bootstrap.mjs.map +1 -0
  914. package/dist/server/config.js +9 -0
  915. package/dist/server/config.js.map +1 -0
  916. package/dist/server/config.mjs +7 -0
  917. package/dist/server/config.mjs.map +1 -0
  918. package/dist/server/controllers/builder.js +12 -0
  919. package/dist/server/controllers/builder.js.map +1 -0
  920. package/dist/server/controllers/builder.mjs +10 -0
  921. package/dist/server/controllers/builder.mjs.map +1 -0
  922. package/dist/server/controllers/component-categories.js +38 -0
  923. package/dist/server/controllers/component-categories.js.map +1 -0
  924. package/dist/server/controllers/component-categories.mjs +36 -0
  925. package/dist/server/controllers/component-categories.mjs.map +1 -0
  926. package/dist/server/controllers/components.js +148 -0
  927. package/dist/server/controllers/components.js.map +1 -0
  928. package/dist/server/controllers/components.mjs +142 -0
  929. package/dist/server/controllers/components.mjs.map +1 -0
  930. package/dist/server/controllers/content-types.js +165 -0
  931. package/dist/server/controllers/content-types.js.map +1 -0
  932. package/dist/server/controllers/content-types.mjs +159 -0
  933. package/dist/server/controllers/content-types.mjs.map +1 -0
  934. package/dist/server/controllers/index.js +18 -0
  935. package/dist/server/controllers/index.js.map +1 -0
  936. package/dist/server/controllers/index.mjs +16 -0
  937. package/dist/server/controllers/index.mjs.map +1 -0
  938. package/dist/server/controllers/schema.js +56 -0
  939. package/dist/server/controllers/schema.js.map +1 -0
  940. package/dist/server/controllers/schema.mjs +54 -0
  941. package/dist/server/controllers/schema.mjs.map +1 -0
  942. package/dist/server/controllers/validation/common.js +102 -0
  943. package/dist/server/controllers/validation/common.js.map +1 -0
  944. package/dist/server/controllers/validation/common.mjs +81 -0
  945. package/dist/server/controllers/validation/common.mjs.map +1 -0
  946. package/dist/server/controllers/validation/component-category.js +12 -0
  947. package/dist/server/controllers/validation/component-category.js.map +1 -0
  948. package/dist/server/controllers/validation/component-category.mjs +10 -0
  949. package/dist/server/controllers/validation/component-category.mjs.map +1 -0
  950. package/dist/server/controllers/validation/component.js +72 -0
  951. package/dist/server/controllers/validation/component.js.map +1 -0
  952. package/dist/server/controllers/validation/component.mjs +60 -0
  953. package/dist/server/controllers/validation/component.mjs.map +1 -0
  954. package/dist/server/controllers/validation/content-type.js +153 -0
  955. package/dist/server/controllers/validation/content-type.js.map +1 -0
  956. package/dist/server/controllers/validation/content-type.mjs +149 -0
  957. package/dist/server/controllers/validation/content-type.mjs.map +1 -0
  958. package/dist/server/controllers/validation/data-transform.js +31 -0
  959. package/dist/server/controllers/validation/data-transform.js.map +1 -0
  960. package/dist/server/controllers/validation/data-transform.mjs +24 -0
  961. package/dist/server/controllers/validation/data-transform.mjs.map +1 -0
  962. package/dist/server/controllers/validation/model-schema.js +94 -0
  963. package/dist/server/controllers/validation/model-schema.js.map +1 -0
  964. package/dist/server/controllers/validation/model-schema.mjs +88 -0
  965. package/dist/server/controllers/validation/model-schema.mjs.map +1 -0
  966. package/dist/server/controllers/validation/relations.js +71 -0
  967. package/dist/server/controllers/validation/relations.js.map +1 -0
  968. package/dist/server/controllers/validation/relations.mjs +69 -0
  969. package/dist/server/controllers/validation/relations.mjs.map +1 -0
  970. package/dist/server/controllers/validation/schema.js +666 -0
  971. package/dist/server/controllers/validation/schema.js.map +1 -0
  972. package/dist/server/controllers/validation/schema.mjs +661 -0
  973. package/dist/server/controllers/validation/schema.mjs.map +1 -0
  974. package/dist/server/controllers/validation/types.js +236 -0
  975. package/dist/server/controllers/validation/types.js.map +1 -0
  976. package/dist/server/controllers/validation/types.mjs +230 -0
  977. package/dist/server/controllers/validation/types.mjs.map +1 -0
  978. package/dist/server/index.js +24 -0
  979. package/dist/server/index.js.map +1 -0
  980. package/dist/server/index.mjs +22 -0
  981. package/dist/server/index.mjs.map +1 -0
  982. package/dist/server/middlewares/index.js +8 -0
  983. package/dist/server/middlewares/index.js.map +1 -0
  984. package/dist/server/middlewares/index.mjs +2 -0
  985. package/dist/server/middlewares/index.mjs.map +1 -0
  986. package/dist/server/middlewares/is-development-mode.js +19 -0
  987. package/dist/server/middlewares/is-development-mode.js.map +1 -0
  988. package/dist/server/middlewares/is-development-mode.mjs +17 -0
  989. package/dist/server/middlewares/is-development-mode.mjs.map +1 -0
  990. package/dist/server/register.js +38 -0
  991. package/dist/server/register.js.map +1 -0
  992. package/dist/server/register.mjs +36 -0
  993. package/dist/server/register.mjs.map +1 -0
  994. package/dist/server/routes/admin.js +311 -0
  995. package/dist/server/routes/admin.js.map +1 -0
  996. package/dist/server/routes/admin.mjs +309 -0
  997. package/dist/server/routes/admin.mjs.map +1 -0
  998. package/dist/server/routes/content-api.js +195 -0
  999. package/dist/server/routes/content-api.js.map +1 -0
  1000. package/dist/server/routes/content-api.mjs +173 -0
  1001. package/dist/server/routes/content-api.mjs.map +1 -0
  1002. package/dist/server/routes/index.js +12 -0
  1003. package/dist/server/routes/index.js.map +1 -0
  1004. package/dist/server/routes/index.mjs +10 -0
  1005. package/dist/server/routes/index.mjs.map +1 -0
  1006. package/dist/server/services/api-handler.js +118 -0
  1007. package/dist/server/services/api-handler.js.map +1 -0
  1008. package/dist/server/services/api-handler.mjs +93 -0
  1009. package/dist/server/services/api-handler.mjs.map +1 -0
  1010. package/dist/server/services/builder.js +27 -0
  1011. package/dist/server/services/builder.js.map +1 -0
  1012. package/dist/server/services/builder.mjs +21 -0
  1013. package/dist/server/services/builder.mjs.map +1 -0
  1014. package/dist/server/services/component-categories.js +59 -0
  1015. package/dist/server/services/component-categories.js.map +1 -0
  1016. package/dist/server/services/component-categories.mjs +56 -0
  1017. package/dist/server/services/component-categories.mjs.map +1 -0
  1018. package/dist/server/services/components.js +79 -0
  1019. package/dist/server/services/components.js.map +1 -0
  1020. package/dist/server/services/components.mjs +74 -0
  1021. package/dist/server/services/components.mjs.map +1 -0
  1022. package/dist/server/services/constants.js +52 -0
  1023. package/dist/server/services/constants.js.map +1 -0
  1024. package/dist/server/services/constants.mjs +45 -0
  1025. package/dist/server/services/constants.mjs.map +1 -0
  1026. package/dist/server/services/content-types.js +227 -0
  1027. package/dist/server/services/content-types.js.map +1 -0
  1028. package/dist/server/services/content-types.mjs +213 -0
  1029. package/dist/server/services/content-types.mjs.map +1 -0
  1030. package/dist/server/services/index.js +20 -0
  1031. package/dist/server/services/index.js.map +1 -0
  1032. package/dist/server/services/index.mjs +18 -0
  1033. package/dist/server/services/index.mjs.map +1 -0
  1034. package/dist/server/services/schema-builder/component-builder.js +130 -0
  1035. package/dist/server/services/schema-builder/component-builder.js.map +1 -0
  1036. package/dist/server/services/schema-builder/component-builder.mjs +122 -0
  1037. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -0
  1038. package/dist/server/services/schema-builder/content-type-builder.js +332 -0
  1039. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -0
  1040. package/dist/server/services/schema-builder/content-type-builder.mjs +325 -0
  1041. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -0
  1042. package/dist/server/services/schema-builder/index.js +155 -0
  1043. package/dist/server/services/schema-builder/index.js.map +1 -0
  1044. package/dist/server/services/schema-builder/index.mjs +149 -0
  1045. package/dist/server/services/schema-builder/index.mjs.map +1 -0
  1046. package/dist/server/services/schema-builder/schema-handler.js +256 -0
  1047. package/dist/server/services/schema-builder/schema-handler.js.map +1 -0
  1048. package/dist/server/services/schema-builder/schema-handler.mjs +248 -0
  1049. package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -0
  1050. package/dist/server/services/schema.js +252 -0
  1051. package/dist/server/services/schema.js.map +1 -0
  1052. package/dist/server/services/schema.mjs +248 -0
  1053. package/dist/server/services/schema.mjs.map +1 -0
  1054. package/dist/server/src/bootstrap.d.ts +6 -0
  1055. package/dist/server/src/bootstrap.d.ts.map +1 -0
  1056. package/dist/server/src/config.d.ts +6 -0
  1057. package/dist/server/src/config.d.ts.map +1 -0
  1058. package/dist/server/src/controllers/builder.d.ts +6 -0
  1059. package/dist/server/src/controllers/builder.d.ts.map +1 -0
  1060. package/dist/server/src/controllers/component-categories.d.ts +7 -0
  1061. package/dist/server/src/controllers/component-categories.d.ts.map +1 -0
  1062. package/dist/server/src/controllers/components.d.ts +38 -0
  1063. package/dist/server/src/controllers/components.d.ts.map +1 -0
  1064. package/dist/server/src/controllers/content-types.d.ts +10 -0
  1065. package/dist/server/src/controllers/content-types.d.ts.map +1 -0
  1066. package/dist/server/src/controllers/index.d.ts +30 -0
  1067. package/dist/server/src/controllers/index.d.ts.map +1 -0
  1068. package/dist/server/src/controllers/schema.d.ts +8 -0
  1069. package/dist/server/src/controllers/schema.d.ts.map +1 -0
  1070. package/dist/server/src/controllers/validation/common.d.ts +26 -0
  1071. package/dist/server/src/controllers/validation/common.d.ts.map +1 -0
  1072. package/dist/server/src/controllers/validation/component-category.d.ts +5 -0
  1073. package/dist/server/src/controllers/validation/component-category.d.ts.map +1 -0
  1074. package/dist/server/src/controllers/validation/component.d.ts +25 -0
  1075. package/dist/server/src/controllers/validation/component.d.ts.map +1 -0
  1076. package/dist/server/src/controllers/validation/content-type.d.ts +38 -0
  1077. package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -0
  1078. package/dist/server/src/controllers/validation/data-transform.d.ts +4 -0
  1079. package/dist/server/src/controllers/validation/data-transform.d.ts.map +1 -0
  1080. package/dist/server/src/controllers/validation/model-schema.d.ts +12 -0
  1081. package/dist/server/src/controllers/validation/model-schema.d.ts.map +1 -0
  1082. package/dist/server/src/controllers/validation/relations.d.ts +18 -0
  1083. package/dist/server/src/controllers/validation/relations.d.ts.map +1 -0
  1084. package/dist/server/src/controllers/validation/schema.d.ts +109632 -0
  1085. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
  1086. package/dist/server/src/controllers/validation/types.d.ts +9 -0
  1087. package/dist/server/src/controllers/validation/types.d.ts.map +1 -0
  1088. package/dist/server/src/index.d.ts +89 -0
  1089. package/dist/server/src/index.d.ts.map +1 -0
  1090. package/dist/server/src/middlewares/index.d.ts +3 -0
  1091. package/dist/server/src/middlewares/index.d.ts.map +1 -0
  1092. package/dist/server/src/middlewares/is-development-mode.d.ts +9 -0
  1093. package/dist/server/src/middlewares/is-development-mode.d.ts.map +1 -0
  1094. package/dist/server/src/register.d.ts +6 -0
  1095. package/dist/server/src/register.d.ts.map +1 -0
  1096. package/dist/server/src/routes/admin.d.ts +32 -0
  1097. package/dist/server/src/routes/admin.d.ts.map +1 -0
  1098. package/dist/server/src/routes/content-api.d.ts +7 -0
  1099. package/dist/server/src/routes/content-api.d.ts.map +1 -0
  1100. package/dist/server/src/routes/index.d.ts +38 -0
  1101. package/dist/server/src/routes/index.d.ts.map +1 -0
  1102. package/dist/server/src/services/api-handler.d.ts +15 -0
  1103. package/dist/server/src/services/api-handler.d.ts.map +1 -0
  1104. package/dist/server/src/services/builder.d.ts +16 -0
  1105. package/dist/server/src/services/builder.d.ts.map +1 -0
  1106. package/dist/server/src/services/component-categories.d.ts +13 -0
  1107. package/dist/server/src/services/component-categories.d.ts.map +1 -0
  1108. package/dist/server/src/services/components.d.ts +31 -0
  1109. package/dist/server/src/services/components.d.ts.map +1 -0
  1110. package/dist/server/src/services/constants.d.ts +18 -0
  1111. package/dist/server/src/services/constants.d.ts.map +1 -0
  1112. package/dist/server/src/services/content-types.d.ts +60 -0
  1113. package/dist/server/src/services/content-types.d.ts.map +1 -0
  1114. package/dist/server/src/services/index.d.ts +16 -0
  1115. package/dist/server/src/services/index.d.ts.map +1 -0
  1116. package/dist/server/src/services/schema-builder/component-builder.d.ts +40 -0
  1117. package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -0
  1118. package/dist/server/src/services/schema-builder/content-type-builder.d.ts +43 -0
  1119. package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -0
  1120. package/dist/server/src/services/schema-builder/index.d.ts +85 -0
  1121. package/dist/server/src/services/schema-builder/index.d.ts.map +1 -0
  1122. package/dist/server/src/services/schema-builder/schema-handler.d.ts +37 -0
  1123. package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -0
  1124. package/dist/server/src/services/schema-builder/types.d.ts +24 -0
  1125. package/dist/server/src/services/schema-builder/types.d.ts.map +1 -0
  1126. package/dist/server/src/services/schema.d.ts +4064 -0
  1127. package/dist/server/src/services/schema.d.ts.map +1 -0
  1128. package/dist/server/src/utils/attributes.d.ts +672 -0
  1129. package/dist/server/src/utils/attributes.d.ts.map +1 -0
  1130. package/dist/server/src/utils/helpers.d.ts +3 -0
  1131. package/dist/server/src/utils/helpers.d.ts.map +1 -0
  1132. package/dist/server/src/utils/index.d.ts +17 -0
  1133. package/dist/server/src/utils/index.d.ts.map +1 -0
  1134. package/dist/server/src/utils/typeguards.d.ts +3 -0
  1135. package/dist/server/src/utils/typeguards.d.ts.map +1 -0
  1136. package/dist/server/utils/attributes.js +96 -0
  1137. package/dist/server/utils/attributes.js.map +1 -0
  1138. package/dist/server/utils/attributes.mjs +86 -0
  1139. package/dist/server/utils/attributes.mjs.map +1 -0
  1140. package/dist/server/utils/index.js +8 -0
  1141. package/dist/server/utils/index.js.map +1 -0
  1142. package/dist/server/utils/index.mjs +6 -0
  1143. package/dist/server/utils/index.mjs.map +1 -0
  1144. package/dist/server/utils/typeguards.js +8 -0
  1145. package/dist/server/utils/typeguards.js.map +1 -0
  1146. package/dist/server/utils/typeguards.mjs +6 -0
  1147. package/dist/server/utils/typeguards.mjs.map +1 -0
  1148. package/package.json +101 -0
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var utils = require('@strapi/utils');
5
+ var constants = require('../../services/constants.js');
6
+ var common = require('./common.js');
7
+ var modelSchema = require('./model-schema.js');
8
+ var dataTransform = require('./data-transform.js');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var ___default = /*#__PURE__*/_interopDefault(_);
13
+
14
+ const VALID_RELATIONS = [
15
+ 'oneToOne',
16
+ 'oneToMany'
17
+ ];
18
+ const VALID_TYPES = [
19
+ ...constants.DEFAULT_TYPES,
20
+ 'component',
21
+ 'customField'
22
+ ];
23
+ const componentSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS, {
24
+ modelType: constants.modelTypes.COMPONENT
25
+ }).shape({
26
+ displayName: utils.yup.string().min(1).required('displayName.required'),
27
+ icon: utils.yup.string().nullable().test(common.isValidIcon),
28
+ category: utils.yup.string().nullable().test(common.isValidCategoryName).required('category.required')
29
+ }).required().noUnknown();
30
+ const nestedComponentSchema = utils.yup.array().of(componentSchema.shape({
31
+ uid: utils.yup.string(),
32
+ tmpUID: utils.yup.string()
33
+ }).test({
34
+ name: 'mustHaveUIDOrTmpUID',
35
+ message: 'Component must have a uid or a tmpUID',
36
+ test (attr) {
37
+ if (___default.default.has(attr, 'uid') && ___default.default.has(attr, 'tmpUID')) return false;
38
+ if (!___default.default.has(attr, 'uid') && !___default.default.has(attr, 'tmpUID')) return false;
39
+ return true;
40
+ }
41
+ }).required().noUnknown());
42
+ const componentInputSchema = utils.yup.object({
43
+ component: componentSchema,
44
+ components: nestedComponentSchema
45
+ }).noUnknown();
46
+ const validateComponentInput = utils.validateYupSchema(componentInputSchema);
47
+ const updateComponentInputSchema = utils.yup.object({
48
+ component: componentSchema,
49
+ components: nestedComponentSchema
50
+ }).noUnknown();
51
+ const validateUpdateComponentInput = (data)=>{
52
+ if (___default.default.has(data, 'component') && data.component) {
53
+ dataTransform.removeEmptyDefaults(data.component);
54
+ }
55
+ if (___default.default.has(data, 'components') && Array.isArray(data.components)) {
56
+ data.components.forEach((data)=>{
57
+ if (___default.default.has(data, 'uid')) {
58
+ dataTransform.removeEmptyDefaults(data);
59
+ }
60
+ });
61
+ }
62
+ return utils.validateYupSchema(updateComponentInputSchema)(data);
63
+ };
64
+
65
+ exports.VALID_RELATIONS = VALID_RELATIONS;
66
+ exports.VALID_TYPES = VALID_TYPES;
67
+ exports.componentInputSchema = componentInputSchema;
68
+ exports.componentSchema = componentSchema;
69
+ exports.nestedComponentSchema = nestedComponentSchema;
70
+ exports.validateComponentInput = validateComponentInput;
71
+ exports.validateUpdateComponentInput = validateUpdateComponentInput;
72
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\r\nimport { yup, validateYupSchema } from '@strapi/utils';\r\n\r\nimport type { Struct } from '@strapi/types';\r\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\r\nimport { isValidCategoryName, isValidIcon } from './common';\r\nimport { createSchema } from './model-schema';\r\nimport { removeEmptyDefaults } from './data-transform';\r\n\r\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\r\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\r\n\r\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\r\n modelType: modelTypes.COMPONENT,\r\n})\r\n .shape({\r\n displayName: yup.string().min(1).required('displayName.required'),\r\n icon: yup.string().nullable().test(isValidIcon),\r\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\r\n })\r\n .required()\r\n .noUnknown();\r\n\r\nexport const nestedComponentSchema = yup.array().of(\r\n componentSchema\r\n .shape({\r\n uid: yup.string(),\r\n tmpUID: yup.string(),\r\n })\r\n .test({\r\n name: 'mustHaveUIDOrTmpUID',\r\n message: 'Component must have a uid or a tmpUID',\r\n test(attr: unknown) {\r\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\r\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\r\n return true;\r\n },\r\n })\r\n .required()\r\n .noUnknown()\r\n);\r\n\r\nexport const componentInputSchema = yup\r\n .object({\r\n component: componentSchema,\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n\r\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\r\n\r\nconst updateComponentInputSchema = yup\r\n .object({\r\n component: componentSchema,\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n\r\nexport const validateUpdateComponentInput = (data: {\r\n component?: Struct.ComponentSchema;\r\n components?: Struct.ComponentSchema[];\r\n}) => {\r\n if (_.has(data, 'component') && data.component) {\r\n removeEmptyDefaults(data.component);\r\n }\r\n\r\n if (_.has(data, 'components') && Array.isArray(data.components)) {\r\n data.components.forEach((data) => {\r\n if (_.has(data, 'uid')) {\r\n removeEmptyDefaults(data);\r\n }\r\n });\r\n }\r\n\r\n return validateYupSchema(updateComponentInputSchema)(data);\r\n};\r\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import _ from 'lodash';
2
+ import { yup, validateYupSchema } from '@strapi/utils';
3
+ import { modelTypes, DEFAULT_TYPES } from '../../services/constants.mjs';
4
+ import { isValidCategoryName, isValidIcon } from './common.mjs';
5
+ import { createSchema } from './model-schema.mjs';
6
+ import { removeEmptyDefaults } from './data-transform.mjs';
7
+
8
+ const VALID_RELATIONS = [
9
+ 'oneToOne',
10
+ 'oneToMany'
11
+ ];
12
+ const VALID_TYPES = [
13
+ ...DEFAULT_TYPES,
14
+ 'component',
15
+ 'customField'
16
+ ];
17
+ const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {
18
+ modelType: modelTypes.COMPONENT
19
+ }).shape({
20
+ displayName: yup.string().min(1).required('displayName.required'),
21
+ icon: yup.string().nullable().test(isValidIcon),
22
+ category: yup.string().nullable().test(isValidCategoryName).required('category.required')
23
+ }).required().noUnknown();
24
+ const nestedComponentSchema = yup.array().of(componentSchema.shape({
25
+ uid: yup.string(),
26
+ tmpUID: yup.string()
27
+ }).test({
28
+ name: 'mustHaveUIDOrTmpUID',
29
+ message: 'Component must have a uid or a tmpUID',
30
+ test (attr) {
31
+ if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;
32
+ if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;
33
+ return true;
34
+ }
35
+ }).required().noUnknown());
36
+ const componentInputSchema = yup.object({
37
+ component: componentSchema,
38
+ components: nestedComponentSchema
39
+ }).noUnknown();
40
+ const validateComponentInput = validateYupSchema(componentInputSchema);
41
+ const updateComponentInputSchema = yup.object({
42
+ component: componentSchema,
43
+ components: nestedComponentSchema
44
+ }).noUnknown();
45
+ const validateUpdateComponentInput = (data)=>{
46
+ if (_.has(data, 'component') && data.component) {
47
+ removeEmptyDefaults(data.component);
48
+ }
49
+ if (_.has(data, 'components') && Array.isArray(data.components)) {
50
+ data.components.forEach((data)=>{
51
+ if (_.has(data, 'uid')) {
52
+ removeEmptyDefaults(data);
53
+ }
54
+ });
55
+ }
56
+ return validateYupSchema(updateComponentInputSchema)(data);
57
+ };
58
+
59
+ export { VALID_RELATIONS, VALID_TYPES, componentInputSchema, componentSchema, nestedComponentSchema, validateComponentInput, validateUpdateComponentInput };
60
+ //# sourceMappingURL=component.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.mjs","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\r\nimport { yup, validateYupSchema } from '@strapi/utils';\r\n\r\nimport type { Struct } from '@strapi/types';\r\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\r\nimport { isValidCategoryName, isValidIcon } from './common';\r\nimport { createSchema } from './model-schema';\r\nimport { removeEmptyDefaults } from './data-transform';\r\n\r\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\r\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\r\n\r\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\r\n modelType: modelTypes.COMPONENT,\r\n})\r\n .shape({\r\n displayName: yup.string().min(1).required('displayName.required'),\r\n icon: yup.string().nullable().test(isValidIcon),\r\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\r\n })\r\n .required()\r\n .noUnknown();\r\n\r\nexport const nestedComponentSchema = yup.array().of(\r\n componentSchema\r\n .shape({\r\n uid: yup.string(),\r\n tmpUID: yup.string(),\r\n })\r\n .test({\r\n name: 'mustHaveUIDOrTmpUID',\r\n message: 'Component must have a uid or a tmpUID',\r\n test(attr: unknown) {\r\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\r\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\r\n return true;\r\n },\r\n })\r\n .required()\r\n .noUnknown()\r\n);\r\n\r\nexport const componentInputSchema = yup\r\n .object({\r\n component: componentSchema,\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n\r\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\r\n\r\nconst updateComponentInputSchema = yup\r\n .object({\r\n component: componentSchema,\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n\r\nexport const validateUpdateComponentInput = (data: {\r\n component?: Struct.ComponentSchema;\r\n components?: Struct.ComponentSchema[];\r\n}) => {\r\n if (_.has(data, 'component') && data.component) {\r\n removeEmptyDefaults(data.component);\r\n }\r\n\r\n if (_.has(data, 'components') && Array.isArray(data.components)) {\r\n data.components.forEach((data) => {\r\n if (_.has(data, 'uid')) {\r\n removeEmptyDefaults(data);\r\n }\r\n });\r\n }\r\n\r\n return validateYupSchema(updateComponentInputSchema)(data);\r\n};\r\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":";;;;;;;MASaA,eAAAA,GAAkB;AAAC,IAAA,UAAA;AAAY,IAAA;;MAC/BC,WAAAA,GAAc;AAAIC,IAAAA,GAAAA,aAAAA;AAAe,IAAA,WAAA;AAAa,IAAA;;AAEpD,MAAMC,eAAAA,GAAkBC,YAAAA,CAAaH,WAAAA,EAAaD,eAAAA,EAAiB;AACxEK,IAAAA,SAAAA,EAAWC,WAAWC;AACxB,CAAA,CAAA,CACGC,KAAK,CAAC;AACLC,IAAAA,WAAAA,EAAaC,IAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,QAAQ,CAAC,sBAAA,CAAA;AAC1CC,IAAAA,IAAAA,EAAMJ,IAAIC,MAAM,EAAA,CAAGI,QAAQ,EAAA,CAAGC,IAAI,CAACC,WAAAA,CAAAA;IACnCC,QAAAA,EAAUR,GAAAA,CAAIC,MAAM,EAAA,CAAGI,QAAQ,GAAGC,IAAI,CAACG,mBAAAA,CAAAA,CAAqBN,QAAQ,CAAC,mBAAA;AACvE,CAAA,CAAA,CACCA,QAAQ,EAAA,CACRO,SAAS;AAEL,MAAMC,wBAAwBX,GAAAA,CAAIY,KAAK,GAAGC,EAAE,CACjDpB,eAAAA,CACGK,KAAK,CAAC;AACLgB,IAAAA,GAAAA,EAAKd,IAAIC,MAAM,EAAA;AACfc,IAAAA,MAAAA,EAAQf,IAAIC,MAAM;AACpB,CAAA,CAAA,CACCK,IAAI,CAAC;IACJU,IAAAA,EAAM,qBAAA;IACNC,OAAAA,EAAS,uCAAA;AACTX,IAAAA,IAAAA,CAAAA,CAAKY,IAAa,EAAA;QAChB,IAAIC,CAAAA,CAAEC,GAAG,CAACF,IAAAA,EAAM,KAAA,CAAA,IAAUC,EAAEC,GAAG,CAACF,IAAAA,EAAM,QAAA,CAAA,EAAW,OAAO,KAAA;AACxD,QAAA,IAAI,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAAA,EAAM,KAAA,CAAA,IAAU,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAAA,EAAM,QAAA,CAAA,EAAW,OAAO,KAAA;QAC1D,OAAO,IAAA;AACT,IAAA;AACF,CAAA,CAAA,CACCf,QAAQ,EAAA,CACRO,SAAS,EAAA;AAGP,MAAMW,oBAAAA,GAAuBrB,GAAAA,CACjCsB,MAAM,CAAC;IACNC,SAAAA,EAAW9B,eAAAA;IACX+B,UAAAA,EAAYb;AACd,CAAA,CAAA,CACCD,SAAS;AAEL,MAAMe,sBAAAA,GAAyBC,iBAAAA,CAAkBL,oBAAAA;AAExD,MAAMM,0BAAAA,GAA6B3B,GAAAA,CAChCsB,MAAM,CAAC;IACNC,SAAAA,EAAW9B,eAAAA;IACX+B,UAAAA,EAAYb;AACd,CAAA,CAAA,CACCD,SAAS,EAAA;AAEL,MAAMkB,+BAA+B,CAACC,IAAAA,GAAAA;AAI3C,IAAA,IAAIV,EAAEC,GAAG,CAACS,MAAM,WAAA,CAAA,IAAgBA,IAAAA,CAAKN,SAAS,EAAE;AAC9CO,QAAAA,mBAAAA,CAAoBD,KAAKN,SAAS,CAAA;AACpC,IAAA;IAEA,IAAIJ,CAAAA,CAAEC,GAAG,CAACS,IAAAA,EAAM,YAAA,CAAA,IAAiBE,MAAMC,OAAO,CAACH,IAAAA,CAAKL,UAAU,CAAA,EAAG;AAC/DK,QAAAA,IAAAA,CAAKL,UAAU,CAACS,OAAO,CAAC,CAACJ,IAAAA,GAAAA;AACvB,YAAA,IAAIV,CAAAA,CAAEC,GAAG,CAACS,IAAAA,EAAM,KAAA,CAAA,EAAQ;gBACtBC,mBAAAA,CAAoBD,IAAAA,CAAAA;AACtB,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;AAEA,IAAA,OAAOH,kBAAkBC,0BAAAA,CAAAA,CAA4BE,IAAAA,CAAAA;AACvD;;;;"}
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+ var index = require('../../utils/index.js');
6
+ var constants = require('../../services/constants.js');
7
+ var modelSchema = require('./model-schema.js');
8
+ var dataTransform = require('./data-transform.js');
9
+ var component = require('./component.js');
10
+
11
+ /* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format
12
+ /**
13
+ * Allowed relation per type kind
14
+ */ const VALID_RELATIONS = {
15
+ [constants.typeKinds.SINGLE_TYPE]: [
16
+ 'oneToOne',
17
+ 'oneToMany',
18
+ 'morphOne',
19
+ 'morphMany',
20
+ 'morphToOne',
21
+ 'morphToMany'
22
+ ],
23
+ [constants.typeKinds.COLLECTION_TYPE]: [
24
+ 'oneToOne',
25
+ 'oneToMany',
26
+ 'manyToOne',
27
+ 'manyToMany',
28
+ 'morphOne',
29
+ 'morphMany',
30
+ 'morphToOne',
31
+ 'morphToMany'
32
+ ]
33
+ };
34
+ /**
35
+ * Allowed types
36
+ */ const VALID_TYPES = [
37
+ ...constants.DEFAULT_TYPES,
38
+ 'uid',
39
+ 'component',
40
+ 'dynamiczone',
41
+ 'customField'
42
+ ];
43
+ /**
44
+ * Returns a yup schema to validate a content type payload
45
+ */ const createContentTypeSchema = (data, { isEdition = false } = {})=>{
46
+ const kind = fp.getOr(constants.typeKinds.COLLECTION_TYPE, 'contentType.kind', data);
47
+ const contentTypeSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {
48
+ modelType: constants.modelTypes.CONTENT_TYPE
49
+ }).shape({
50
+ displayName: utils.yup.string().min(1).required(),
51
+ singularName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(forbiddenContentTypeNameValidator()).isKebabCase().required(),
52
+ pluralName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name
53
+ .test(forbiddenContentTypeNameValidator()).isKebabCase().required()
54
+ }).test('singularName-not-equal-pluralName', '${path}: singularName and pluralName should be different', (value)=>value.singularName !== value.pluralName);
55
+ return utils.yup.object({
56
+ // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error
57
+ // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features
58
+ // without having any reference to them in CE.
59
+ // Why not handle an "options" object in the content-type ? The admin panel needs lots of rework
60
+ // to be able to send this options object instead of top-level attributes.
61
+ // @nathan-pichon 20/02/2023
62
+ contentType: contentTypeSchema.required().noUnknown(false),
63
+ components: component.nestedComponentSchema
64
+ }).noUnknown();
65
+ };
66
+ /**
67
+ * Validator for content type creation
68
+ */ const validateContentTypeInput = (data)=>{
69
+ return utils.validateYupSchema(createContentTypeSchema(data))(data);
70
+ };
71
+ /**
72
+ * Validator for content type edition
73
+ */ const validateUpdateContentTypeInput = (data)=>{
74
+ if (fp.has('contentType', data)) {
75
+ dataTransform.removeEmptyDefaults(data.contentType);
76
+ dataTransform.removeDeletedUIDTargetFields(data.contentType);
77
+ }
78
+ if (fp.has('components', data) && Array.isArray(data.components)) {
79
+ data.components.forEach((comp)=>{
80
+ if (fp.has('uid', comp)) {
81
+ dataTransform.removeEmptyDefaults(comp);
82
+ }
83
+ });
84
+ }
85
+ return utils.validateYupSchema(createContentTypeSchema(data, {
86
+ isEdition: true
87
+ }))(data);
88
+ };
89
+ const forbiddenContentTypeNameValidator = ()=>{
90
+ const reservedNames = index.getService('builder').getReservedNames().models;
91
+ return {
92
+ name: 'forbiddenContentTypeName',
93
+ message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,
94
+ test (value) {
95
+ if (typeof value !== 'string') {
96
+ return true;
97
+ }
98
+ return !index.getService('builder').isReservedModelName(value);
99
+ }
100
+ };
101
+ };
102
+ const nameIsAvailable = (isEdition)=>{
103
+ // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as
104
+ const usedNames = fp.flatMap((ct)=>{
105
+ return [
106
+ ct.info?.singularName,
107
+ ct.info?.pluralName
108
+ ];
109
+ })(strapi.contentTypes);
110
+ return {
111
+ name: 'nameAlreadyUsed',
112
+ message: 'contentType: name `${value}` is already being used by another content type.',
113
+ test (value) {
114
+ // don't check on edition
115
+ if (isEdition) return true;
116
+ // ignore if not a string (will be caught in another validator)
117
+ if (typeof value !== 'string') {
118
+ return true;
119
+ }
120
+ // compare snake case to check the actual column names that will be used in the database
121
+ return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
122
+ }
123
+ };
124
+ };
125
+ const nameIsNotExistingCollectionName = (isEdition)=>{
126
+ const usedNames = Object.keys(strapi.contentTypes).map((key)=>strapi.contentTypes[key].collectionName);
127
+ return {
128
+ name: 'nameAlreadyUsed',
129
+ message: 'contentType: name `${value}` is already being used by another content type.',
130
+ test (value) {
131
+ // don't check on edition
132
+ if (isEdition) return true;
133
+ // ignore if not a string (will be caught in another validator)
134
+ if (typeof value !== 'string') {
135
+ return true;
136
+ }
137
+ // compare snake case to check the actual column names that will be used in the database
138
+ return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
139
+ }
140
+ };
141
+ };
142
+ /**
143
+ * Validates type kind
144
+ */ const kindSchema = utils.yup.string().oneOf([
145
+ constants.typeKinds.SINGLE_TYPE,
146
+ constants.typeKinds.COLLECTION_TYPE
147
+ ]);
148
+ const validateKind = utils.validateYupSchema(kindSchema);
149
+
150
+ exports.validateContentTypeInput = validateContentTypeInput;
151
+ exports.validateKind = validateKind;
152
+ exports.validateUpdateContentTypeInput = validateUpdateContentTypeInput;
153
+ //# sourceMappingURL=content-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type.js","sources":["../../../../server/src/controllers/validation/content-type.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format\r\n\r\nimport { flatMap, getOr, has, snakeCase } from 'lodash/fp';\r\nimport { yup, validateYupSchema } from '@strapi/utils';\r\n\r\nimport type { Struct, Internal, UID } from '@strapi/types';\r\n\r\nimport { getService } from '../../utils';\r\nimport { modelTypes, DEFAULT_TYPES, typeKinds } from '../../services/constants';\r\nimport { createSchema } from './model-schema';\r\nimport { removeEmptyDefaults, removeDeletedUIDTargetFields } from './data-transform';\r\nimport { nestedComponentSchema } from './component';\r\n\r\n// Input flattens some fields of the \"info\" into the root type\r\nexport type CreateContentTypeInput = {\r\n uid?: UID.ContentType;\r\n contentType?: Partial<Struct.ContentTypeSchema> & Partial<Struct.ContentTypeSchemaInfo>;\r\n components?: Array<\r\n Partial<Struct.ComponentSchema> &\r\n Partial<Struct.SchemaInfo> & { tmpUID?: Internal.UID.Component }\r\n >;\r\n singularName: Struct.ContentTypeSchemaInfo['singularName'];\r\n attributes: Struct.SchemaAttributes & Record<string, any>;\r\n kind: Struct.ContentTypeKind;\r\n collectionName?: Struct.CollectionTypeSchema['collectionName'];\r\n pluralName: Struct.ContentTypeSchemaInfo['pluralName'];\r\n displayName: Struct.ContentTypeSchemaInfo['displayName'];\r\n description?: Struct.ContentTypeSchemaInfo['description'];\r\n options?: Struct.SchemaOptions;\r\n draftAndPublish?: Struct.SchemaOptions['draftAndPublish'];\r\n pluginOptions?: Struct.ContentTypeSchema['pluginOptions'];\r\n config?: object;\r\n plugin?: string;\r\n};\r\n\r\n/**\r\n * Allowed relation per type kind\r\n */\r\nconst VALID_RELATIONS = {\r\n [typeKinds.SINGLE_TYPE]: [\r\n 'oneToOne',\r\n 'oneToMany',\r\n 'morphOne',\r\n 'morphMany',\r\n 'morphToOne',\r\n 'morphToMany',\r\n ],\r\n [typeKinds.COLLECTION_TYPE]: [\r\n 'oneToOne',\r\n 'oneToMany',\r\n 'manyToOne',\r\n 'manyToMany',\r\n 'morphOne',\r\n 'morphMany',\r\n 'morphToOne',\r\n 'morphToMany',\r\n ],\r\n} as const;\r\n\r\n/**\r\n * Allowed types\r\n */\r\nconst VALID_TYPES = [...DEFAULT_TYPES, 'uid', 'component', 'dynamiczone', 'customField'];\r\n\r\n/**\r\n * Returns a yup schema to validate a content type payload\r\n */\r\nconst createContentTypeSchema = (data: CreateContentTypeInput, { isEdition = false } = {}) => {\r\n const kind: keyof typeof VALID_RELATIONS = getOr(\r\n typeKinds.COLLECTION_TYPE,\r\n 'contentType.kind',\r\n data\r\n );\r\n\r\n const contentTypeSchema = createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {\r\n modelType: modelTypes.CONTENT_TYPE,\r\n })\r\n .shape({\r\n displayName: yup.string().min(1).required(),\r\n singularName: yup\r\n .string()\r\n .min(1)\r\n .test(nameIsAvailable(isEdition))\r\n .test(forbiddenContentTypeNameValidator())\r\n .isKebabCase()\r\n .required(),\r\n pluralName: yup\r\n .string()\r\n .min(1)\r\n .test(nameIsAvailable(isEdition))\r\n .test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name\r\n .test(forbiddenContentTypeNameValidator())\r\n .isKebabCase()\r\n .required(),\r\n })\r\n .test(\r\n 'singularName-not-equal-pluralName',\r\n '${path}: singularName and pluralName should be different',\r\n (value) => value.singularName !== value.pluralName\r\n );\r\n\r\n return yup\r\n .object({\r\n // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error\r\n // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features\r\n // without having any reference to them in CE.\r\n // Why not handle an \"options\" object in the content-type ? The admin panel needs lots of rework\r\n // to be able to send this options object instead of top-level attributes.\r\n // @nathan-pichon 20/02/2023\r\n contentType: contentTypeSchema.required().noUnknown(false),\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n};\r\n\r\n/**\r\n * Validator for content type creation\r\n */\r\nexport const validateContentTypeInput = (data: CreateContentTypeInput) => {\r\n return validateYupSchema(createContentTypeSchema(data))(data);\r\n};\r\n\r\n/**\r\n * Validator for content type edition\r\n */\r\nexport const validateUpdateContentTypeInput = (data: CreateContentTypeInput) => {\r\n if (has('contentType', data)) {\r\n removeEmptyDefaults(data.contentType);\r\n removeDeletedUIDTargetFields(data.contentType as Struct.ContentTypeSchema);\r\n }\r\n\r\n if (has('components', data) && Array.isArray(data.components)) {\r\n data.components.forEach((comp) => {\r\n if (has('uid', comp)) {\r\n removeEmptyDefaults(comp as Struct.ComponentSchema);\r\n }\r\n });\r\n }\r\n\r\n return validateYupSchema(createContentTypeSchema(data, { isEdition: true }))(data);\r\n};\r\n\r\nconst forbiddenContentTypeNameValidator = () => {\r\n const reservedNames = getService('builder').getReservedNames().models;\r\n\r\n return {\r\n name: 'forbiddenContentTypeName',\r\n message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,\r\n test(value: unknown) {\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n return !getService('builder').isReservedModelName(value);\r\n },\r\n };\r\n};\r\n\r\nconst nameIsAvailable = (isEdition: boolean) => {\r\n // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as\r\n const usedNames = flatMap((ct: Struct.ContentTypeSchema) => {\r\n return [ct.info?.singularName, ct.info?.pluralName];\r\n })(strapi.contentTypes as any);\r\n\r\n return {\r\n name: 'nameAlreadyUsed',\r\n message: 'contentType: name `${value}` is already being used by another content type.',\r\n test(value: unknown) {\r\n // don't check on edition\r\n if (isEdition) return true;\r\n\r\n // ignore if not a string (will be caught in another validator)\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n // compare snake case to check the actual column names that will be used in the database\r\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\r\n },\r\n };\r\n};\r\n\r\nconst nameIsNotExistingCollectionName = (isEdition: boolean) => {\r\n const usedNames = Object.keys(strapi.contentTypes).map(\r\n (key) => strapi.contentTypes[key as Internal.UID.ContentType].collectionName\r\n ) as string[];\r\n\r\n return {\r\n name: 'nameAlreadyUsed',\r\n message: 'contentType: name `${value}` is already being used by another content type.',\r\n test(value: unknown) {\r\n // don't check on edition\r\n if (isEdition) return true;\r\n\r\n // ignore if not a string (will be caught in another validator)\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n // compare snake case to check the actual column names that will be used in the database\r\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * Validates type kind\r\n */\r\nconst kindSchema = yup.string().oneOf([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]);\r\n\r\nexport const validateKind = validateYupSchema(kindSchema);\r\n"],"names":["VALID_RELATIONS","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","VALID_TYPES","DEFAULT_TYPES","createContentTypeSchema","data","isEdition","kind","getOr","contentTypeSchema","createSchema","modelType","modelTypes","CONTENT_TYPE","shape","displayName","yup","string","min","required","singularName","test","nameIsAvailable","forbiddenContentTypeNameValidator","isKebabCase","pluralName","nameIsNotExistingCollectionName","value","object","contentType","noUnknown","components","nestedComponentSchema","validateContentTypeInput","validateYupSchema","validateUpdateContentTypeInput","has","removeEmptyDefaults","removeDeletedUIDTargetFields","Array","isArray","forEach","comp","reservedNames","getService","getReservedNames","models","name","message","join","isReservedModelName","usedNames","flatMap","ct","info","strapi","contentTypes","every","usedName","snakeCase","Object","keys","map","key","collectionName","kindSchema","oneOf","validateKind"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { has, getOr, flatMap, snakeCase } from 'lodash/fp';
2
+ import { yup, validateYupSchema } from '@strapi/utils';
3
+ import { getService } from '../../utils/index.mjs';
4
+ import { typeKinds, modelTypes, DEFAULT_TYPES } from '../../services/constants.mjs';
5
+ import { createSchema } from './model-schema.mjs';
6
+ import { removeEmptyDefaults, removeDeletedUIDTargetFields } from './data-transform.mjs';
7
+ import { nestedComponentSchema } from './component.mjs';
8
+
9
+ /* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format
10
+ /**
11
+ * Allowed relation per type kind
12
+ */ const VALID_RELATIONS = {
13
+ [typeKinds.SINGLE_TYPE]: [
14
+ 'oneToOne',
15
+ 'oneToMany',
16
+ 'morphOne',
17
+ 'morphMany',
18
+ 'morphToOne',
19
+ 'morphToMany'
20
+ ],
21
+ [typeKinds.COLLECTION_TYPE]: [
22
+ 'oneToOne',
23
+ 'oneToMany',
24
+ 'manyToOne',
25
+ 'manyToMany',
26
+ 'morphOne',
27
+ 'morphMany',
28
+ 'morphToOne',
29
+ 'morphToMany'
30
+ ]
31
+ };
32
+ /**
33
+ * Allowed types
34
+ */ const VALID_TYPES = [
35
+ ...DEFAULT_TYPES,
36
+ 'uid',
37
+ 'component',
38
+ 'dynamiczone',
39
+ 'customField'
40
+ ];
41
+ /**
42
+ * Returns a yup schema to validate a content type payload
43
+ */ const createContentTypeSchema = (data, { isEdition = false } = {})=>{
44
+ const kind = getOr(typeKinds.COLLECTION_TYPE, 'contentType.kind', data);
45
+ const contentTypeSchema = createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {
46
+ modelType: modelTypes.CONTENT_TYPE
47
+ }).shape({
48
+ displayName: yup.string().min(1).required(),
49
+ singularName: yup.string().min(1).test(nameIsAvailable(isEdition)).test(forbiddenContentTypeNameValidator()).isKebabCase().required(),
50
+ pluralName: yup.string().min(1).test(nameIsAvailable(isEdition)).test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name
51
+ .test(forbiddenContentTypeNameValidator()).isKebabCase().required()
52
+ }).test('singularName-not-equal-pluralName', '${path}: singularName and pluralName should be different', (value)=>value.singularName !== value.pluralName);
53
+ return yup.object({
54
+ // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error
55
+ // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features
56
+ // without having any reference to them in CE.
57
+ // Why not handle an "options" object in the content-type ? The admin panel needs lots of rework
58
+ // to be able to send this options object instead of top-level attributes.
59
+ // @nathan-pichon 20/02/2023
60
+ contentType: contentTypeSchema.required().noUnknown(false),
61
+ components: nestedComponentSchema
62
+ }).noUnknown();
63
+ };
64
+ /**
65
+ * Validator for content type creation
66
+ */ const validateContentTypeInput = (data)=>{
67
+ return validateYupSchema(createContentTypeSchema(data))(data);
68
+ };
69
+ /**
70
+ * Validator for content type edition
71
+ */ const validateUpdateContentTypeInput = (data)=>{
72
+ if (has('contentType', data)) {
73
+ removeEmptyDefaults(data.contentType);
74
+ removeDeletedUIDTargetFields(data.contentType);
75
+ }
76
+ if (has('components', data) && Array.isArray(data.components)) {
77
+ data.components.forEach((comp)=>{
78
+ if (has('uid', comp)) {
79
+ removeEmptyDefaults(comp);
80
+ }
81
+ });
82
+ }
83
+ return validateYupSchema(createContentTypeSchema(data, {
84
+ isEdition: true
85
+ }))(data);
86
+ };
87
+ const forbiddenContentTypeNameValidator = ()=>{
88
+ const reservedNames = getService('builder').getReservedNames().models;
89
+ return {
90
+ name: 'forbiddenContentTypeName',
91
+ message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,
92
+ test (value) {
93
+ if (typeof value !== 'string') {
94
+ return true;
95
+ }
96
+ return !getService('builder').isReservedModelName(value);
97
+ }
98
+ };
99
+ };
100
+ const nameIsAvailable = (isEdition)=>{
101
+ // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as
102
+ const usedNames = flatMap((ct)=>{
103
+ return [
104
+ ct.info?.singularName,
105
+ ct.info?.pluralName
106
+ ];
107
+ })(strapi.contentTypes);
108
+ return {
109
+ name: 'nameAlreadyUsed',
110
+ message: 'contentType: name `${value}` is already being used by another content type.',
111
+ test (value) {
112
+ // don't check on edition
113
+ if (isEdition) return true;
114
+ // ignore if not a string (will be caught in another validator)
115
+ if (typeof value !== 'string') {
116
+ return true;
117
+ }
118
+ // compare snake case to check the actual column names that will be used in the database
119
+ return usedNames.every((usedName)=>snakeCase(usedName) !== snakeCase(value));
120
+ }
121
+ };
122
+ };
123
+ const nameIsNotExistingCollectionName = (isEdition)=>{
124
+ const usedNames = Object.keys(strapi.contentTypes).map((key)=>strapi.contentTypes[key].collectionName);
125
+ return {
126
+ name: 'nameAlreadyUsed',
127
+ message: 'contentType: name `${value}` is already being used by another content type.',
128
+ test (value) {
129
+ // don't check on edition
130
+ if (isEdition) return true;
131
+ // ignore if not a string (will be caught in another validator)
132
+ if (typeof value !== 'string') {
133
+ return true;
134
+ }
135
+ // compare snake case to check the actual column names that will be used in the database
136
+ return usedNames.every((usedName)=>snakeCase(usedName) !== snakeCase(value));
137
+ }
138
+ };
139
+ };
140
+ /**
141
+ * Validates type kind
142
+ */ const kindSchema = yup.string().oneOf([
143
+ typeKinds.SINGLE_TYPE,
144
+ typeKinds.COLLECTION_TYPE
145
+ ]);
146
+ const validateKind = validateYupSchema(kindSchema);
147
+
148
+ export { validateContentTypeInput, validateKind, validateUpdateContentTypeInput };
149
+ //# sourceMappingURL=content-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type.mjs","sources":["../../../../server/src/controllers/validation/content-type.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format\r\n\r\nimport { flatMap, getOr, has, snakeCase } from 'lodash/fp';\r\nimport { yup, validateYupSchema } from '@strapi/utils';\r\n\r\nimport type { Struct, Internal, UID } from '@strapi/types';\r\n\r\nimport { getService } from '../../utils';\r\nimport { modelTypes, DEFAULT_TYPES, typeKinds } from '../../services/constants';\r\nimport { createSchema } from './model-schema';\r\nimport { removeEmptyDefaults, removeDeletedUIDTargetFields } from './data-transform';\r\nimport { nestedComponentSchema } from './component';\r\n\r\n// Input flattens some fields of the \"info\" into the root type\r\nexport type CreateContentTypeInput = {\r\n uid?: UID.ContentType;\r\n contentType?: Partial<Struct.ContentTypeSchema> & Partial<Struct.ContentTypeSchemaInfo>;\r\n components?: Array<\r\n Partial<Struct.ComponentSchema> &\r\n Partial<Struct.SchemaInfo> & { tmpUID?: Internal.UID.Component }\r\n >;\r\n singularName: Struct.ContentTypeSchemaInfo['singularName'];\r\n attributes: Struct.SchemaAttributes & Record<string, any>;\r\n kind: Struct.ContentTypeKind;\r\n collectionName?: Struct.CollectionTypeSchema['collectionName'];\r\n pluralName: Struct.ContentTypeSchemaInfo['pluralName'];\r\n displayName: Struct.ContentTypeSchemaInfo['displayName'];\r\n description?: Struct.ContentTypeSchemaInfo['description'];\r\n options?: Struct.SchemaOptions;\r\n draftAndPublish?: Struct.SchemaOptions['draftAndPublish'];\r\n pluginOptions?: Struct.ContentTypeSchema['pluginOptions'];\r\n config?: object;\r\n plugin?: string;\r\n};\r\n\r\n/**\r\n * Allowed relation per type kind\r\n */\r\nconst VALID_RELATIONS = {\r\n [typeKinds.SINGLE_TYPE]: [\r\n 'oneToOne',\r\n 'oneToMany',\r\n 'morphOne',\r\n 'morphMany',\r\n 'morphToOne',\r\n 'morphToMany',\r\n ],\r\n [typeKinds.COLLECTION_TYPE]: [\r\n 'oneToOne',\r\n 'oneToMany',\r\n 'manyToOne',\r\n 'manyToMany',\r\n 'morphOne',\r\n 'morphMany',\r\n 'morphToOne',\r\n 'morphToMany',\r\n ],\r\n} as const;\r\n\r\n/**\r\n * Allowed types\r\n */\r\nconst VALID_TYPES = [...DEFAULT_TYPES, 'uid', 'component', 'dynamiczone', 'customField'];\r\n\r\n/**\r\n * Returns a yup schema to validate a content type payload\r\n */\r\nconst createContentTypeSchema = (data: CreateContentTypeInput, { isEdition = false } = {}) => {\r\n const kind: keyof typeof VALID_RELATIONS = getOr(\r\n typeKinds.COLLECTION_TYPE,\r\n 'contentType.kind',\r\n data\r\n );\r\n\r\n const contentTypeSchema = createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {\r\n modelType: modelTypes.CONTENT_TYPE,\r\n })\r\n .shape({\r\n displayName: yup.string().min(1).required(),\r\n singularName: yup\r\n .string()\r\n .min(1)\r\n .test(nameIsAvailable(isEdition))\r\n .test(forbiddenContentTypeNameValidator())\r\n .isKebabCase()\r\n .required(),\r\n pluralName: yup\r\n .string()\r\n .min(1)\r\n .test(nameIsAvailable(isEdition))\r\n .test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name\r\n .test(forbiddenContentTypeNameValidator())\r\n .isKebabCase()\r\n .required(),\r\n })\r\n .test(\r\n 'singularName-not-equal-pluralName',\r\n '${path}: singularName and pluralName should be different',\r\n (value) => value.singularName !== value.pluralName\r\n );\r\n\r\n return yup\r\n .object({\r\n // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error\r\n // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features\r\n // without having any reference to them in CE.\r\n // Why not handle an \"options\" object in the content-type ? The admin panel needs lots of rework\r\n // to be able to send this options object instead of top-level attributes.\r\n // @nathan-pichon 20/02/2023\r\n contentType: contentTypeSchema.required().noUnknown(false),\r\n components: nestedComponentSchema,\r\n })\r\n .noUnknown();\r\n};\r\n\r\n/**\r\n * Validator for content type creation\r\n */\r\nexport const validateContentTypeInput = (data: CreateContentTypeInput) => {\r\n return validateYupSchema(createContentTypeSchema(data))(data);\r\n};\r\n\r\n/**\r\n * Validator for content type edition\r\n */\r\nexport const validateUpdateContentTypeInput = (data: CreateContentTypeInput) => {\r\n if (has('contentType', data)) {\r\n removeEmptyDefaults(data.contentType);\r\n removeDeletedUIDTargetFields(data.contentType as Struct.ContentTypeSchema);\r\n }\r\n\r\n if (has('components', data) && Array.isArray(data.components)) {\r\n data.components.forEach((comp) => {\r\n if (has('uid', comp)) {\r\n removeEmptyDefaults(comp as Struct.ComponentSchema);\r\n }\r\n });\r\n }\r\n\r\n return validateYupSchema(createContentTypeSchema(data, { isEdition: true }))(data);\r\n};\r\n\r\nconst forbiddenContentTypeNameValidator = () => {\r\n const reservedNames = getService('builder').getReservedNames().models;\r\n\r\n return {\r\n name: 'forbiddenContentTypeName',\r\n message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,\r\n test(value: unknown) {\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n return !getService('builder').isReservedModelName(value);\r\n },\r\n };\r\n};\r\n\r\nconst nameIsAvailable = (isEdition: boolean) => {\r\n // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as\r\n const usedNames = flatMap((ct: Struct.ContentTypeSchema) => {\r\n return [ct.info?.singularName, ct.info?.pluralName];\r\n })(strapi.contentTypes as any);\r\n\r\n return {\r\n name: 'nameAlreadyUsed',\r\n message: 'contentType: name `${value}` is already being used by another content type.',\r\n test(value: unknown) {\r\n // don't check on edition\r\n if (isEdition) return true;\r\n\r\n // ignore if not a string (will be caught in another validator)\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n // compare snake case to check the actual column names that will be used in the database\r\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\r\n },\r\n };\r\n};\r\n\r\nconst nameIsNotExistingCollectionName = (isEdition: boolean) => {\r\n const usedNames = Object.keys(strapi.contentTypes).map(\r\n (key) => strapi.contentTypes[key as Internal.UID.ContentType].collectionName\r\n ) as string[];\r\n\r\n return {\r\n name: 'nameAlreadyUsed',\r\n message: 'contentType: name `${value}` is already being used by another content type.',\r\n test(value: unknown) {\r\n // don't check on edition\r\n if (isEdition) return true;\r\n\r\n // ignore if not a string (will be caught in another validator)\r\n if (typeof value !== 'string') {\r\n return true;\r\n }\r\n\r\n // compare snake case to check the actual column names that will be used in the database\r\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * Validates type kind\r\n */\r\nconst kindSchema = yup.string().oneOf([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]);\r\n\r\nexport const validateKind = validateYupSchema(kindSchema);\r\n"],"names":["VALID_RELATIONS","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","VALID_TYPES","DEFAULT_TYPES","createContentTypeSchema","data","isEdition","kind","getOr","contentTypeSchema","createSchema","modelType","modelTypes","CONTENT_TYPE","shape","displayName","yup","string","min","required","singularName","test","nameIsAvailable","forbiddenContentTypeNameValidator","isKebabCase","pluralName","nameIsNotExistingCollectionName","value","object","contentType","noUnknown","components","nestedComponentSchema","validateContentTypeInput","validateYupSchema","validateUpdateContentTypeInput","has","removeEmptyDefaults","removeDeletedUIDTargetFields","Array","isArray","forEach","comp","reservedNames","getService","getReservedNames","models","name","message","join","isReservedModelName","usedNames","flatMap","ct","info","strapi","contentTypes","every","usedName","snakeCase","Object","keys","map","key","collectionName","kindSchema","oneOf","validateKind"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var typeguards = require('../../utils/typeguards.js');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var ___default = /*#__PURE__*/_interopDefault(_);
9
+
10
+ const removeEmptyDefaults = (data)=>{
11
+ const { attributes } = data || {};
12
+ Object.keys(attributes).forEach((attributeName)=>{
13
+ const attribute = attributes[attributeName];
14
+ if (typeguards.hasDefaultAttribute(attribute) && attribute.default === '') {
15
+ attribute.default = undefined;
16
+ }
17
+ });
18
+ };
19
+ const removeDeletedUIDTargetFields = (data)=>{
20
+ if (___default.default.has(data, 'attributes')) {
21
+ Object.values(data.attributes).forEach((attribute)=>{
22
+ if (attribute.type === 'uid' && !___default.default.isUndefined(attribute.targetField) && !___default.default.has(data.attributes, attribute.targetField)) {
23
+ attribute.targetField = undefined;
24
+ }
25
+ });
26
+ }
27
+ };
28
+
29
+ exports.removeDeletedUIDTargetFields = removeDeletedUIDTargetFields;
30
+ exports.removeEmptyDefaults = removeEmptyDefaults;
31
+ //# sourceMappingURL=data-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-transform.js","sources":["../../../../server/src/controllers/validation/data-transform.ts"],"sourcesContent":["import type { Struct } from '@strapi/types';\r\nimport _ from 'lodash';\r\nimport { hasDefaultAttribute } from '../../utils/typeguards';\r\n\r\nexport const removeEmptyDefaults = (\r\n data: Partial<Struct.ContentTypeSchema> | Partial<Struct.ComponentSchema> | undefined\r\n) => {\r\n const { attributes } = data || {};\r\n\r\n Object.keys(attributes!).forEach((attributeName) => {\r\n const attribute = attributes![attributeName];\r\n\r\n if (hasDefaultAttribute(attribute) && attribute.default === '') {\r\n attribute.default = undefined;\r\n }\r\n });\r\n};\r\n\r\nexport const removeDeletedUIDTargetFields = (data: Struct.ContentTypeSchema) => {\r\n if (_.has(data, 'attributes')) {\r\n Object.values(data.attributes).forEach((attribute) => {\r\n if (\r\n attribute.type === 'uid' &&\r\n !_.isUndefined(attribute.targetField) &&\r\n !_.has(data.attributes, attribute.targetField)\r\n ) {\r\n attribute.targetField = undefined;\r\n }\r\n });\r\n }\r\n};\r\n"],"names":["removeEmptyDefaults","data","attributes","Object","keys","forEach","attributeName","attribute","hasDefaultAttribute","default","undefined","removeDeletedUIDTargetFields","_","has","values","type","isUndefined","targetField"],"mappings":";;;;;;;;;AAIO,MAAMA,sBAAsB,CACjCC,IAAAA,GAAAA;AAEA,IAAA,MAAM,EAAEC,UAAU,EAAE,GAAGD,QAAQ,EAAC;AAEhCE,IAAAA,MAAAA,CAAOC,IAAI,CAACF,UAAAA,CAAAA,CAAaG,OAAO,CAAC,CAACC,aAAAA,GAAAA;QAChC,MAAMC,SAAAA,GAAYL,UAAW,CAACI,aAAAA,CAAc;AAE5C,QAAA,IAAIE,8BAAAA,CAAoBD,SAAAA,CAAAA,IAAcA,SAAAA,CAAUE,OAAO,KAAK,EAAA,EAAI;AAC9DF,YAAAA,SAAAA,CAAUE,OAAO,GAAGC,SAAAA;AACtB,QAAA;AACF,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,+BAA+B,CAACV,IAAAA,GAAAA;AAC3C,IAAA,IAAIW,kBAAAA,CAAEC,GAAG,CAACZ,IAAAA,EAAM,YAAA,CAAA,EAAe;AAC7BE,QAAAA,MAAAA,CAAOW,MAAM,CAACb,IAAAA,CAAKC,UAAU,CAAA,CAAEG,OAAO,CAAC,CAACE,SAAAA,GAAAA;YACtC,IACEA,SAAAA,CAAUQ,IAAI,KAAK,KAAA,IACnB,CAACH,kBAAAA,CAAEI,WAAW,CAACT,SAAAA,CAAUU,WAAW,KACpC,CAACL,kBAAAA,CAAEC,GAAG,CAACZ,IAAAA,CAAKC,UAAU,EAAEK,SAAAA,CAAUU,WAAW,CAAA,EAC7C;AACAV,gBAAAA,SAAAA,CAAUU,WAAW,GAAGP,SAAAA;AAC1B,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;AACF;;;;;"}
@@ -0,0 +1,24 @@
1
+ import _ from 'lodash';
2
+ import { hasDefaultAttribute } from '../../utils/typeguards.mjs';
3
+
4
+ const removeEmptyDefaults = (data)=>{
5
+ const { attributes } = data || {};
6
+ Object.keys(attributes).forEach((attributeName)=>{
7
+ const attribute = attributes[attributeName];
8
+ if (hasDefaultAttribute(attribute) && attribute.default === '') {
9
+ attribute.default = undefined;
10
+ }
11
+ });
12
+ };
13
+ const removeDeletedUIDTargetFields = (data)=>{
14
+ if (_.has(data, 'attributes')) {
15
+ Object.values(data.attributes).forEach((attribute)=>{
16
+ if (attribute.type === 'uid' && !_.isUndefined(attribute.targetField) && !_.has(data.attributes, attribute.targetField)) {
17
+ attribute.targetField = undefined;
18
+ }
19
+ });
20
+ }
21
+ };
22
+
23
+ export { removeDeletedUIDTargetFields, removeEmptyDefaults };
24
+ //# sourceMappingURL=data-transform.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-transform.mjs","sources":["../../../../server/src/controllers/validation/data-transform.ts"],"sourcesContent":["import type { Struct } from '@strapi/types';\r\nimport _ from 'lodash';\r\nimport { hasDefaultAttribute } from '../../utils/typeguards';\r\n\r\nexport const removeEmptyDefaults = (\r\n data: Partial<Struct.ContentTypeSchema> | Partial<Struct.ComponentSchema> | undefined\r\n) => {\r\n const { attributes } = data || {};\r\n\r\n Object.keys(attributes!).forEach((attributeName) => {\r\n const attribute = attributes![attributeName];\r\n\r\n if (hasDefaultAttribute(attribute) && attribute.default === '') {\r\n attribute.default = undefined;\r\n }\r\n });\r\n};\r\n\r\nexport const removeDeletedUIDTargetFields = (data: Struct.ContentTypeSchema) => {\r\n if (_.has(data, 'attributes')) {\r\n Object.values(data.attributes).forEach((attribute) => {\r\n if (\r\n attribute.type === 'uid' &&\r\n !_.isUndefined(attribute.targetField) &&\r\n !_.has(data.attributes, attribute.targetField)\r\n ) {\r\n attribute.targetField = undefined;\r\n }\r\n });\r\n }\r\n};\r\n"],"names":["removeEmptyDefaults","data","attributes","Object","keys","forEach","attributeName","attribute","hasDefaultAttribute","default","undefined","removeDeletedUIDTargetFields","_","has","values","type","isUndefined","targetField"],"mappings":";;;AAIO,MAAMA,sBAAsB,CACjCC,IAAAA,GAAAA;AAEA,IAAA,MAAM,EAAEC,UAAU,EAAE,GAAGD,QAAQ,EAAC;AAEhCE,IAAAA,MAAAA,CAAOC,IAAI,CAACF,UAAAA,CAAAA,CAAaG,OAAO,CAAC,CAACC,aAAAA,GAAAA;QAChC,MAAMC,SAAAA,GAAYL,UAAW,CAACI,aAAAA,CAAc;AAE5C,QAAA,IAAIE,mBAAAA,CAAoBD,SAAAA,CAAAA,IAAcA,SAAAA,CAAUE,OAAO,KAAK,EAAA,EAAI;AAC9DF,YAAAA,SAAAA,CAAUE,OAAO,GAAGC,SAAAA;AACtB,QAAA;AACF,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,+BAA+B,CAACV,IAAAA,GAAAA;AAC3C,IAAA,IAAIW,CAAAA,CAAEC,GAAG,CAACZ,IAAAA,EAAM,YAAA,CAAA,EAAe;AAC7BE,QAAAA,MAAAA,CAAOW,MAAM,CAACb,IAAAA,CAAKC,UAAU,CAAA,CAAEG,OAAO,CAAC,CAACE,SAAAA,GAAAA;YACtC,IACEA,SAAAA,CAAUQ,IAAI,KAAK,KAAA,IACnB,CAACH,CAAAA,CAAEI,WAAW,CAACT,SAAAA,CAAUU,WAAW,KACpC,CAACL,CAAAA,CAAEC,GAAG,CAACZ,IAAAA,CAAKC,UAAU,EAAEK,SAAAA,CAAUU,WAAW,CAAA,EAC7C;AACAV,gBAAAA,SAAAA,CAAUU,WAAW,GAAGP,SAAAA;AAC1B,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA;AACF;;;;"}