@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.
- package/LICENSE +37 -0
- package/README.md +9 -0
- package/dist/admin/components/AIChat/Chat.js +437 -0
- package/dist/admin/components/AIChat/Chat.js.map +1 -0
- package/dist/admin/components/AIChat/Chat.mjs +435 -0
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -0
- package/dist/admin/components/AIChat/FeedbackModal.js +238 -0
- package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -0
- package/dist/admin/components/AIChat/FeedbackModal.mjs +234 -0
- package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/UploadCodeModal.js +427 -0
- package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -0
- package/dist/admin/components/AIChat/UploadCodeModal.mjs +423 -0
- package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.js +379 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +375 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Alert.js +46 -0
- package/dist/admin/components/AIChat/components/Alert.js.map +1 -0
- package/dist/admin/components/AIChat/components/Alert.mjs +44 -0
- package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.js +34 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs +32 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js +92 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs +90 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +100 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +97 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Base64Image.js +127 -0
- package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -0
- package/dist/admin/components/AIChat/components/Base64Image.mjs +125 -0
- package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Collapsible.js +71 -0
- package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -0
- package/dist/admin/components/AIChat/components/Collapsible.mjs +66 -0
- package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Dropzone.js +168 -0
- package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -0
- package/dist/admin/components/AIChat/components/Dropzone.mjs +163 -0
- package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.js +166 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs +163 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.js +190 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs +187 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/ImagePreview.js +87 -0
- package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -0
- package/dist/admin/components/AIChat/components/ImagePreview.mjs +85 -0
- package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Input.js +122 -0
- package/dist/admin/components/AIChat/components/Input.js.map +1 -0
- package/dist/admin/components/AIChat/components/Input.mjs +118 -0
- package/dist/admin/components/AIChat/components/Input.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.js +138 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs +136 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Message.js +229 -0
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +223 -0
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.js +78 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs +76 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.js +61 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs +35 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/StepModal.js +175 -0
- package/dist/admin/components/AIChat/components/StepModal.js.map +1 -0
- package/dist/admin/components/AIChat/components/StepModal.mjs +171 -0
- package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/animations.js +67 -0
- package/dist/admin/components/AIChat/components/animations.js.map +1 -0
- package/dist/admin/components/AIChat/components/animations.mjs +65 -0
- package/dist/admin/components/AIChat/components/animations.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js +50 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs +48 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.js +25 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs +23 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.js +107 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +96 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.js +152 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs +150 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.js +47 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs +45 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js +217 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs +207 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.js +79 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs +77 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js +206 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs +200 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js +115 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs +113 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.js +19 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs +17 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/aiClient.js +174 -0
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -0
- package/dist/admin/components/AIChat/lib/aiClient.mjs +167 -0
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/constants.js +16 -0
- package/dist/admin/components/AIChat/lib/constants.js.map +1 -0
- package/dist/admin/components/AIChat/lib/constants.mjs +10 -0
- package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/misc.js +8 -0
- package/dist/admin/components/AIChat/lib/misc.js.map +1 -0
- package/dist/admin/components/AIChat/lib/misc.mjs +6 -0
- package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +46 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +44 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +211 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +202 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.js +192 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs +188 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.js +90 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +88 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -0
- package/dist/admin/components/AllowedTypesSelect.js +82 -0
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -0
- package/dist/admin/components/AllowedTypesSelect.mjs +76 -0
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -0
- package/dist/admin/components/ApplyConditionButton.js +34 -0
- package/dist/admin/components/ApplyConditionButton.js.map +1 -0
- package/dist/admin/components/ApplyConditionButton.mjs +32 -0
- package/dist/admin/components/ApplyConditionButton.mjs.map +1 -0
- package/dist/admin/components/AttributeIcon.js +73 -0
- package/dist/admin/components/AttributeIcon.js.map +1 -0
- package/dist/admin/components/AttributeIcon.mjs +71 -0
- package/dist/admin/components/AttributeIcon.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js +32 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs +30 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js +92 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs +90 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js +71 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs +69 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js +58 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +56 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js +55 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs +53 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js +123 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs +100 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js +19 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs +17 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -0
- package/dist/admin/components/AttributeRow.js +403 -0
- package/dist/admin/components/AttributeRow.js.map +1 -0
- package/dist/admin/components/AttributeRow.mjs +395 -0
- package/dist/admin/components/AttributeRow.mjs.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js +216 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs +193 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js +55 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs +53 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.js +27 -0
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.mjs +25 -0
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.js +49 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs +46 -0
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -0
- package/dist/admin/components/CTBSession/sessionContext.js +8 -0
- package/dist/admin/components/CTBSession/sessionContext.js.map +1 -0
- package/dist/admin/components/CTBSession/sessionContext.mjs +6 -0
- package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -0
- package/dist/admin/components/CTBSession/useCTBSession.js +25 -0
- package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -0
- package/dist/admin/components/CTBSession/useCTBSession.mjs +23 -0
- package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -0
- package/dist/admin/components/CTBSession/useCTBTracking.js +37 -0
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -0
- package/dist/admin/components/CTBSession/useCTBTracking.mjs +35 -0
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.js +88 -0
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs +86 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js +118 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +112 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js +24 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs +22 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -0
- package/dist/admin/components/ComponentList.js +31 -0
- package/dist/admin/components/ComponentList.js.map +1 -0
- package/dist/admin/components/ComponentList.mjs +25 -0
- package/dist/admin/components/ComponentList.mjs.map +1 -0
- package/dist/admin/components/ComponentRow.js +42 -0
- package/dist/admin/components/ComponentRow.js.map +1 -0
- package/dist/admin/components/ComponentRow.mjs +40 -0
- package/dist/admin/components/ComponentRow.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +279 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +277 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +157 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +151 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.js +29 -0
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs +27 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +80 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +78 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js +75 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +73 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -0
- package/dist/admin/components/DataManager/DataManagerContext.js +9 -0
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerContext.mjs +7 -0
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js +411 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +384 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
- package/dist/admin/components/DataManager/reducer.js +597 -0
- package/dist/admin/components/DataManager/reducer.js.map +1 -0
- package/dist/admin/components/DataManager/reducer.mjs +588 -0
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.js +102 -0
- package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
- package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
- package/dist/admin/components/DataManager/useDataManager.js +9 -0
- package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
- package/dist/admin/components/DataManager/useDataManager.mjs +7 -0
- package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.js +220 -0
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs +211 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +38 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs +31 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js +45 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs +43 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +21 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
- package/dist/admin/components/DisplayedType.js +48 -0
- package/dist/admin/components/DisplayedType.js.map +1 -0
- package/dist/admin/components/DisplayedType.mjs +46 -0
- package/dist/admin/components/DisplayedType.mjs.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.js +86 -0
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs +84 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -0
- package/dist/admin/components/DynamicZoneList.js +122 -0
- package/dist/admin/components/DynamicZoneList.js.map +1 -0
- package/dist/admin/components/DynamicZoneList.mjs +120 -0
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -0
- package/dist/admin/components/ExitPrompt.js +50 -0
- package/dist/admin/components/ExitPrompt.js.map +1 -0
- package/dist/admin/components/ExitPrompt.mjs +48 -0
- package/dist/admin/components/ExitPrompt.mjs.map +1 -0
- package/dist/admin/components/Footers.js +95 -0
- package/dist/admin/components/Footers.js.map +1 -0
- package/dist/admin/components/Footers.mjs +92 -0
- package/dist/admin/components/Footers.mjs.map +1 -0
- package/dist/admin/components/FormModal/FormModal.js +1148 -0
- package/dist/admin/components/FormModal/FormModal.js.map +1 -0
- package/dist/admin/components/FormModal/FormModal.mjs +1120 -0
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/ConditionForm.js +454 -0
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +433 -0
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js +526 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs +524 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js +97 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs +95 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js +482 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs +480 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js +17 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs +15 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.js +12 -0
- package/dist/admin/components/FormModal/attributes/form.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.mjs +10 -0
- package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.js +19 -0
- package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs +17 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.js +314 -0
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.mjs +289 -0
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js +160 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs +129 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.js +40 -0
- package/dist/admin/components/FormModal/component/componentField.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.mjs +38 -0
- package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.js +53 -0
- package/dist/admin/components/FormModal/component/componentForm.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs +51 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js +66 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +44 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js +169 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +167 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +171 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +149 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js +68 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs +66 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.js +280 -0
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.mjs +278 -0
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js +21 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs +19 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +17 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +11 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js +10 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs +8 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/reducer.js +343 -0
- package/dist/admin/components/FormModal/reducer.js.map +1 -0
- package/dist/admin/components/FormModal/reducer.mjs +333 -0
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js +27 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs +25 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.js +16 -0
- package/dist/admin/components/FormModal/utils/createUid.js.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs +13 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +18 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +16 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js +56 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs +54 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js +17 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +15 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.js +15 -0
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.mjs +12 -0
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -0
- package/dist/admin/components/FormModalEndActions.js +289 -0
- package/dist/admin/components/FormModalEndActions.js.map +1 -0
- package/dist/admin/components/FormModalEndActions.mjs +287 -0
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -0
- package/dist/admin/components/FormModalHeader.js +138 -0
- package/dist/admin/components/FormModalHeader.js.map +1 -0
- package/dist/admin/components/FormModalHeader.mjs +132 -0
- package/dist/admin/components/FormModalHeader.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +29 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs +7 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +218 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +215 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js +9 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs +7 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
- package/dist/admin/components/FormModalSubHeader.js +74 -0
- package/dist/admin/components/FormModalSubHeader.js.map +1 -0
- package/dist/admin/components/FormModalSubHeader.mjs +67 -0
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -0
- package/dist/admin/components/GenericInputs.js +552 -0
- package/dist/admin/components/GenericInputs.js.map +1 -0
- package/dist/admin/components/GenericInputs.mjs +526 -0
- package/dist/admin/components/GenericInputs.mjs.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.js +201 -0
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs +199 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -0
- package/dist/admin/components/IconPicker/constants.js +159 -0
- package/dist/admin/components/IconPicker/constants.js.map +1 -0
- package/dist/admin/components/IconPicker/constants.mjs +136 -0
- package/dist/admin/components/IconPicker/constants.mjs.map +1 -0
- package/dist/admin/components/List.js +199 -0
- package/dist/admin/components/List.js.map +1 -0
- package/dist/admin/components/List.mjs +196 -0
- package/dist/admin/components/List.mjs.map +1 -0
- package/dist/admin/components/PluralName.js +82 -0
- package/dist/admin/components/PluralName.js.map +1 -0
- package/dist/admin/components/PluralName.mjs +76 -0
- package/dist/admin/components/PluralName.mjs.map +1 -0
- package/dist/admin/components/Relation/Relation.js +48 -0
- package/dist/admin/components/Relation/Relation.js.map +1 -0
- package/dist/admin/components/Relation/Relation.mjs +46 -0
- package/dist/admin/components/Relation/Relation.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js +52 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +50 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +75 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +73 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js +59 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +55 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +153 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +145 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -0
- package/dist/admin/components/SelectCategory.js +66 -0
- package/dist/admin/components/SelectCategory.js.map +1 -0
- package/dist/admin/components/SelectCategory.mjs +64 -0
- package/dist/admin/components/SelectCategory.mjs.map +1 -0
- package/dist/admin/components/SelectComponent.js +87 -0
- package/dist/admin/components/SelectComponent.js.map +1 -0
- package/dist/admin/components/SelectComponent.mjs +85 -0
- package/dist/admin/components/SelectComponent.mjs.map +1 -0
- package/dist/admin/components/SelectComponents.js +73 -0
- package/dist/admin/components/SelectComponents.js.map +1 -0
- package/dist/admin/components/SelectComponents.mjs +71 -0
- package/dist/admin/components/SelectComponents.mjs.map +1 -0
- package/dist/admin/components/SelectDateType.js +62 -0
- package/dist/admin/components/SelectDateType.js.map +1 -0
- package/dist/admin/components/SelectDateType.mjs +60 -0
- package/dist/admin/components/SelectDateType.mjs.map +1 -0
- package/dist/admin/components/SelectNumber.js +107 -0
- package/dist/admin/components/SelectNumber.js.map +1 -0
- package/dist/admin/components/SelectNumber.mjs +105 -0
- package/dist/admin/components/SelectNumber.mjs.map +1 -0
- package/dist/admin/components/SingularName.js +72 -0
- package/dist/admin/components/SingularName.js.map +1 -0
- package/dist/admin/components/SingularName.mjs +70 -0
- package/dist/admin/components/SingularName.mjs.map +1 -0
- package/dist/admin/components/Status.js +73 -0
- package/dist/admin/components/Status.js.map +1 -0
- package/dist/admin/components/Status.mjs +70 -0
- package/dist/admin/components/Status.mjs.map +1 -0
- package/dist/admin/components/TabForm.js +176 -0
- package/dist/admin/components/TabForm.js.map +1 -0
- package/dist/admin/components/TabForm.mjs +170 -0
- package/dist/admin/components/TabForm.mjs.map +1 -0
- package/dist/admin/components/TextareaEnum.js +58 -0
- package/dist/admin/components/TextareaEnum.js.map +1 -0
- package/dist/admin/components/TextareaEnum.mjs +56 -0
- package/dist/admin/components/TextareaEnum.mjs.map +1 -0
- package/dist/admin/constants.js +19 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +16 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/icons/Curve.js +47 -0
- package/dist/admin/icons/Curve.js.map +1 -0
- package/dist/admin/icons/Curve.mjs +45 -0
- package/dist/admin/icons/Curve.mjs.map +1 -0
- package/dist/admin/index.js +95 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +87 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/pages/App/index.js +114 -0
- package/dist/admin/pages/App/index.js.map +1 -0
- package/dist/admin/pages/App/index.mjs +110 -0
- package/dist/admin/pages/App/index.mjs.map +1 -0
- package/dist/admin/pages/ListView/EmptyState.js +110 -0
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
- package/dist/admin/pages/ListView/EmptyState.mjs +108 -0
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js +90 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +88 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -0
- package/dist/admin/pages/ListView/ListView.js +181 -0
- package/dist/admin/pages/ListView/ListView.js.map +1 -0
- package/dist/admin/pages/ListView/ListView.mjs +175 -0
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/reducers.js +12 -0
- package/dist/admin/reducers.js.map +1 -0
- package/dist/admin/reducers.mjs +10 -0
- package/dist/admin/reducers.mjs.map +1 -0
- package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
- package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
- package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
- package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
- package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
- package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +20 -0
- package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
- package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
- package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
- package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
- package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +34 -0
- package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +33 -0
- package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
- package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
- package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
- package/dist/admin/src/components/AIChat/components/Input.d.ts +48 -0
- package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
- package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +4 -0
- package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +8 -0
- package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
- package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
- package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
- package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +4 -0
- package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +4 -0
- package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
- package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
- package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
- package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
- package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
- package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
- package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
- package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
- package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
- package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
- package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
- package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +7 -0
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
- package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
- package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
- package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
- package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
- package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +22 -0
- package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
- package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
- package/dist/admin/src/components/AllowedTypesSelect.d.ts +9 -0
- package/dist/admin/src/components/ApplyConditionButton.d.ts +8 -0
- package/dist/admin/src/components/AttributeIcon.d.ts +9 -0
- package/dist/admin/src/components/AttributeOptions/AttributeList.d.ts +6 -0
- package/dist/admin/src/components/AttributeOptions/AttributeOption.d.ts +11 -0
- package/dist/admin/src/components/AttributeOptions/AttributeOptions.d.ts +13 -0
- package/dist/admin/src/components/AttributeOptions/CustomFieldOption.d.ts +22 -0
- package/dist/admin/src/components/AttributeOptions/CustomFieldsList.d.ts +1 -0
- package/dist/admin/src/components/AttributeOptions/EmptyAttributes.d.ts +2 -0
- package/dist/admin/src/components/AttributeOptions/OptionBoxWrapper.d.ts +13 -0
- package/dist/admin/src/components/AttributeRow.d.ts +32 -0
- package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +25 -0
- package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +20 -0
- package/dist/admin/src/components/BooleanRadioGroup.d.ts +8 -0
- package/dist/admin/src/components/CTBSession/CTBSessionProvider.d.ts +26 -0
- package/dist/admin/src/components/CTBSession/ctbSession.d.ts +5 -0
- package/dist/admin/src/components/CTBSession/sessionContext.d.ts +24 -0
- package/dist/admin/src/components/CTBSession/useCTBSession.d.ts +12 -0
- package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +13 -0
- package/dist/admin/src/components/CheckboxWithNumberField.d.ts +13 -0
- package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +14 -0
- package/dist/admin/src/components/ComponentCard/ComponentIcon/ComponentIcon.d.ts +7 -0
- package/dist/admin/src/components/ComponentCard/ComponentIcon/index.d.ts +1 -0
- package/dist/admin/src/components/ComponentCard/index.d.ts +1 -0
- package/dist/admin/src/components/ComponentList.d.ts +8 -0
- package/dist/admin/src/components/ComponentRow.d.ts +19 -0
- package/dist/admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.d.ts +1 -0
- package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +36 -0
- package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +16 -0
- package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +16 -0
- package/dist/admin/src/components/CustomRadioGroup/Styles.d.ts +6 -0
- package/dist/admin/src/components/CustomRadioGroup/index.d.ts +1 -0
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +139 -0
- package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
- package/dist/admin/src/components/DataManager/reducer.d.ts +282 -0
- package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
- package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
- package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +333 -0
- package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -0
- package/dist/admin/src/components/DataManager/utils/retrieveComponentsThatHaveComponents.d.ts +12 -0
- package/dist/admin/src/components/DataManager/utils/retrieveNestedComponents.d.ts +8 -0
- package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -0
- package/dist/admin/src/components/DisplayedType.d.ts +8 -0
- package/dist/admin/src/components/DraftAndPublishToggle.d.ts +22 -0
- package/dist/admin/src/components/DynamicZoneList.d.ts +13 -0
- package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
- package/dist/admin/src/components/Footers.d.ts +13 -0
- package/dist/admin/src/components/FormModal/FormModal.d.ts +1 -0
- package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +24 -0
- package/dist/admin/src/components/FormModal/attributes/advancedForm.d.ts +696 -0
- package/dist/admin/src/components/FormModal/attributes/attributeOptions.d.ts +90 -0
- package/dist/admin/src/components/FormModal/attributes/baseForm.d.ts +376 -0
- package/dist/admin/src/components/FormModal/attributes/commonBaseForm.d.ts +17 -0
- package/dist/admin/src/components/FormModal/attributes/form.d.ts +1072 -0
- package/dist/admin/src/components/FormModal/attributes/nameField.d.ts +12 -0
- package/dist/admin/src/components/FormModal/attributes/types.d.ts +327 -0
- package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +42 -0
- package/dist/admin/src/components/FormModal/component/componentField.d.ts +20 -0
- package/dist/admin/src/components/FormModal/component/componentForm.d.ts +25 -0
- package/dist/admin/src/components/FormModal/component/createComponentSchema.d.ts +10 -0
- package/dist/admin/src/components/FormModal/contentType/contentTypeForm.d.ts +116 -0
- package/dist/admin/src/components/FormModal/contentType/createContentTypeSchema.d.ts +22 -0
- package/dist/admin/src/components/FormModal/dynamiczoneForm.d.ts +68 -0
- package/dist/admin/src/components/FormModal/forms/forms.d.ts +204 -0
- package/dist/admin/src/components/FormModal/forms/utils/addItemsToFormSection.d.ts +38 -0
- package/dist/admin/src/components/FormModal/forms/utils/createCollectionName.d.ts +2 -0
- package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +22 -0
- package/dist/admin/src/components/FormModal/reducer.d.ts +188 -0
- package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +18 -0
- package/dist/admin/src/components/FormModal/utils/createUid.d.ts +4 -0
- package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -0
- package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +4 -0
- package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -0
- package/dist/admin/src/components/FormModal/utils/relations.d.ts +4 -0
- package/dist/admin/src/components/FormModalEndActions.d.ts +38 -0
- package/dist/admin/src/components/FormModalHeader.d.ts +18 -0
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +69 -0
- package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
- package/dist/admin/src/components/FormModalSubHeader.d.ts +22 -0
- package/dist/admin/src/components/GenericInputs.d.ts +90 -0
- package/dist/admin/src/components/IconPicker/IconPicker.d.ts +8 -0
- package/dist/admin/src/components/IconPicker/constants.d.ts +5 -0
- package/dist/admin/src/components/IconPicker/index.d.ts +1 -0
- package/dist/admin/src/components/List.d.ts +26 -0
- package/dist/admin/src/components/PluralName.d.ts +14 -0
- package/dist/admin/src/components/Relation/Relation.d.ts +19 -0
- package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +15 -0
- package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +7 -0
- package/dist/admin/src/components/Relation/RelationNaturePicker/Components.d.ts +37 -0
- package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +9 -0
- package/dist/admin/src/components/SelectCategory.d.ts +12 -0
- package/dist/admin/src/components/SelectComponent.d.ts +21 -0
- package/dist/admin/src/components/SelectComponents.d.ts +21 -0
- package/dist/admin/src/components/SelectDateType.d.ts +38 -0
- package/dist/admin/src/components/SelectNumber.d.ts +36 -0
- package/dist/admin/src/components/SingularName.d.ts +14 -0
- package/dist/admin/src/components/Status.d.ts +6 -0
- package/dist/admin/src/components/TabForm.d.ts +40 -0
- package/dist/admin/src/components/TextareaEnum.d.ts +20 -0
- package/dist/admin/src/constants.d.ts +7 -0
- package/dist/admin/src/exports.d.ts +15 -0
- package/dist/admin/src/icons/Curve.d.ts +6 -0
- package/dist/admin/src/index.d.ts +18 -0
- package/dist/admin/src/pages/App/index.d.ts +2 -0
- package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
- package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +7 -0
- package/dist/admin/src/pages/ListView/ListView.d.ts +2 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/reducers.d.ts +4 -0
- package/dist/admin/src/types.d.ts +63 -0
- package/dist/admin/src/utils/conditions.d.ts +26 -0
- package/dist/admin/src/utils/findAttribute.d.ts +2 -0
- package/dist/admin/src/utils/formAPI.d.ts +48 -0
- package/dist/admin/src/utils/getAttributeDisplayedType.d.ts +1 -0
- package/dist/admin/src/utils/getMaxDepth.d.ts +23 -0
- package/dist/admin/src/utils/getRelationType.d.ts +6 -0
- package/dist/admin/src/utils/getTrad.d.ts +1 -0
- package/dist/admin/src/utils/getYupInnerErrors.d.ts +7 -0
- package/dist/admin/src/utils/index.d.ts +2 -0
- package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +2 -0
- package/dist/admin/src/utils/makeUnique.d.ts +2 -0
- package/dist/admin/src/utils/nameToSlug.d.ts +1 -0
- package/dist/admin/src/utils/parseDateValue.d.ts +1 -0
- package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/admin/src/utils/startsWithANumber.d.ts +1 -0
- package/dist/admin/src/utils/timeFormat.d.ts +16 -0
- package/dist/admin/src/utils/toRegressedEnumValue.d.ts +1 -0
- package/dist/admin/translations/ar.json.js +239 -0
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/translations/ar.json.mjs +233 -0
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +298 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +292 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/da.json.js +185 -0
- package/dist/admin/translations/da.json.js.map +1 -0
- package/dist/admin/translations/da.json.mjs +179 -0
- package/dist/admin/translations/da.json.mjs.map +1 -0
- package/dist/admin/translations/de.json.js +298 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +292 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +300 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +294 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +240 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +234 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fa.json.js +300 -0
- package/dist/admin/translations/fa.json.js.map +1 -0
- package/dist/admin/translations/fa.json.mjs +294 -0
- package/dist/admin/translations/fa.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +244 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +238 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/id.json.js +239 -0
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/translations/id.json.mjs +233 -0
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/translations/it.json.js +239 -0
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/translations/it.json.mjs +233 -0
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/translations/ja.json.js +298 -0
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/translations/ja.json.mjs +292 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +302 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +296 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/ms.json.js +239 -0
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/translations/ms.json.mjs +233 -0
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +301 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +295 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +298 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +292 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/pt-BR.json.js +239 -0
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/translations/pt-BR.json.mjs +233 -0
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/translations/pt.json.js +239 -0
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/translations/pt.json.mjs +233 -0
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +240 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +234 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +298 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +292 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/sv.json.js +224 -0
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/translations/sv.json.mjs +218 -0
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/translations/th.json.js +187 -0
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/translations/th.json.mjs +181 -0
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +201 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +195 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +238 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +232 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +239 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +233 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +224 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +218 -0
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/conditions.js +71 -0
- package/dist/admin/utils/conditions.js.map +1 -0
- package/dist/admin/utils/conditions.mjs +66 -0
- package/dist/admin/utils/conditions.mjs.map +1 -0
- package/dist/admin/utils/findAttribute.js +8 -0
- package/dist/admin/utils/findAttribute.js.map +1 -0
- package/dist/admin/utils/findAttribute.mjs +6 -0
- package/dist/admin/utils/findAttribute.mjs.map +1 -0
- package/dist/admin/utils/formAPI.js +141 -0
- package/dist/admin/utils/formAPI.js.map +1 -0
- package/dist/admin/utils/formAPI.mjs +115 -0
- package/dist/admin/utils/formAPI.mjs.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.js +32 -0
- package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs +30 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -0
- package/dist/admin/utils/getMaxDepth.js +74 -0
- package/dist/admin/utils/getMaxDepth.js.map +1 -0
- package/dist/admin/utils/getMaxDepth.mjs +71 -0
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -0
- package/dist/admin/utils/getRelationType.js +21 -0
- package/dist/admin/utils/getRelationType.js.map +1 -0
- package/dist/admin/utils/getRelationType.mjs +19 -0
- package/dist/admin/utils/getRelationType.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.js +25 -0
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.mjs +23 -0
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js +8 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs +6 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -0
- package/dist/admin/utils/makeUnique.js +8 -0
- package/dist/admin/utils/makeUnique.js.map +1 -0
- package/dist/admin/utils/makeUnique.mjs +6 -0
- package/dist/admin/utils/makeUnique.mjs.map +1 -0
- package/dist/admin/utils/nameToSlug.js +14 -0
- package/dist/admin/utils/nameToSlug.js.map +1 -0
- package/dist/admin/utils/nameToSlug.mjs +8 -0
- package/dist/admin/utils/nameToSlug.mjs.map +1 -0
- package/dist/admin/utils/parseDateValue.js +17 -0
- package/dist/admin/utils/parseDateValue.js.map +1 -0
- package/dist/admin/utils/parseDateValue.mjs +15 -0
- package/dist/admin/utils/parseDateValue.mjs.map +1 -0
- package/dist/admin/utils/parseNumberInputValue.js +15 -0
- package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
- package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
- package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/timeFormat.js +38 -0
- package/dist/admin/utils/timeFormat.js.map +1 -0
- package/dist/admin/utils/timeFormat.mjs +35 -0
- package/dist/admin/utils/timeFormat.mjs.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.js +21 -0
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs +15 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -0
- package/dist/server/bootstrap.js +16 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +14 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +9 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +7 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/controllers/builder.js +12 -0
- package/dist/server/controllers/builder.js.map +1 -0
- package/dist/server/controllers/builder.mjs +10 -0
- package/dist/server/controllers/builder.mjs.map +1 -0
- package/dist/server/controllers/component-categories.js +38 -0
- package/dist/server/controllers/component-categories.js.map +1 -0
- package/dist/server/controllers/component-categories.mjs +36 -0
- package/dist/server/controllers/component-categories.mjs.map +1 -0
- package/dist/server/controllers/components.js +148 -0
- package/dist/server/controllers/components.js.map +1 -0
- package/dist/server/controllers/components.mjs +142 -0
- package/dist/server/controllers/components.mjs.map +1 -0
- package/dist/server/controllers/content-types.js +165 -0
- package/dist/server/controllers/content-types.js.map +1 -0
- package/dist/server/controllers/content-types.mjs +159 -0
- package/dist/server/controllers/content-types.mjs.map +1 -0
- package/dist/server/controllers/index.js +18 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +16 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/schema.js +56 -0
- package/dist/server/controllers/schema.js.map +1 -0
- package/dist/server/controllers/schema.mjs +54 -0
- package/dist/server/controllers/schema.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +102 -0
- package/dist/server/controllers/validation/common.js.map +1 -0
- package/dist/server/controllers/validation/common.mjs +81 -0
- package/dist/server/controllers/validation/common.mjs.map +1 -0
- package/dist/server/controllers/validation/component-category.js +12 -0
- package/dist/server/controllers/validation/component-category.js.map +1 -0
- package/dist/server/controllers/validation/component-category.mjs +10 -0
- package/dist/server/controllers/validation/component-category.mjs.map +1 -0
- package/dist/server/controllers/validation/component.js +72 -0
- package/dist/server/controllers/validation/component.js.map +1 -0
- package/dist/server/controllers/validation/component.mjs +60 -0
- package/dist/server/controllers/validation/component.mjs.map +1 -0
- package/dist/server/controllers/validation/content-type.js +153 -0
- package/dist/server/controllers/validation/content-type.js.map +1 -0
- package/dist/server/controllers/validation/content-type.mjs +149 -0
- package/dist/server/controllers/validation/content-type.mjs.map +1 -0
- package/dist/server/controllers/validation/data-transform.js +31 -0
- package/dist/server/controllers/validation/data-transform.js.map +1 -0
- package/dist/server/controllers/validation/data-transform.mjs +24 -0
- package/dist/server/controllers/validation/data-transform.mjs.map +1 -0
- package/dist/server/controllers/validation/model-schema.js +94 -0
- package/dist/server/controllers/validation/model-schema.js.map +1 -0
- package/dist/server/controllers/validation/model-schema.mjs +88 -0
- package/dist/server/controllers/validation/model-schema.mjs.map +1 -0
- package/dist/server/controllers/validation/relations.js +71 -0
- package/dist/server/controllers/validation/relations.js.map +1 -0
- package/dist/server/controllers/validation/relations.mjs +69 -0
- package/dist/server/controllers/validation/relations.mjs.map +1 -0
- package/dist/server/controllers/validation/schema.js +666 -0
- package/dist/server/controllers/validation/schema.js.map +1 -0
- package/dist/server/controllers/validation/schema.mjs +661 -0
- package/dist/server/controllers/validation/schema.mjs.map +1 -0
- package/dist/server/controllers/validation/types.js +236 -0
- package/dist/server/controllers/validation/types.js.map +1 -0
- package/dist/server/controllers/validation/types.mjs +230 -0
- package/dist/server/controllers/validation/types.mjs.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +22 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/middlewares/index.js +8 -0
- package/dist/server/middlewares/index.js.map +1 -0
- package/dist/server/middlewares/index.mjs +2 -0
- package/dist/server/middlewares/index.mjs.map +1 -0
- package/dist/server/middlewares/is-development-mode.js +19 -0
- package/dist/server/middlewares/is-development-mode.js.map +1 -0
- package/dist/server/middlewares/is-development-mode.mjs +17 -0
- package/dist/server/middlewares/is-development-mode.mjs.map +1 -0
- package/dist/server/register.js +38 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +36 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin.js +311 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +309 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +195 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +173 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/api-handler.js +118 -0
- package/dist/server/services/api-handler.js.map +1 -0
- package/dist/server/services/api-handler.mjs +93 -0
- package/dist/server/services/api-handler.mjs.map +1 -0
- package/dist/server/services/builder.js +27 -0
- package/dist/server/services/builder.js.map +1 -0
- package/dist/server/services/builder.mjs +21 -0
- package/dist/server/services/builder.mjs.map +1 -0
- package/dist/server/services/component-categories.js +59 -0
- package/dist/server/services/component-categories.js.map +1 -0
- package/dist/server/services/component-categories.mjs +56 -0
- package/dist/server/services/component-categories.mjs.map +1 -0
- package/dist/server/services/components.js +79 -0
- package/dist/server/services/components.js.map +1 -0
- package/dist/server/services/components.mjs +74 -0
- package/dist/server/services/components.mjs.map +1 -0
- package/dist/server/services/constants.js +52 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +45 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-types.js +227 -0
- package/dist/server/services/content-types.js.map +1 -0
- package/dist/server/services/content-types.mjs +213 -0
- package/dist/server/services/content-types.mjs.map +1 -0
- package/dist/server/services/index.js +20 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +18 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/component-builder.js +130 -0
- package/dist/server/services/schema-builder/component-builder.js.map +1 -0
- package/dist/server/services/schema-builder/component-builder.mjs +122 -0
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.js +332 -0
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs +325 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/index.js +155 -0
- package/dist/server/services/schema-builder/index.js.map +1 -0
- package/dist/server/services/schema-builder/index.mjs +149 -0
- package/dist/server/services/schema-builder/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.js +256 -0
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.mjs +248 -0
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -0
- package/dist/server/services/schema.js +252 -0
- package/dist/server/services/schema.js.map +1 -0
- package/dist/server/services/schema.mjs +248 -0
- package/dist/server/services/schema.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +6 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/config.d.ts +6 -0
- package/dist/server/src/config.d.ts.map +1 -0
- package/dist/server/src/controllers/builder.d.ts +6 -0
- package/dist/server/src/controllers/builder.d.ts.map +1 -0
- package/dist/server/src/controllers/component-categories.d.ts +7 -0
- package/dist/server/src/controllers/component-categories.d.ts.map +1 -0
- package/dist/server/src/controllers/components.d.ts +38 -0
- package/dist/server/src/controllers/components.d.ts.map +1 -0
- package/dist/server/src/controllers/content-types.d.ts +10 -0
- package/dist/server/src/controllers/content-types.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +30 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/schema.d.ts +8 -0
- package/dist/server/src/controllers/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/common.d.ts +26 -0
- package/dist/server/src/controllers/validation/common.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/component-category.d.ts +5 -0
- package/dist/server/src/controllers/validation/component-category.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/component.d.ts +25 -0
- package/dist/server/src/controllers/validation/component.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/content-type.d.ts +38 -0
- package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/data-transform.d.ts +4 -0
- package/dist/server/src/controllers/validation/data-transform.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/model-schema.d.ts +12 -0
- package/dist/server/src/controllers/validation/model-schema.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/relations.d.ts +18 -0
- package/dist/server/src/controllers/validation/relations.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/schema.d.ts +109632 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/types.d.ts +9 -0
- package/dist/server/src/controllers/validation/types.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +89 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/index.d.ts +3 -0
- package/dist/server/src/middlewares/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/is-development-mode.d.ts +9 -0
- package/dist/server/src/middlewares/is-development-mode.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +6 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/admin.d.ts +32 -0
- package/dist/server/src/routes/admin.d.ts.map +1 -0
- package/dist/server/src/routes/content-api.d.ts +7 -0
- package/dist/server/src/routes/content-api.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +38 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/api-handler.d.ts +15 -0
- package/dist/server/src/services/api-handler.d.ts.map +1 -0
- package/dist/server/src/services/builder.d.ts +16 -0
- package/dist/server/src/services/builder.d.ts.map +1 -0
- package/dist/server/src/services/component-categories.d.ts +13 -0
- package/dist/server/src/services/component-categories.d.ts.map +1 -0
- package/dist/server/src/services/components.d.ts +31 -0
- package/dist/server/src/services/components.d.ts.map +1 -0
- package/dist/server/src/services/constants.d.ts +18 -0
- package/dist/server/src/services/constants.d.ts.map +1 -0
- package/dist/server/src/services/content-types.d.ts +60 -0
- package/dist/server/src/services/content-types.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +16 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/schema-builder/component-builder.d.ts +40 -0
- package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -0
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts +43 -0
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -0
- package/dist/server/src/services/schema-builder/index.d.ts +85 -0
- package/dist/server/src/services/schema-builder/index.d.ts.map +1 -0
- package/dist/server/src/services/schema-builder/schema-handler.d.ts +37 -0
- package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -0
- package/dist/server/src/services/schema-builder/types.d.ts +24 -0
- package/dist/server/src/services/schema-builder/types.d.ts.map +1 -0
- package/dist/server/src/services/schema.d.ts +4064 -0
- package/dist/server/src/services/schema.d.ts.map +1 -0
- package/dist/server/src/utils/attributes.d.ts +672 -0
- package/dist/server/src/utils/attributes.d.ts.map +1 -0
- package/dist/server/src/utils/helpers.d.ts +3 -0
- package/dist/server/src/utils/helpers.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +17 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/src/utils/typeguards.d.ts +3 -0
- package/dist/server/src/utils/typeguards.d.ts.map +1 -0
- package/dist/server/utils/attributes.js +96 -0
- package/dist/server/utils/attributes.js.map +1 -0
- package/dist/server/utils/attributes.mjs +86 -0
- package/dist/server/utils/attributes.mjs.map +1 -0
- package/dist/server/utils/index.js +8 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +6 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/utils/typeguards.js +8 -0
- package/dist/server/utils/typeguards.js.map +1 -0
- package/dist/server/utils/typeguards.mjs +6 -0
- package/dist/server/utils/typeguards.mjs.map +1 -0
- 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":"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"}
|
|
@@ -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;;;;"}
|