@strapi/content-type-builder 5.37.0 → 5.38.0
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/dist/admin/components/AIChat/Chat.js.map +1 -1
- package/dist/admin/components/AIChat/Chat.mjs +2 -2
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.mjs +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Alert.js.map +1 -1
- package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -1
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -1
- package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
- package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Dropzone.js +2 -6
- package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
- package/dist/admin/components/AIChat/components/Dropzone.mjs +3 -7
- package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.mjs +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Input.js +1 -5
- package/dist/admin/components/AIChat/components/Input.js.map +1 -1
- package/dist/admin/components/AIChat/components/Input.mjs +4 -7
- package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs +2 -2
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -1
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
- package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/animations.js.map +1 -1
- package/dist/admin/components/AIChat/components/animations.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -1
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -1
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/constants.js.map +1 -1
- package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/misc.js.map +1 -1
- package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
- package/dist/admin/components/ApplyConditionButton.js.map +1 -1
- package/dist/admin/components/ApplyConditionButton.mjs.map +1 -1
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -1
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -1
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -1
- package/dist/admin/components/AttributeRow.js.map +1 -1
- package/dist/admin/components/AttributeRow.mjs +1 -1
- package/dist/admin/components/AttributeRow.mjs.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -1
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -1
- package/dist/admin/components/CTBSession/sessionContext.js.map +1 -1
- package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -1
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ComponentList.mjs.map +1 -1
- package/dist/admin/components/ComponentRow.js.map +1 -1
- package/dist/admin/components/ComponentRow.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +2 -2
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
- package/dist/admin/components/DataManager/undoRedo.js.map +1 -1
- package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -1
- package/dist/admin/components/DataManager/useDataManager.js.map +1 -1
- package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
- package/dist/admin/components/DisplayedType.js.map +1 -1
- package/dist/admin/components/DisplayedType.mjs.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +1 -1
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/ExitPrompt.js.map +1 -1
- package/dist/admin/components/ExitPrompt.mjs.map +1 -1
- package/dist/admin/components/Footers.js.map +1 -1
- package/dist/admin/components/Footers.mjs +2 -2
- package/dist/admin/components/Footers.mjs.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/form.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/componentField.js.map +1 -1
- package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/componentForm.js.map +1 -1
- package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -1
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/createUid.js.map +1 -1
- package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
- package/dist/admin/components/FormModalEndActions.js.map +1 -1
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -1
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +1 -5
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +1 -5
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
- package/dist/admin/components/IconPicker/constants.js.map +1 -1
- package/dist/admin/components/IconPicker/constants.mjs.map +1 -1
- package/dist/admin/components/List.js.map +1 -1
- package/dist/admin/components/List.mjs +1 -1
- package/dist/admin/components/List.mjs.map +1 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/PluralName.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SelectComponents.js.map +1 -1
- package/dist/admin/components/SelectComponents.mjs.map +1 -1
- package/dist/admin/components/SelectDateType.js.map +1 -1
- package/dist/admin/components/SelectDateType.mjs.map +1 -1
- package/dist/admin/components/SelectNumber.js.map +1 -1
- package/dist/admin/components/SelectNumber.mjs.map +1 -1
- package/dist/admin/components/SingularName.js.map +1 -1
- package/dist/admin/components/SingularName.mjs.map +1 -1
- package/dist/admin/components/Status.js.map +1 -1
- package/dist/admin/components/Status.mjs.map +1 -1
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/components/TextareaEnum.js.map +1 -1
- package/dist/admin/components/TextareaEnum.mjs.map +1 -1
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/icons/Curve.js.map +1 -1
- package/dist/admin/icons/Curve.mjs.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.mjs +1 -1
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.mjs +1 -1
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
- package/dist/admin/reducers.js +4 -4
- package/dist/admin/reducers.js.map +1 -1
- package/dist/admin/reducers.mjs +4 -4
- package/dist/admin/reducers.mjs.map +1 -1
- package/dist/admin/utils/conditions.js.map +1 -1
- package/dist/admin/utils/conditions.mjs.map +1 -1
- package/dist/admin/utils/findAttribute.js.map +1 -1
- package/dist/admin/utils/findAttribute.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -1
- package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/getTrad.js.map +1 -1
- package/dist/admin/utils/getTrad.mjs.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
- package/dist/admin/utils/makeUnique.js.map +1 -1
- package/dist/admin/utils/makeUnique.mjs.map +1 -1
- package/dist/admin/utils/nameToSlug.js.map +1 -1
- package/dist/admin/utils/nameToSlug.mjs.map +1 -1
- package/dist/admin/utils/parseDateValue.js.map +1 -1
- package/dist/admin/utils/parseDateValue.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/admin/utils/timeFormat.js.map +1 -1
- package/dist/admin/utils/timeFormat.mjs.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/controllers/builder.js.map +1 -1
- package/dist/server/controllers/builder.mjs.map +1 -1
- package/dist/server/controllers/component-categories.js.map +1 -1
- package/dist/server/controllers/component-categories.mjs.map +1 -1
- package/dist/server/controllers/components.js.map +1 -1
- package/dist/server/controllers/components.mjs +1 -1
- package/dist/server/controllers/components.mjs.map +1 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +1 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/schema.js.map +1 -1
- package/dist/server/controllers/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/component-category.js.map +1 -1
- package/dist/server/controllers/validation/component-category.mjs.map +1 -1
- package/dist/server/controllers/validation/component.js.map +1 -1
- package/dist/server/controllers/validation/component.mjs +1 -1
- package/dist/server/controllers/validation/component.mjs.map +1 -1
- package/dist/server/controllers/validation/content-type.js.map +1 -1
- package/dist/server/controllers/validation/content-type.mjs.map +1 -1
- package/dist/server/controllers/validation/data-transform.js.map +1 -1
- package/dist/server/controllers/validation/data-transform.mjs.map +1 -1
- package/dist/server/controllers/validation/model-schema.js.map +1 -1
- package/dist/server/controllers/validation/model-schema.mjs.map +1 -1
- package/dist/server/controllers/validation/relations.js.map +1 -1
- package/dist/server/controllers/validation/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js.map +1 -1
- package/dist/server/controllers/validation/schema.mjs +1 -1
- package/dist/server/controllers/validation/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +0 -1
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +1 -2
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/index.js +8 -8
- package/dist/server/middlewares/is-development-mode.js.map +1 -1
- package/dist/server/middlewares/is-development-mode.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/routes/content-api.js.map +1 -1
- package/dist/server/routes/content-api.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/api-handler.js.map +1 -1
- package/dist/server/services/api-handler.mjs.map +1 -1
- package/dist/server/services/builder.js.map +1 -1
- package/dist/server/services/builder.mjs.map +1 -1
- package/dist/server/services/component-categories.js.map +1 -1
- package/dist/server/services/component-categories.mjs +1 -1
- package/dist/server/services/component-categories.mjs.map +1 -1
- package/dist/server/services/components.js.map +1 -1
- package/dist/server/services/components.mjs +1 -1
- package/dist/server/services/components.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/content-types.mjs +1 -1
- package/dist/server/services/content-types.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.mjs +2 -2
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/index.mjs +3 -3
- package/dist/server/services/schema-builder/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
- package/dist/server/services/schema.js.map +1 -1
- package/dist/server/services/schema.mjs +1 -1
- package/dist/server/services/schema.mjs.map +1 -1
- package/dist/server/utils/attributes.js.map +1 -1
- package/dist/server/utils/attributes.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/typeguards.js.map +1 -1
- package/dist/server/utils/typeguards.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import { yup } from '@strapi/utils';
|
|
3
3
|
import { VALID_UID_TARGETS } from '../../services/constants.mjs';
|
|
4
|
-
import { validators, isValidEnum, areEnumValuesUnique,
|
|
4
|
+
import { validators, isValidName, isValidEnum, areEnumValuesUnique, isValidDefaultJSON, isValidRegExpPattern, UID_REGEX } from './common.mjs';
|
|
5
5
|
|
|
6
6
|
const maxLengthIsGreaterThanOrEqualToMinLength = {
|
|
7
7
|
name: 'isGreaterThanMin',
|
|
@@ -20,7 +20,6 @@ const getTypeValidator = (attribute, { types, modelType, attributes })=>{
|
|
|
20
20
|
private: yup.boolean().nullable(),
|
|
21
21
|
pluginOptions: yup.object(),
|
|
22
22
|
...getTypeShape(attribute, {
|
|
23
|
-
modelType,
|
|
24
23
|
attributes
|
|
25
24
|
})
|
|
26
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\n multiple: yup.boolean(),\n required: validators.required,\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1),\n };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function (value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function (value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test('isArray', '${path} must be an array', (value) => Array.isArray(value))\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isNil","UID_REGEX","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../server/src/controllers/validation/types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup } from '@strapi/utils';\n\nimport type { TestContext } from 'yup';\nimport type { Schema, Struct } from '@strapi/types';\n\nimport { modelTypes, VALID_UID_TARGETS } from '../../services/constants';\nimport {\n validators,\n areEnumValuesUnique,\n isValidDefaultJSON,\n isValidName,\n isValidEnum,\n isValidRegExpPattern,\n UID_REGEX,\n} from './common';\n\nexport type GetTypeValidatorOptions = {\n types: ReadonlyArray<string>;\n attributes?: Struct.SchemaAttributes;\n modelType?: (typeof modelTypes)[keyof typeof modelTypes];\n};\n\nconst maxLengthIsGreaterThanOrEqualToMinLength = {\n name: 'isGreaterThanMin',\n message: 'maxLength must be greater or equal to minLength',\n test(this: TestContext, value: unknown) {\n const { minLength } = this.parent;\n return !(!_.isUndefined(minLength) && !_.isUndefined(value) && (value as number) < minLength);\n },\n};\n\nexport const getTypeValidator = (\n attribute: Schema.Attribute.AnyAttribute,\n { types, modelType, attributes }: GetTypeValidatorOptions\n) => {\n return yup.object({\n type: yup\n .string()\n .oneOf([...types])\n .required(),\n configurable: yup.boolean().nullable(),\n private: yup.boolean().nullable(),\n pluginOptions: yup.object(),\n ...getTypeShape(attribute, { modelType, attributes }),\n } as any);\n};\n\nconst getTypeShape = (attribute: Schema.Attribute.AnyAttribute, { attributes }: any = {}) => {\n switch (attribute.type) {\n /**\n * complex types\n */\n\n case 'media': {\n return {\n multiple: yup.boolean(),\n required: validators.required,\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1),\n };\n }\n\n case 'uid': {\n return {\n required: validators.required,\n targetField: yup\n .string()\n .oneOf(\n Object.keys(attributes!).filter((key) =>\n VALID_UID_TARGETS.includes(_.get(attributes![key] as any, 'type'))\n )\n )\n .nullable(),\n default: yup\n .string()\n .test(\n 'isValidDefaultUID',\n 'cannot define a default UID if the targetField is set',\n function (value) {\n const { targetField } = this.parent;\n return !!(_.isNil(targetField) || _.isNil(value));\n }\n )\n .test(\n 'isValidDefaultRegexUID',\n `\\${path} must match the custom regex or the default one \"${UID_REGEX}\"`,\n function (value) {\n const { regex } = this.parent;\n\n if (regex) {\n return !_.isNil(value) && (value === '' || new RegExp(regex).test(value));\n }\n\n return value === '' || UID_REGEX.test(value as string);\n }\n ),\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(256).test(maxLengthIsGreaterThanOrEqualToMinLength),\n options: yup.object().shape({\n separator: yup.string(),\n lowercase: yup.boolean(),\n decamelize: yup.boolean(),\n customReplacements: yup.array().of(yup.array().of(yup.string()).min(2).max(2)),\n preserveLeadingUnderscore: yup.boolean(),\n }),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n\n /**\n * scalar types\n */\n case 'string': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength.max(255).test(maxLengthIsGreaterThanOrEqualToMinLength),\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'text': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n regex: yup.string().test(isValidRegExpPattern),\n };\n }\n case 'richtext': {\n return {\n default: yup.string(),\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'blocks': {\n return {\n required: validators.required,\n };\n }\n case 'json': {\n return {\n default: yup.mixed().test(isValidDefaultJSON),\n required: validators.required,\n };\n }\n case 'enumeration': {\n return {\n enum: yup\n .array()\n .of(yup.string().test(isValidEnum).required())\n .min(1)\n .test(areEnumValuesUnique)\n .required(),\n default: yup.string().when('enum', (enumVal) => yup.string().oneOf(enumVal)),\n enumName: yup.string().test(isValidName),\n required: validators.required,\n };\n }\n case 'password': {\n return {\n required: validators.required,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'email': {\n return {\n default: yup.string().email(),\n required: validators.required,\n unique: validators.unique,\n minLength: validators.minLength,\n maxLength: validators.maxLength,\n };\n }\n case 'integer': {\n return {\n default: yup.number().integer(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number().integer(),\n max: yup.number().integer(),\n };\n }\n case 'biginteger': {\n return {\n default: yup.string().nullable().matches(/^\\d*$/),\n required: validators.required,\n unique: validators.unique,\n min: yup.string().nullable().matches(/^\\d*$/),\n max: yup.string().nullable().matches(/^\\d*$/),\n };\n }\n case 'float': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'decimal': {\n return {\n default: yup.number(),\n required: validators.required,\n unique: validators.unique,\n min: yup.number(),\n max: yup.number(),\n };\n }\n case 'time':\n case 'datetime':\n case 'date': {\n return {\n default: yup.string(),\n required: validators.required,\n unique: validators.unique,\n };\n }\n case 'boolean': {\n return {\n default: yup.boolean().nullable(),\n required: validators.required,\n };\n }\n\n case 'component': {\n return {\n required: validators.required,\n repeatable: yup.boolean(),\n // TODO: Add correct server validation for nested components\n component: yup.string().required(),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n case 'dynamiczone': {\n return {\n required: validators.required,\n components: yup\n .array()\n .of(yup.string().required())\n .test('isArray', '${path} must be an array', (value) => Array.isArray(value))\n .min(1),\n min: yup.number(),\n max: yup.number(),\n };\n }\n\n default: {\n return {};\n }\n }\n};\n"],"names":["maxLengthIsGreaterThanOrEqualToMinLength","name","message","test","value","minLength","parent","_","isUndefined","getTypeValidator","attribute","types","modelType","attributes","yup","object","type","string","oneOf","required","configurable","boolean","nullable","private","pluginOptions","getTypeShape","multiple","validators","allowedTypes","array","of","min","targetField","Object","keys","filter","key","VALID_UID_TARGETS","includes","get","default","isNil","UID_REGEX","regex","RegExp","maxLength","max","options","shape","separator","lowercase","decamelize","customReplacements","preserveLeadingUnderscore","isValidRegExpPattern","unique","mixed","isValidDefaultJSON","enum","isValidEnum","areEnumValuesUnique","when","enumVal","enumName","isValidName","email","number","integer","matches","repeatable","component","components","Array","isArray"],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
require('@strapi/types');
|
|
4
4
|
var config = require('./config.js');
|
|
5
5
|
var bootstrap = require('./bootstrap.js');
|
|
6
|
-
var index$
|
|
7
|
-
var index$
|
|
8
|
-
var index$
|
|
6
|
+
var index$4 = require('./services/index.js');
|
|
7
|
+
var index$3 = require('./controllers/index.js');
|
|
8
|
+
var index$2 = require('./routes/index.js');
|
|
9
9
|
var register = require('./register.js');
|
|
10
|
-
var index$
|
|
10
|
+
var index$1 = require('./middlewares/index.js');
|
|
11
11
|
|
|
12
12
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
13
13
|
var index = (()=>({
|
|
14
14
|
config,
|
|
15
15
|
bootstrap,
|
|
16
16
|
register,
|
|
17
|
-
services: index$
|
|
18
|
-
controllers: index$
|
|
19
|
-
routes: index$
|
|
20
|
-
middlewares: index$
|
|
17
|
+
services: index$4,
|
|
18
|
+
controllers: index$3,
|
|
19
|
+
routes: index$2,
|
|
20
|
+
middlewares: index$1
|
|
21
21
|
}));
|
|
22
22
|
|
|
23
23
|
module.exports = index;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-development-mode.js","sources":["../../../server/src/middlewares/is-development-mode.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport { errors } from '@strapi/utils';\n\n/**\n * Middleware to ensure Content-Type Builder modifications only happen in development mode\n * This prevents SQL injection vulnerabilities in production by blocking schema modifications\n * when autoReload is disabled.\n */\nexport default async (ctx: Context, next: Next) => {\n const autoReload = strapi.config.get('autoReload');\n\n if (autoReload !== true) {\n // Using a PolicyError to throw a publicly visible message in the API\n throw new errors.PolicyError(\n 'Content-Type Builder modifications are disabled in production mode. Schema changes can only be made when running with autoReload enabled (strapi develop).'\n );\n }\n\n await next();\n};\n"],"names":["ctx","next","autoReload","strapi","config","get","errors","PolicyError"],"mappings":";;;;AAGA;;;;IAKA,wBAAe,CAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"is-development-mode.js","sources":["../../../server/src/middlewares/is-development-mode.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport { errors } from '@strapi/utils';\n\n/**\n * Middleware to ensure Content-Type Builder modifications only happen in development mode\n * This prevents SQL injection vulnerabilities in production by blocking schema modifications\n * when autoReload is disabled.\n */\nexport default async (ctx: Context, next: Next) => {\n const autoReload = strapi.config.get('autoReload');\n\n if (autoReload !== true) {\n // Using a PolicyError to throw a publicly visible message in the API\n throw new errors.PolicyError(\n 'Content-Type Builder modifications are disabled in production mode. Schema changes can only be made when running with autoReload enabled (strapi develop).'\n );\n }\n\n await next();\n};\n"],"names":["ctx","next","autoReload","strapi","config","get","errors","PolicyError"],"mappings":";;;;AAGA;;;;IAKA,wBAAe,CAAA,OAAOA,GAAAA,EAAcC,IAAAA,GAAAA;AAClC,IAAA,MAAMC,UAAAA,GAAaC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,YAAA,CAAA;AAErC,IAAA,IAAIH,eAAe,IAAA,EAAM;;QAEvB,MAAM,IAAII,YAAAA,CAAOC,WAAW,CAC1B,4JAAA,CAAA;AAEJ,IAAA;IAEA,MAAMN,IAAAA,EAAAA;AACR,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-development-mode.mjs","sources":["../../../server/src/middlewares/is-development-mode.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport { errors } from '@strapi/utils';\n\n/**\n * Middleware to ensure Content-Type Builder modifications only happen in development mode\n * This prevents SQL injection vulnerabilities in production by blocking schema modifications\n * when autoReload is disabled.\n */\nexport default async (ctx: Context, next: Next) => {\n const autoReload = strapi.config.get('autoReload');\n\n if (autoReload !== true) {\n // Using a PolicyError to throw a publicly visible message in the API\n throw new errors.PolicyError(\n 'Content-Type Builder modifications are disabled in production mode. Schema changes can only be made when running with autoReload enabled (strapi develop).'\n );\n }\n\n await next();\n};\n"],"names":["ctx","next","autoReload","strapi","config","get","errors","PolicyError"],"mappings":";;AAGA;;;;IAKA,wBAAe,CAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"is-development-mode.mjs","sources":["../../../server/src/middlewares/is-development-mode.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport { errors } from '@strapi/utils';\n\n/**\n * Middleware to ensure Content-Type Builder modifications only happen in development mode\n * This prevents SQL injection vulnerabilities in production by blocking schema modifications\n * when autoReload is disabled.\n */\nexport default async (ctx: Context, next: Next) => {\n const autoReload = strapi.config.get('autoReload');\n\n if (autoReload !== true) {\n // Using a PolicyError to throw a publicly visible message in the API\n throw new errors.PolicyError(\n 'Content-Type Builder modifications are disabled in production mode. Schema changes can only be made when running with autoReload enabled (strapi develop).'\n );\n }\n\n await next();\n};\n"],"names":["ctx","next","autoReload","strapi","config","get","errors","PolicyError"],"mappings":";;AAGA;;;;IAKA,wBAAe,CAAA,OAAOA,GAAAA,EAAcC,IAAAA,GAAAA;AAClC,IAAA,MAAMC,UAAAA,GAAaC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,YAAA,CAAA;AAErC,IAAA,IAAIH,eAAe,IAAA,EAAM;;QAEvB,MAAM,IAAII,MAAAA,CAAOC,WAAW,CAC1B,4JAAA,CAAA;AAEJ,IAAA;IAEA,MAAMN,IAAAA,EAAAA;AACR,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { CSP_DEFAULTS, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n const aiEnabledConfig = strapi.config.get('admin.ai.enabled') !== false;\n const isAIEnabled = aiEnabledConfig && strapi.ee.features.isEnabled('cms-ai');\n\n if (isAIEnabled) {\n const s3Domains = [\n 'strapi-ai-staging.s3.us-east-1.amazonaws.com',\n 'strapi-ai-production.s3.us-east-1.amazonaws.com',\n ];\n\n const defaultImgSrc = CSP_DEFAULTS['img-src'];\n const defaultMediaSrc = CSP_DEFAULTS['media-src'];\n\n // Extend the security middleware configuration to include S3 domains + defaults\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'img-src': [...defaultImgSrc, ...s3Domains],\n 'media-src': [...defaultMediaSrc, ...s3Domains],\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n};\n"],"names":["strapi","aiEnabledConfig","config","get","isAIEnabled","ee","features","isEnabled","s3Domains","defaultImgSrc","CSP_DEFAULTS","defaultMediaSrc","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set"],"mappings":";;;;AAGA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvD,IAAA,MAAMC,kBAAkBD,
|
|
1
|
+
{"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { CSP_DEFAULTS, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n const aiEnabledConfig = strapi.config.get('admin.ai.enabled') !== false;\n const isAIEnabled = aiEnabledConfig && strapi.ee.features.isEnabled('cms-ai');\n\n if (isAIEnabled) {\n const s3Domains = [\n 'strapi-ai-staging.s3.us-east-1.amazonaws.com',\n 'strapi-ai-production.s3.us-east-1.amazonaws.com',\n ];\n\n const defaultImgSrc = CSP_DEFAULTS['img-src'];\n const defaultMediaSrc = CSP_DEFAULTS['media-src'];\n\n // Extend the security middleware configuration to include S3 domains + defaults\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'img-src': [...defaultImgSrc, ...s3Domains],\n 'media-src': [...defaultMediaSrc, ...s3Domains],\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n};\n"],"names":["strapi","aiEnabledConfig","config","get","isAIEnabled","ee","features","isEnabled","s3Domains","defaultImgSrc","CSP_DEFAULTS","defaultMediaSrc","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set"],"mappings":";;;;AAGA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvD,IAAA,MAAMC,kBAAkBD,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,kBAAA,CAAA,KAAwB,KAAA;IAClE,MAAMC,WAAAA,GAAcH,mBAAmBD,MAAAA,CAAOK,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;AAEpE,IAAA,IAAIH,WAAAA,EAAa;AACf,QAAA,MAAMI,SAAAA,GAAY;AAChB,YAAA,8CAAA;AACA,YAAA;AACD,SAAA;QAED,MAAMC,aAAAA,GAAgBC,kBAAY,CAAC,SAAA,CAAU;QAC7C,MAAMC,eAAAA,GAAkBD,kBAAY,CAAC,WAAA,CAAY;;AAGjD,QAAA,MAAME,WAAAA,GAAcZ,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,aAAA,CAAA;QAKtC,MAAMU,qBAAAA,GAAwBC,oCAA8BF,WAAAA,EAAa;YACvEG,IAAAA,EAAM,kBAAA;YACNb,MAAAA,EAAQ;gBACNc,qBAAAA,EAAuB;oBACrBC,UAAAA,EAAY;wBACV,SAAA,EAAW;AAAIR,4BAAAA,GAAAA,aAAAA;AAAkBD,4BAAAA,GAAAA;AAAU,yBAAA;wBAC3C,WAAA,EAAa;AAAIG,4BAAAA,GAAAA,eAAAA;AAAoBH,4BAAAA,GAAAA;AAAU;AACjD;AACF;AACF;AACF,SAAA,CAAA;AAEAR,QAAAA,MAAAA,CAAOE,MAAM,CAACgB,GAAG,CAAC,aAAA,EAAeL,qBAAAA,CAAAA;AACnC,IAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { CSP_DEFAULTS, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n const aiEnabledConfig = strapi.config.get('admin.ai.enabled') !== false;\n const isAIEnabled = aiEnabledConfig && strapi.ee.features.isEnabled('cms-ai');\n\n if (isAIEnabled) {\n const s3Domains = [\n 'strapi-ai-staging.s3.us-east-1.amazonaws.com',\n 'strapi-ai-production.s3.us-east-1.amazonaws.com',\n ];\n\n const defaultImgSrc = CSP_DEFAULTS['img-src'];\n const defaultMediaSrc = CSP_DEFAULTS['media-src'];\n\n // Extend the security middleware configuration to include S3 domains + defaults\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'img-src': [...defaultImgSrc, ...s3Domains],\n 'media-src': [...defaultMediaSrc, ...s3Domains],\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n};\n"],"names":["strapi","aiEnabledConfig","config","get","isAIEnabled","ee","features","isEnabled","s3Domains","defaultImgSrc","CSP_DEFAULTS","defaultMediaSrc","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set"],"mappings":";;AAGA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvD,IAAA,MAAMC,kBAAkBD,
|
|
1
|
+
{"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { CSP_DEFAULTS, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n const aiEnabledConfig = strapi.config.get('admin.ai.enabled') !== false;\n const isAIEnabled = aiEnabledConfig && strapi.ee.features.isEnabled('cms-ai');\n\n if (isAIEnabled) {\n const s3Domains = [\n 'strapi-ai-staging.s3.us-east-1.amazonaws.com',\n 'strapi-ai-production.s3.us-east-1.amazonaws.com',\n ];\n\n const defaultImgSrc = CSP_DEFAULTS['img-src'];\n const defaultMediaSrc = CSP_DEFAULTS['media-src'];\n\n // Extend the security middleware configuration to include S3 domains + defaults\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'img-src': [...defaultImgSrc, ...s3Domains],\n 'media-src': [...defaultMediaSrc, ...s3Domains],\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n};\n"],"names":["strapi","aiEnabledConfig","config","get","isAIEnabled","ee","features","isEnabled","s3Domains","defaultImgSrc","CSP_DEFAULTS","defaultMediaSrc","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set"],"mappings":";;AAGA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvD,IAAA,MAAMC,kBAAkBD,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,kBAAA,CAAA,KAAwB,KAAA;IAClE,MAAMC,WAAAA,GAAcH,mBAAmBD,MAAAA,CAAOK,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;AAEpE,IAAA,IAAIH,WAAAA,EAAa;AACf,QAAA,MAAMI,SAAAA,GAAY;AAChB,YAAA,8CAAA;AACA,YAAA;AACD,SAAA;QAED,MAAMC,aAAAA,GAAgBC,YAAY,CAAC,SAAA,CAAU;QAC7C,MAAMC,eAAAA,GAAkBD,YAAY,CAAC,WAAA,CAAY;;AAGjD,QAAA,MAAME,WAAAA,GAAcZ,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,aAAA,CAAA;QAKtC,MAAMU,qBAAAA,GAAwBC,8BAA8BF,WAAAA,EAAa;YACvEG,IAAAA,EAAM,kBAAA;YACNb,MAAAA,EAAQ;gBACNc,qBAAAA,EAAuB;oBACrBC,UAAAA,EAAY;wBACV,SAAA,EAAW;AAAIR,4BAAAA,GAAAA,aAAAA;AAAkBD,4BAAAA,GAAAA;AAAU,yBAAA;wBAC3C,WAAA,EAAa;AAAIG,4BAAAA,GAAAA,eAAAA;AAAoBH,4BAAAA,GAAAA;AAAU;AACjD;AACF;AACF;AACF,SAAA,CAAA;AAEAR,QAAAA,MAAAA,CAAOE,MAAM,CAACgB,GAAG,CAAC,aAAA,EAAeL,qBAAAA,CAAAA;AACnC,IAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { isDevelopmentMode } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/reserved-names',\n handler: 'builder.getReservedNames',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-types',\n handler: 'content-types.createContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid',\n handler: 'content-types.updateContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/content-types/:uid',\n handler: 'content-types.deleteContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/components',\n handler: 'components.createComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid',\n handler: 'components.updateComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/components/:uid',\n handler: 'components.deleteComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/component-categories/:name',\n handler: 'component-categories.editCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/component-categories/:name',\n handler: 'component-categories.deleteCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/schema',\n handler: 'schema.getSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/update-schema',\n handler: 'schema.updateSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/update-schema-status',\n handler: 'schema.getUpdateSchemaStatus',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions","middlewares","isDevelopmentMode"],"mappings":";;;;AAEA,YAAe;IACbA,IAAM,EAAA,OAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,iBAAA;YACNC,OAAS,EAAA,0BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,gBAAA;YACNC,OAAS,EAAA,+BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,qBAAA;YACNC,OAAS,EAAA,8BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,gBAAA;YACNC,OAAS,EAAA,iCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,qBAAA;YACNC,OAAS,EAAA,iCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,qBAAA;YACNC,OAAS,EAAA,iCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,aAAA;YACNC,OAAS,EAAA,0BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,kBAAA;YACNC,OAAS,EAAA,yBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,aAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,kBAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,kBAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,6BAAA;YACNC,OAAS,EAAA,mCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,6BAAA;YACNC,OAAS,EAAA,qCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,SAAA;YACNC,OAAS,EAAA,kBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,gBAAA;YACNC,OAAS,EAAA,qBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD,iBAAA;gBACDC,WAAa,EAAA;AAACC,oBAAAA;AAAkB;AAClC;AACF,SAAA;AACA,QAAA;YACER,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,uBAAA;YACNC,OAAS,EAAA,8BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA;wBACEC,IAAM,EAAA,uBAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAAoC;AAAC;AAC3D;AACD;AACH;AACF;AACD;AACH,CAAE;;;;"}
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { isDevelopmentMode } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/reserved-names',\n handler: 'builder.getReservedNames',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-types',\n handler: 'content-types.createContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid',\n handler: 'content-types.updateContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/content-types/:uid',\n handler: 'content-types.deleteContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/components',\n handler: 'components.createComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid',\n handler: 'components.updateComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/components/:uid',\n handler: 'components.deleteComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/component-categories/:name',\n handler: 'component-categories.editCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/component-categories/:name',\n handler: 'component-categories.deleteCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/schema',\n handler: 'schema.getSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/update-schema',\n handler: 'schema.updateSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/update-schema-status',\n handler: 'schema.getUpdateSchemaStatus',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions","middlewares","isDevelopmentMode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { isDevelopmentMode } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/reserved-names',\n handler: 'builder.getReservedNames',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-types',\n handler: 'content-types.createContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid',\n handler: 'content-types.updateContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/content-types/:uid',\n handler: 'content-types.deleteContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/components',\n handler: 'components.createComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid',\n handler: 'components.updateComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/components/:uid',\n handler: 'components.deleteComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/component-categories/:name',\n handler: 'component-categories.editCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/component-categories/:name',\n handler: 'component-categories.deleteCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/schema',\n handler: 'schema.getSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/update-schema',\n handler: 'schema.updateSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/update-schema-status',\n handler: 'schema.getUpdateSchemaStatus',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions","middlewares","isDevelopmentMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["import { isDevelopmentMode } from '../middlewares';\n\nexport default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/reserved-names',\n handler: 'builder.getReservedNames',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-types',\n handler: 'content-types.createContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/content-types/:uid',\n handler: 'content-types.updateContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/content-types/:uid',\n handler: 'content-types.deleteContentType',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/components',\n handler: 'components.createComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/components/:uid',\n handler: 'components.updateComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/components/:uid',\n handler: 'components.deleteComponent',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'PUT',\n path: '/component-categories/:name',\n handler: 'component-categories.editCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'DELETE',\n path: '/component-categories/:name',\n handler: 'component-categories.deleteCategory',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/schema',\n handler: 'schema.getSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/update-schema',\n handler: 'schema.updateSchema',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n middlewares: [isDevelopmentMode],\n },\n },\n {\n method: 'GET',\n path: '/update-schema-status',\n handler: 'schema.getUpdateSchemaStatus',\n config: {\n policies: [\n {\n name: 'admin::hasPermissions',\n config: { actions: ['plugin::content-type-builder.read'] },\n },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions","middlewares","isDevelopmentMode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nimport { createContentApiRoutesFactory } from '@strapi/utils';\n\nconst ctUIDRegexp = /^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$/;\nconst componentUIDRegexp = /^[\\w-]+\\.[\\w-]+$/;\n\nconst baseAttributeSchema = z.object({\n type: z.string(),\n configurable: z.literal(false).optional(),\n private: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst mediaAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean(),\n required: z.boolean().optional(),\n allowedTypes: z.array(z.string()).optional(),\n});\n\nconst relationAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('relation'),\n relation: z.string(),\n target: z.string().regex(ctUIDRegexp),\n targetAttribute: z.string().nullable(),\n autoPopulate: z.boolean().optional(),\n mappedBy: z.string().optional(),\n inversedBy: z.string().optional(),\n});\n\nconst componentAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean(),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string().regex(componentUIDRegexp)),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst uidAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().optional(),\n});\n\nconst genericAttributeSchema = z.object({\n type: z.string(),\n required: z.boolean().optional(),\n unique: z.boolean().optional(),\n default: z.unknown().optional(),\n min: z.union([z.number(), z.string()]).optional(),\n max: z.union([z.number(), z.string()]).optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n enum: z.array(z.string()).optional(),\n regex: z.string().optional(),\n private: z.boolean().optional(),\n configurable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst attributeSchema = z.union([\n mediaAttributeSchema,\n relationAttributeSchema,\n componentAttributeSchema,\n dynamicZoneAttributeSchema,\n uidAttributeSchema,\n genericAttributeSchema,\n]);\n\nconst contentTypeSchemaBase = z.object({\n displayName: z.string(),\n singularName: z.string(),\n pluralName: z.string(),\n description: z.string(),\n draftAndPublish: z.boolean(),\n kind: z.enum(['collectionType', 'singleType']),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n visible: z.boolean(),\n restrictRelationsTo: z.array(z.string()).nullable(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reviewWorkflows: z.boolean().optional(),\n populateCreatorFields: z.boolean().optional(),\n comment: z.string().optional(),\n version: z.string().optional(),\n});\n\nconst formattedContentTypeSchema = z.object({\n uid: z.string().regex(ctUIDRegexp),\n plugin: z.string().optional(),\n apiID: z.string(),\n schema: contentTypeSchemaBase,\n});\n\nconst componentSchemaBase = z.object({\n displayName: z.string(),\n description: z.string(),\n icon: z.string().optional(),\n connection: z.string().optional(),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst formattedComponentSchema = z.object({\n uid: z.string().regex(componentUIDRegexp),\n category: z.string(),\n apiId: z.string(),\n schema: componentSchemaBase,\n});\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n return [\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n request: {\n query: { kind: z.enum(['collectionType', 'singleType']) },\n },\n response: z.object({ data: z.array(formattedContentTypeSchema) }),\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n request: {\n params: {\n uid: z.string().regex(ctUIDRegexp),\n },\n },\n response: z.object({ data: formattedContentTypeSchema }),\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n response: z.object({ data: z.array(formattedComponentSchema) }),\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n request: {\n params: {\n uid: z.string().regex(componentUIDRegexp),\n },\n },\n response: z.object({ data: formattedComponentSchema }),\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["ctUIDRegexp","componentUIDRegexp","baseAttributeSchema","z","object","type","string","configurable","literal","optional","private","boolean","pluginOptions","record","unknown","mediaAttributeSchema","extend","multiple","required","allowedTypes","array","relationAttributeSchema","relation","target","regex","targetAttribute","nullable","autoPopulate","mappedBy","inversedBy","componentAttributeSchema","component","repeatable","min","number","max","dynamicZoneAttributeSchema","components","uidAttributeSchema","targetField","genericAttributeSchema","unique","default","union","minLength","maxLength","enum","attributeSchema","contentTypeSchemaBase","displayName","singularName","pluralName","description","draftAndPublish","kind","collectionName","attributes","visible","restrictRelationsTo","options","reviewWorkflows","populateCreatorFields","comment","version","formattedContentTypeSchema","uid","plugin","apiID","schema","componentSchemaBase","icon","connection","formattedComponentSchema","category","apiId","createRoutes","createContentApiRoutesFactory","method","path","handler","request","query","response","data","params"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nimport { createContentApiRoutesFactory } from '@strapi/utils';\n\nconst ctUIDRegexp = /^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$/;\nconst componentUIDRegexp = /^[\\w-]+\\.[\\w-]+$/;\n\nconst baseAttributeSchema = z.object({\n type: z.string(),\n configurable: z.literal(false).optional(),\n private: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst mediaAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean(),\n required: z.boolean().optional(),\n allowedTypes: z.array(z.string()).optional(),\n});\n\nconst relationAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('relation'),\n relation: z.string(),\n target: z.string().regex(ctUIDRegexp),\n targetAttribute: z.string().nullable(),\n autoPopulate: z.boolean().optional(),\n mappedBy: z.string().optional(),\n inversedBy: z.string().optional(),\n});\n\nconst componentAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean(),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string().regex(componentUIDRegexp)),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst uidAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().optional(),\n});\n\nconst genericAttributeSchema = z.object({\n type: z.string(),\n required: z.boolean().optional(),\n unique: z.boolean().optional(),\n default: z.unknown().optional(),\n min: z.union([z.number(), z.string()]).optional(),\n max: z.union([z.number(), z.string()]).optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n enum: z.array(z.string()).optional(),\n regex: z.string().optional(),\n private: z.boolean().optional(),\n configurable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst attributeSchema = z.union([\n mediaAttributeSchema,\n relationAttributeSchema,\n componentAttributeSchema,\n dynamicZoneAttributeSchema,\n uidAttributeSchema,\n genericAttributeSchema,\n]);\n\nconst contentTypeSchemaBase = z.object({\n displayName: z.string(),\n singularName: z.string(),\n pluralName: z.string(),\n description: z.string(),\n draftAndPublish: z.boolean(),\n kind: z.enum(['collectionType', 'singleType']),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n visible: z.boolean(),\n restrictRelationsTo: z.array(z.string()).nullable(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reviewWorkflows: z.boolean().optional(),\n populateCreatorFields: z.boolean().optional(),\n comment: z.string().optional(),\n version: z.string().optional(),\n});\n\nconst formattedContentTypeSchema = z.object({\n uid: z.string().regex(ctUIDRegexp),\n plugin: z.string().optional(),\n apiID: z.string(),\n schema: contentTypeSchemaBase,\n});\n\nconst componentSchemaBase = z.object({\n displayName: z.string(),\n description: z.string(),\n icon: z.string().optional(),\n connection: z.string().optional(),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst formattedComponentSchema = z.object({\n uid: z.string().regex(componentUIDRegexp),\n category: z.string(),\n apiId: z.string(),\n schema: componentSchemaBase,\n});\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n return [\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n request: {\n query: { kind: z.enum(['collectionType', 'singleType']) },\n },\n response: z.object({ data: z.array(formattedContentTypeSchema) }),\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n request: {\n params: {\n uid: z.string().regex(ctUIDRegexp),\n },\n },\n response: z.object({ data: formattedContentTypeSchema }),\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n response: z.object({ data: z.array(formattedComponentSchema) }),\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n request: {\n params: {\n uid: z.string().regex(componentUIDRegexp),\n },\n },\n response: z.object({ data: formattedComponentSchema }),\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["ctUIDRegexp","componentUIDRegexp","baseAttributeSchema","z","object","type","string","configurable","literal","optional","private","boolean","pluginOptions","record","unknown","mediaAttributeSchema","extend","multiple","required","allowedTypes","array","relationAttributeSchema","relation","target","regex","targetAttribute","nullable","autoPopulate","mappedBy","inversedBy","componentAttributeSchema","component","repeatable","min","number","max","dynamicZoneAttributeSchema","components","uidAttributeSchema","targetField","genericAttributeSchema","unique","default","union","minLength","maxLength","enum","attributeSchema","contentTypeSchemaBase","displayName","singularName","pluralName","description","draftAndPublish","kind","collectionName","attributes","visible","restrictRelationsTo","options","reviewWorkflows","populateCreatorFields","comment","version","formattedContentTypeSchema","uid","plugin","apiID","schema","componentSchemaBase","icon","connection","formattedComponentSchema","category","apiId","createRoutes","createContentApiRoutesFactory","method","path","handler","request","query","response","data","params"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nimport { createContentApiRoutesFactory } from '@strapi/utils';\n\nconst ctUIDRegexp = /^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$/;\nconst componentUIDRegexp = /^[\\w-]+\\.[\\w-]+$/;\n\nconst baseAttributeSchema = z.object({\n type: z.string(),\n configurable: z.literal(false).optional(),\n private: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst mediaAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean(),\n required: z.boolean().optional(),\n allowedTypes: z.array(z.string()).optional(),\n});\n\nconst relationAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('relation'),\n relation: z.string(),\n target: z.string().regex(ctUIDRegexp),\n targetAttribute: z.string().nullable(),\n autoPopulate: z.boolean().optional(),\n mappedBy: z.string().optional(),\n inversedBy: z.string().optional(),\n});\n\nconst componentAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean(),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string().regex(componentUIDRegexp)),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst uidAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().optional(),\n});\n\nconst genericAttributeSchema = z.object({\n type: z.string(),\n required: z.boolean().optional(),\n unique: z.boolean().optional(),\n default: z.unknown().optional(),\n min: z.union([z.number(), z.string()]).optional(),\n max: z.union([z.number(), z.string()]).optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n enum: z.array(z.string()).optional(),\n regex: z.string().optional(),\n private: z.boolean().optional(),\n configurable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst attributeSchema = z.union([\n mediaAttributeSchema,\n relationAttributeSchema,\n componentAttributeSchema,\n dynamicZoneAttributeSchema,\n uidAttributeSchema,\n genericAttributeSchema,\n]);\n\nconst contentTypeSchemaBase = z.object({\n displayName: z.string(),\n singularName: z.string(),\n pluralName: z.string(),\n description: z.string(),\n draftAndPublish: z.boolean(),\n kind: z.enum(['collectionType', 'singleType']),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n visible: z.boolean(),\n restrictRelationsTo: z.array(z.string()).nullable(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reviewWorkflows: z.boolean().optional(),\n populateCreatorFields: z.boolean().optional(),\n comment: z.string().optional(),\n version: z.string().optional(),\n});\n\nconst formattedContentTypeSchema = z.object({\n uid: z.string().regex(ctUIDRegexp),\n plugin: z.string().optional(),\n apiID: z.string(),\n schema: contentTypeSchemaBase,\n});\n\nconst componentSchemaBase = z.object({\n displayName: z.string(),\n description: z.string(),\n icon: z.string().optional(),\n connection: z.string().optional(),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst formattedComponentSchema = z.object({\n uid: z.string().regex(componentUIDRegexp),\n category: z.string(),\n apiId: z.string(),\n schema: componentSchemaBase,\n});\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n return [\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n request: {\n query: { kind: z.enum(['collectionType', 'singleType']) },\n },\n response: z.object({ data: z.array(formattedContentTypeSchema) }),\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n request: {\n params: {\n uid: z.string().regex(ctUIDRegexp),\n },\n },\n response: z.object({ data: formattedContentTypeSchema }),\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n response: z.object({ data: z.array(formattedComponentSchema) }),\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n request: {\n params: {\n uid: z.string().regex(componentUIDRegexp),\n },\n },\n response: z.object({ data: formattedComponentSchema }),\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["ctUIDRegexp","componentUIDRegexp","baseAttributeSchema","z","object","type","string","configurable","literal","optional","private","boolean","pluginOptions","record","unknown","mediaAttributeSchema","extend","multiple","required","allowedTypes","array","relationAttributeSchema","relation","target","regex","targetAttribute","nullable","autoPopulate","mappedBy","inversedBy","componentAttributeSchema","component","repeatable","min","number","max","dynamicZoneAttributeSchema","components","uidAttributeSchema","targetField","genericAttributeSchema","unique","default","union","minLength","maxLength","enum","attributeSchema","contentTypeSchemaBase","displayName","singularName","pluralName","description","draftAndPublish","kind","collectionName","attributes","visible","restrictRelationsTo","options","reviewWorkflows","populateCreatorFields","comment","version","formattedContentTypeSchema","uid","plugin","apiID","schema","componentSchemaBase","icon","connection","formattedComponentSchema","category","apiId","createRoutes","createContentApiRoutesFactory","method","path","handler","request","query","response","data","params"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nimport { createContentApiRoutesFactory } from '@strapi/utils';\n\nconst ctUIDRegexp = /^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$/;\nconst componentUIDRegexp = /^[\\w-]+\\.[\\w-]+$/;\n\nconst baseAttributeSchema = z.object({\n type: z.string(),\n configurable: z.literal(false).optional(),\n private: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst mediaAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('media'),\n multiple: z.boolean(),\n required: z.boolean().optional(),\n allowedTypes: z.array(z.string()).optional(),\n});\n\nconst relationAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('relation'),\n relation: z.string(),\n target: z.string().regex(ctUIDRegexp),\n targetAttribute: z.string().nullable(),\n autoPopulate: z.boolean().optional(),\n mappedBy: z.string().optional(),\n inversedBy: z.string().optional(),\n});\n\nconst componentAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('component'),\n component: z.string(),\n repeatable: z.boolean(),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst dynamicZoneAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('dynamiczone'),\n components: z.array(z.string().regex(componentUIDRegexp)),\n required: z.boolean().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n});\n\nconst uidAttributeSchema = baseAttributeSchema.extend({\n type: z.literal('uid'),\n targetField: z.string().optional(),\n});\n\nconst genericAttributeSchema = z.object({\n type: z.string(),\n required: z.boolean().optional(),\n unique: z.boolean().optional(),\n default: z.unknown().optional(),\n min: z.union([z.number(), z.string()]).optional(),\n max: z.union([z.number(), z.string()]).optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n enum: z.array(z.string()).optional(),\n regex: z.string().optional(),\n private: z.boolean().optional(),\n configurable: z.boolean().optional(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst attributeSchema = z.union([\n mediaAttributeSchema,\n relationAttributeSchema,\n componentAttributeSchema,\n dynamicZoneAttributeSchema,\n uidAttributeSchema,\n genericAttributeSchema,\n]);\n\nconst contentTypeSchemaBase = z.object({\n displayName: z.string(),\n singularName: z.string(),\n pluralName: z.string(),\n description: z.string(),\n draftAndPublish: z.boolean(),\n kind: z.enum(['collectionType', 'singleType']),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n visible: z.boolean(),\n restrictRelationsTo: z.array(z.string()).nullable(),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reviewWorkflows: z.boolean().optional(),\n populateCreatorFields: z.boolean().optional(),\n comment: z.string().optional(),\n version: z.string().optional(),\n});\n\nconst formattedContentTypeSchema = z.object({\n uid: z.string().regex(ctUIDRegexp),\n plugin: z.string().optional(),\n apiID: z.string(),\n schema: contentTypeSchemaBase,\n});\n\nconst componentSchemaBase = z.object({\n displayName: z.string(),\n description: z.string(),\n icon: z.string().optional(),\n connection: z.string().optional(),\n collectionName: z.string().optional(),\n attributes: z.record(z.string(), attributeSchema),\n pluginOptions: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst formattedComponentSchema = z.object({\n uid: z.string().regex(componentUIDRegexp),\n category: z.string(),\n apiId: z.string(),\n schema: componentSchemaBase,\n});\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n return [\n {\n method: 'GET',\n path: '/content-types',\n handler: 'content-types.getContentTypes',\n request: {\n query: { kind: z.enum(['collectionType', 'singleType']) },\n },\n response: z.object({ data: z.array(formattedContentTypeSchema) }),\n },\n {\n method: 'GET',\n path: '/content-types/:uid',\n handler: 'content-types.getContentType',\n request: {\n params: {\n uid: z.string().regex(ctUIDRegexp),\n },\n },\n response: z.object({ data: formattedContentTypeSchema }),\n },\n {\n method: 'GET',\n path: '/components',\n handler: 'components.getComponents',\n response: z.object({ data: z.array(formattedComponentSchema) }),\n },\n {\n method: 'GET',\n path: '/components/:uid',\n handler: 'components.getComponent',\n request: {\n params: {\n uid: z.string().regex(componentUIDRegexp),\n },\n },\n response: z.object({ data: formattedComponentSchema }),\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["ctUIDRegexp","componentUIDRegexp","baseAttributeSchema","z","object","type","string","configurable","literal","optional","private","boolean","pluginOptions","record","unknown","mediaAttributeSchema","extend","multiple","required","allowedTypes","array","relationAttributeSchema","relation","target","regex","targetAttribute","nullable","autoPopulate","mappedBy","inversedBy","componentAttributeSchema","component","repeatable","min","number","max","dynamicZoneAttributeSchema","components","uidAttributeSchema","targetField","genericAttributeSchema","unique","default","union","minLength","maxLength","enum","attributeSchema","contentTypeSchemaBase","displayName","singularName","pluralName","description","draftAndPublish","kind","collectionName","attributes","visible","restrictRelationsTo","options","reviewWorkflows","populateCreatorFields","comment","version","formattedContentTypeSchema","uid","plugin","apiID","schema","componentSchemaBase","icon","connection","formattedComponentSchema","category","apiId","createRoutes","createContentApiRoutesFactory","method","path","handler","request","query","response","data","params"],"mappings":";;;AAKA,MAAMA,WAAAA,GAAc,yDAAA;AACpB,MAAMC,kBAAAA,GAAqB,kBAAA;AAE3B,MAAMC,mBAAAA,GAAsBC,CAAAA,CAAEC,MAAM,CAAC;AACnCC,IAAAA,IAAAA,EAAMF,EAAEG,MAAM,EAAA;AACdC,IAAAA,YAAAA,EAAcJ,CAAAA,CAAEK,OAAO,CAAC,KAAA,CAAA,CAAOC,QAAQ,EAAA;IACvCC,OAAAA,EAASP,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC7BG,aAAAA,EAAeT,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIH,CAAAA,CAAEW,OAAO,EAAA,CAAA,CAAIL,QAAQ;AAC3D,CAAA,CAAA;AAEA,MAAMM,oBAAAA,GAAuBb,mBAAAA,CAAoBc,MAAM,CAAC;IACtDX,IAAAA,EAAMF,CAAAA,CAAEK,OAAO,CAAC,OAAA,CAAA;AAChBS,IAAAA,QAAAA,EAAUd,EAAEQ,OAAO,EAAA;IACnBO,QAAAA,EAAUf,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;AAC9BU,IAAAA,YAAAA,EAAchB,EAAEiB,KAAK,CAACjB,CAAAA,CAAEG,MAAM,IAAIG,QAAQ;AAC5C,CAAA,CAAA;AAEA,MAAMY,uBAAAA,GAA0BnB,mBAAAA,CAAoBc,MAAM,CAAC;IACzDX,IAAAA,EAAMF,CAAAA,CAAEK,OAAO,CAAC,UAAA,CAAA;AAChBc,IAAAA,QAAAA,EAAUnB,EAAEG,MAAM,EAAA;AAClBiB,IAAAA,MAAAA,EAAQpB,CAAAA,CAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACxB,WAAAA,CAAAA;IACzByB,eAAAA,EAAiBtB,CAAAA,CAAEG,MAAM,EAAA,CAAGoB,QAAQ,EAAA;IACpCC,YAAAA,EAAcxB,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAClCmB,QAAAA,EAAUzB,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;IAC7BoB,UAAAA,EAAY1B,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ;AACjC,CAAA,CAAA;AAEA,MAAMqB,wBAAAA,GAA2B5B,mBAAAA,CAAoBc,MAAM,CAAC;IAC1DX,IAAAA,EAAMF,CAAAA,CAAEK,OAAO,CAAC,WAAA,CAAA;AAChBuB,IAAAA,SAAAA,EAAW5B,EAAEG,MAAM,EAAA;AACnB0B,IAAAA,UAAAA,EAAY7B,EAAEQ,OAAO,EAAA;IACrBO,QAAAA,EAAUf,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC9BwB,GAAAA,EAAK9B,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ,EAAA;IACxB0B,GAAAA,EAAKhC,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAM2B,0BAAAA,GAA6BlC,mBAAAA,CAAoBc,MAAM,CAAC;IAC5DX,IAAAA,EAAMF,CAAAA,CAAEK,OAAO,CAAC,aAAA,CAAA;AAChB6B,IAAAA,UAAAA,EAAYlC,EAAEiB,KAAK,CAACjB,EAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACvB,kBAAAA,CAAAA,CAAAA;IACrCiB,QAAAA,EAAUf,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC9BwB,GAAAA,EAAK9B,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ,EAAA;IACxB0B,GAAAA,EAAKhC,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ;AAC1B,CAAA,CAAA;AAEA,MAAM6B,kBAAAA,GAAqBpC,mBAAAA,CAAoBc,MAAM,CAAC;IACpDX,IAAAA,EAAMF,CAAAA,CAAEK,OAAO,CAAC,KAAA,CAAA;IAChB+B,WAAAA,EAAapC,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ;AAClC,CAAA,CAAA;AAEA,MAAM+B,sBAAAA,GAAyBrC,CAAAA,CAAEC,MAAM,CAAC;AACtCC,IAAAA,IAAAA,EAAMF,EAAEG,MAAM,EAAA;IACdY,QAAAA,EAAUf,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC9BgC,MAAAA,EAAQtC,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC5BiC,OAAAA,EAASvC,CAAAA,CAAEW,OAAO,EAAA,CAAGL,QAAQ,EAAA;IAC7BwB,GAAAA,EAAK9B,CAAAA,CAAEwC,KAAK,CAAC;AAACxC,QAAAA,CAAAA,CAAE+B,MAAM,EAAA;AAAI/B,QAAAA,CAAAA,CAAEG,MAAM;AAAG,KAAA,CAAA,CAAEG,QAAQ,EAAA;IAC/C0B,GAAAA,EAAKhC,CAAAA,CAAEwC,KAAK,CAAC;AAACxC,QAAAA,CAAAA,CAAE+B,MAAM,EAAA;AAAI/B,QAAAA,CAAAA,CAAEG,MAAM;AAAG,KAAA,CAAA,CAAEG,QAAQ,EAAA;IAC/CmC,SAAAA,EAAWzC,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ,EAAA;IAC9BoC,SAAAA,EAAW1C,CAAAA,CAAE+B,MAAM,EAAA,CAAGzB,QAAQ,EAAA;AAC9BqC,IAAAA,IAAAA,EAAM3C,EAAEiB,KAAK,CAACjB,CAAAA,CAAEG,MAAM,IAAIG,QAAQ,EAAA;IAClCe,KAAAA,EAAOrB,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;IAC1BC,OAAAA,EAASP,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC7BF,YAAAA,EAAcJ,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAClCG,aAAAA,EAAeT,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIH,CAAAA,CAAEW,OAAO,EAAA,CAAA,CAAIL,QAAQ;AAC3D,CAAA,CAAA;AAEA,MAAMsC,eAAAA,GAAkB5C,CAAAA,CAAEwC,KAAK,CAAC;AAC9B5B,IAAAA,oBAAAA;AACAM,IAAAA,uBAAAA;AACAS,IAAAA,wBAAAA;AACAM,IAAAA,0BAAAA;AACAE,IAAAA,kBAAAA;AACAE,IAAAA;AACD,CAAA,CAAA;AAED,MAAMQ,qBAAAA,GAAwB7C,CAAAA,CAAEC,MAAM,CAAC;AACrC6C,IAAAA,WAAAA,EAAa9C,EAAEG,MAAM,EAAA;AACrB4C,IAAAA,YAAAA,EAAc/C,EAAEG,MAAM,EAAA;AACtB6C,IAAAA,UAAAA,EAAYhD,EAAEG,MAAM,EAAA;AACpB8C,IAAAA,WAAAA,EAAajD,EAAEG,MAAM,EAAA;AACrB+C,IAAAA,eAAAA,EAAiBlD,EAAEQ,OAAO,EAAA;IAC1B2C,IAAAA,EAAMnD,CAAAA,CAAE2C,IAAI,CAAC;AAAC,QAAA,gBAAA;AAAkB,QAAA;AAAa,KAAA,CAAA;IAC7CS,cAAAA,EAAgBpD,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACnC+C,IAAAA,UAAAA,EAAYrD,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIyC,eAAAA,CAAAA;AACjCU,IAAAA,OAAAA,EAAStD,EAAEQ,OAAO,EAAA;AAClB+C,IAAAA,mBAAAA,EAAqBvD,EAAEiB,KAAK,CAACjB,CAAAA,CAAEG,MAAM,IAAIoB,QAAQ,EAAA;IACjDd,aAAAA,EAAeT,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIH,CAAAA,CAAEW,OAAO,EAAA,CAAA,CAAIL,QAAQ,EAAA;IACzDkD,OAAAA,EAASxD,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIH,CAAAA,CAAEW,OAAO,EAAA,CAAA,CAAIL,QAAQ,EAAA;IACnDmD,eAAAA,EAAiBzD,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IACrCoD,qBAAAA,EAAuB1D,CAAAA,CAAEQ,OAAO,EAAA,CAAGF,QAAQ,EAAA;IAC3CqD,OAAAA,EAAS3D,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;IAC5BsD,OAAAA,EAAS5D,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ;AAC9B,CAAA,CAAA;AAEA,MAAMuD,0BAAAA,GAA6B7D,CAAAA,CAAEC,MAAM,CAAC;AAC1C6D,IAAAA,GAAAA,EAAK9D,CAAAA,CAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACxB,WAAAA,CAAAA;IACtBkE,MAAAA,EAAQ/D,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AAC3B0D,IAAAA,KAAAA,EAAOhE,EAAEG,MAAM,EAAA;IACf8D,MAAAA,EAAQpB;AACV,CAAA,CAAA;AAEA,MAAMqB,mBAAAA,GAAsBlE,CAAAA,CAAEC,MAAM,CAAC;AACnC6C,IAAAA,WAAAA,EAAa9C,EAAEG,MAAM,EAAA;AACrB8C,IAAAA,WAAAA,EAAajD,EAAEG,MAAM,EAAA;IACrBgE,IAAAA,EAAMnE,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;IACzB8D,UAAAA,EAAYpE,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;IAC/B8C,cAAAA,EAAgBpD,CAAAA,CAAEG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACnC+C,IAAAA,UAAAA,EAAYrD,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIyC,eAAAA,CAAAA;IACjCnC,aAAAA,EAAeT,CAAAA,CAAEU,MAAM,CAACV,CAAAA,CAAEG,MAAM,EAAA,EAAIH,CAAAA,CAAEW,OAAO,EAAA,CAAA,CAAIL,QAAQ;AAC3D,CAAA,CAAA;AAEA,MAAM+D,wBAAAA,GAA2BrE,CAAAA,CAAEC,MAAM,CAAC;AACxC6D,IAAAA,GAAAA,EAAK9D,CAAAA,CAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACvB,kBAAAA,CAAAA;AACtBwE,IAAAA,QAAAA,EAAUtE,EAAEG,MAAM,EAAA;AAClBoE,IAAAA,KAAAA,EAAOvE,EAAEG,MAAM,EAAA;IACf8D,MAAAA,EAAQC;AACV,CAAA,CAAA;AAEA,MAAMM,eAAeC,6BAAAA,CAA8B,IAAA;IACjD,OAAO;AACL,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,gBAAA;YACNC,OAAAA,EAAS,+BAAA;YACTC,OAAAA,EAAS;gBACPC,KAAAA,EAAO;oBAAE3B,IAAAA,EAAMnD,CAAAA,CAAE2C,IAAI,CAAC;AAAC,wBAAA,gBAAA;AAAkB,wBAAA;AAAa,qBAAA;AAAE;AAC1D,aAAA;YACAoC,QAAAA,EAAU/E,CAAAA,CAAEC,MAAM,CAAC;gBAAE+E,IAAAA,EAAMhF,CAAAA,CAAEiB,KAAK,CAAC4C,0BAAAA;AAA4B,aAAA;AACjE,SAAA;AACA,QAAA;YACEa,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,qBAAA;YACNC,OAAAA,EAAS,8BAAA;YACTC,OAAAA,EAAS;gBACPI,MAAAA,EAAQ;AACNnB,oBAAAA,GAAAA,EAAK9D,CAAAA,CAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACxB,WAAAA;AACxB;AACF,aAAA;YACAkF,QAAAA,EAAU/E,CAAAA,CAAEC,MAAM,CAAC;gBAAE+E,IAAAA,EAAMnB;AAA2B,aAAA;AACxD,SAAA;AACA,QAAA;YACEa,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,aAAA;YACNC,OAAAA,EAAS,0BAAA;YACTG,QAAAA,EAAU/E,CAAAA,CAAEC,MAAM,CAAC;gBAAE+E,IAAAA,EAAMhF,CAAAA,CAAEiB,KAAK,CAACoD,wBAAAA;AAA0B,aAAA;AAC/D,SAAA;AACA,QAAA;YACEK,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,kBAAA;YACNC,OAAAA,EAAS,yBAAA;YACTC,OAAAA,EAAS;gBACPI,MAAAA,EAAQ;AACNnB,oBAAAA,GAAAA,EAAK9D,CAAAA,CAAEG,MAAM,EAAA,CAAGkB,KAAK,CAACvB,kBAAAA;AACxB;AACF,aAAA;YACAiF,QAAAA,EAAU/E,CAAAA,CAAEC,MAAM,CAAC;gBAAE+E,IAAAA,EAAMX;AAAyB,aAAA;AACtD;AACD,KAAA;AACH,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,aAAA,EAAeC;AACjB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,aAAA,EAAeC;AACjB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-handler.js","sources":["../../../server/src/services/api-handler.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fse from 'fs-extra';\nimport type { Internal } from '@strapi/types';\n\n/**\n * Deletes the API folder of a contentType\n */\nexport async function clear(uid: Internal.UID.ContentType) {\n // TODO double check if this is the correct way to get the apiName\n const { apiName, modelName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n\n await recursiveRemoveFiles(apiFolder, createDeleteApiFunction(modelName));\n await deleteBackup(uid);\n}\n\n/**\n * Backups the API folder of a contentType\n * @param {string} uid content type uid\n */\nexport async function backup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n // backup the api folder\n await fse.copy(apiFolder, backupFolder);\n}\n\n/**\n * Deletes an API backup folder\n */\nasync function deleteBackup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const backupFolder = path.join(strapi.dirs.app.api, '.backup');\n const apiBackupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n await fse.remove(apiBackupFolder);\n\n const list = await fse.readdir(backupFolder);\n if (list.length === 0) {\n await fse.remove(backupFolder);\n }\n}\n\n/**\n * Rollbacks the API folder of a contentType\n */\nexport async function rollback(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n try {\n await fse.access(backupFolder);\n } catch {\n throw new Error('Cannot rollback api that was not backed up');\n }\n\n await fse.remove(apiFolder);\n await fse.copy(backupFolder, apiFolder);\n await deleteBackup(uid);\n}\n\n/**\n * Creates a delete function to clear an api folder\n */\nconst createDeleteApiFunction = (baseName: string) => {\n /**\n * Delets a file in an api.\n * Will only update routes.json instead of deleting it if other routes are present\n */\n return async (filePath: string) => {\n const fileName = path.basename(filePath, path.extname(filePath));\n\n const isSchemaFile = filePath.endsWith(`${baseName}/schema.json`);\n if (fileName === baseName || isSchemaFile) {\n return fse.remove(filePath);\n }\n };\n};\n\n/**\n * Deletes a folder recursively using a delete function\n * @param {string} folder folder to delete\n */\nconst recursiveRemoveFiles = async (folder: string, deleteFn: (file: string) => unknown) => {\n const filesName = await fse.readdir(folder);\n\n for (const fileName of filesName) {\n const filePath = path.join(folder, fileName);\n\n const stat = await fse.stat(filePath);\n\n if (stat.isDirectory()) {\n await recursiveRemoveFiles(filePath, deleteFn);\n } else {\n await deleteFn(filePath);\n }\n }\n\n const files = await fse.readdir(folder);\n if (files.length === 0) {\n await fse.remove(folder);\n }\n};\n"],"names":["clear","uid","apiName","modelName","strapi","contentTypes","apiFolder","path","join","dirs","app","api","recursiveRemoveFiles","createDeleteApiFunction","deleteBackup","backup","backupFolder","fse","copy","apiBackupFolder","remove","list","readdir","length","rollback","access","Error","baseName","filePath","fileName","basename","extname","isSchemaFile","endsWith","folder","deleteFn","filesName","stat","isDirectory","files"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;IAGO,eAAeA,KAAAA,CAAMC,GAA6B,EAAA;;IAEvD,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,MAAAA,CAAOC,YAAY,CAACJ,
|
|
1
|
+
{"version":3,"file":"api-handler.js","sources":["../../../server/src/services/api-handler.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fse from 'fs-extra';\nimport type { Internal } from '@strapi/types';\n\n/**\n * Deletes the API folder of a contentType\n */\nexport async function clear(uid: Internal.UID.ContentType) {\n // TODO double check if this is the correct way to get the apiName\n const { apiName, modelName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n\n await recursiveRemoveFiles(apiFolder, createDeleteApiFunction(modelName));\n await deleteBackup(uid);\n}\n\n/**\n * Backups the API folder of a contentType\n * @param {string} uid content type uid\n */\nexport async function backup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n // backup the api folder\n await fse.copy(apiFolder, backupFolder);\n}\n\n/**\n * Deletes an API backup folder\n */\nasync function deleteBackup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const backupFolder = path.join(strapi.dirs.app.api, '.backup');\n const apiBackupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n await fse.remove(apiBackupFolder);\n\n const list = await fse.readdir(backupFolder);\n if (list.length === 0) {\n await fse.remove(backupFolder);\n }\n}\n\n/**\n * Rollbacks the API folder of a contentType\n */\nexport async function rollback(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n try {\n await fse.access(backupFolder);\n } catch {\n throw new Error('Cannot rollback api that was not backed up');\n }\n\n await fse.remove(apiFolder);\n await fse.copy(backupFolder, apiFolder);\n await deleteBackup(uid);\n}\n\n/**\n * Creates a delete function to clear an api folder\n */\nconst createDeleteApiFunction = (baseName: string) => {\n /**\n * Delets a file in an api.\n * Will only update routes.json instead of deleting it if other routes are present\n */\n return async (filePath: string) => {\n const fileName = path.basename(filePath, path.extname(filePath));\n\n const isSchemaFile = filePath.endsWith(`${baseName}/schema.json`);\n if (fileName === baseName || isSchemaFile) {\n return fse.remove(filePath);\n }\n };\n};\n\n/**\n * Deletes a folder recursively using a delete function\n * @param {string} folder folder to delete\n */\nconst recursiveRemoveFiles = async (folder: string, deleteFn: (file: string) => unknown) => {\n const filesName = await fse.readdir(folder);\n\n for (const fileName of filesName) {\n const filePath = path.join(folder, fileName);\n\n const stat = await fse.stat(filePath);\n\n if (stat.isDirectory()) {\n await recursiveRemoveFiles(filePath, deleteFn);\n } else {\n await deleteFn(filePath);\n }\n }\n\n const files = await fse.readdir(folder);\n if (files.length === 0) {\n await fse.remove(folder);\n }\n};\n"],"names":["clear","uid","apiName","modelName","strapi","contentTypes","apiFolder","path","join","dirs","app","api","recursiveRemoveFiles","createDeleteApiFunction","deleteBackup","backup","backupFolder","fse","copy","apiBackupFolder","remove","list","readdir","length","rollback","access","Error","baseName","filePath","fileName","basename","extname","isSchemaFile","endsWith","folder","deleteFn","filesName","stat","isDirectory","files"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-handler.mjs","sources":["../../../server/src/services/api-handler.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fse from 'fs-extra';\nimport type { Internal } from '@strapi/types';\n\n/**\n * Deletes the API folder of a contentType\n */\nexport async function clear(uid: Internal.UID.ContentType) {\n // TODO double check if this is the correct way to get the apiName\n const { apiName, modelName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n\n await recursiveRemoveFiles(apiFolder, createDeleteApiFunction(modelName));\n await deleteBackup(uid);\n}\n\n/**\n * Backups the API folder of a contentType\n * @param {string} uid content type uid\n */\nexport async function backup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n // backup the api folder\n await fse.copy(apiFolder, backupFolder);\n}\n\n/**\n * Deletes an API backup folder\n */\nasync function deleteBackup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const backupFolder = path.join(strapi.dirs.app.api, '.backup');\n const apiBackupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n await fse.remove(apiBackupFolder);\n\n const list = await fse.readdir(backupFolder);\n if (list.length === 0) {\n await fse.remove(backupFolder);\n }\n}\n\n/**\n * Rollbacks the API folder of a contentType\n */\nexport async function rollback(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n try {\n await fse.access(backupFolder);\n } catch {\n throw new Error('Cannot rollback api that was not backed up');\n }\n\n await fse.remove(apiFolder);\n await fse.copy(backupFolder, apiFolder);\n await deleteBackup(uid);\n}\n\n/**\n * Creates a delete function to clear an api folder\n */\nconst createDeleteApiFunction = (baseName: string) => {\n /**\n * Delets a file in an api.\n * Will only update routes.json instead of deleting it if other routes are present\n */\n return async (filePath: string) => {\n const fileName = path.basename(filePath, path.extname(filePath));\n\n const isSchemaFile = filePath.endsWith(`${baseName}/schema.json`);\n if (fileName === baseName || isSchemaFile) {\n return fse.remove(filePath);\n }\n };\n};\n\n/**\n * Deletes a folder recursively using a delete function\n * @param {string} folder folder to delete\n */\nconst recursiveRemoveFiles = async (folder: string, deleteFn: (file: string) => unknown) => {\n const filesName = await fse.readdir(folder);\n\n for (const fileName of filesName) {\n const filePath = path.join(folder, fileName);\n\n const stat = await fse.stat(filePath);\n\n if (stat.isDirectory()) {\n await recursiveRemoveFiles(filePath, deleteFn);\n } else {\n await deleteFn(filePath);\n }\n }\n\n const files = await fse.readdir(folder);\n if (files.length === 0) {\n await fse.remove(folder);\n }\n};\n"],"names":["clear","uid","apiName","modelName","strapi","contentTypes","apiFolder","path","join","dirs","app","api","recursiveRemoveFiles","createDeleteApiFunction","deleteBackup","backup","backupFolder","fse","copy","apiBackupFolder","remove","list","readdir","length","rollback","access","Error","baseName","filePath","fileName","basename","extname","isSchemaFile","endsWith","folder","deleteFn","filesName","stat","isDirectory","files"],"mappings":";;;AAIA;;IAGO,eAAeA,KAAAA,CAAMC,GAA6B,EAAA;;IAEvD,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,MAAAA,CAAOC,YAAY,CAACJ,
|
|
1
|
+
{"version":3,"file":"api-handler.mjs","sources":["../../../server/src/services/api-handler.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fse from 'fs-extra';\nimport type { Internal } from '@strapi/types';\n\n/**\n * Deletes the API folder of a contentType\n */\nexport async function clear(uid: Internal.UID.ContentType) {\n // TODO double check if this is the correct way to get the apiName\n const { apiName, modelName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n\n await recursiveRemoveFiles(apiFolder, createDeleteApiFunction(modelName));\n await deleteBackup(uid);\n}\n\n/**\n * Backups the API folder of a contentType\n * @param {string} uid content type uid\n */\nexport async function backup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n // backup the api folder\n await fse.copy(apiFolder, backupFolder);\n}\n\n/**\n * Deletes an API backup folder\n */\nasync function deleteBackup(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const backupFolder = path.join(strapi.dirs.app.api, '.backup');\n const apiBackupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n await fse.remove(apiBackupFolder);\n\n const list = await fse.readdir(backupFolder);\n if (list.length === 0) {\n await fse.remove(backupFolder);\n }\n}\n\n/**\n * Rollbacks the API folder of a contentType\n */\nexport async function rollback(uid: Internal.UID.ContentType) {\n const { apiName } = strapi.contentTypes[uid] as any;\n\n const apiFolder = path.join(strapi.dirs.app.api, apiName);\n const backupFolder = path.join(strapi.dirs.app.api, '.backup', apiName);\n\n try {\n await fse.access(backupFolder);\n } catch {\n throw new Error('Cannot rollback api that was not backed up');\n }\n\n await fse.remove(apiFolder);\n await fse.copy(backupFolder, apiFolder);\n await deleteBackup(uid);\n}\n\n/**\n * Creates a delete function to clear an api folder\n */\nconst createDeleteApiFunction = (baseName: string) => {\n /**\n * Delets a file in an api.\n * Will only update routes.json instead of deleting it if other routes are present\n */\n return async (filePath: string) => {\n const fileName = path.basename(filePath, path.extname(filePath));\n\n const isSchemaFile = filePath.endsWith(`${baseName}/schema.json`);\n if (fileName === baseName || isSchemaFile) {\n return fse.remove(filePath);\n }\n };\n};\n\n/**\n * Deletes a folder recursively using a delete function\n * @param {string} folder folder to delete\n */\nconst recursiveRemoveFiles = async (folder: string, deleteFn: (file: string) => unknown) => {\n const filesName = await fse.readdir(folder);\n\n for (const fileName of filesName) {\n const filePath = path.join(folder, fileName);\n\n const stat = await fse.stat(filePath);\n\n if (stat.isDirectory()) {\n await recursiveRemoveFiles(filePath, deleteFn);\n } else {\n await deleteFn(filePath);\n }\n }\n\n const files = await fse.readdir(folder);\n if (files.length === 0) {\n await fse.remove(folder);\n }\n};\n"],"names":["clear","uid","apiName","modelName","strapi","contentTypes","apiFolder","path","join","dirs","app","api","recursiveRemoveFiles","createDeleteApiFunction","deleteBackup","backup","backupFolder","fse","copy","apiBackupFolder","remove","list","readdir","length","rollback","access","Error","baseName","filePath","fileName","basename","extname","isSchemaFile","endsWith","folder","deleteFn","filesName","stat","isDirectory","files"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sources":["../../../server/src/services/builder.ts"],"sourcesContent":["import { snakeCase } from 'lodash/fp';\n\n// use snake_case\nexport const reservedAttributes = [\n // TODO: these need to come from a centralized place so we don't break things accidentally in the future and can share them outside the CTB, for example on Strapi bootstrap prior to schema db sync\n\n // ID fields\n 'id',\n 'document_id',\n\n // Creator fields\n 'created_at',\n 'updated_at',\n 'published_at',\n // V6: we will need to add first_published_at when it becomes the default behaviour\n 'created_by_id',\n 'updated_by_id',\n // does not actually conflict because the fields are called *_by_id but we'll leave it to avoid confusion\n 'created_by',\n 'updated_by',\n\n // Used for Strapi functionality\n 'entry_id',\n 'status',\n 'localizations',\n 'meta',\n 'locale',\n '__component',\n '__contentType',\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\n// use snake_case\nexport const reservedModels = [\n 'boolean',\n 'date',\n 'date_time',\n 'time',\n 'upload',\n 'document',\n 'then', // no longer an issue but still restricting for being a javascript keyword\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\nexport const getReservedNames = () => {\n return {\n models: reservedModels,\n attributes: reservedAttributes,\n };\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedModelName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedModels.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedModels\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedAttributeName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedAttributes.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedAttributes\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n"],"names":["reservedAttributes","reservedModels","getReservedNames","models","attributes","isReservedModelName","name","snakeCaseName","snakeCase","includes","filter","key","endsWith","map","slice","some","prefix","startsWith","isReservedAttributeName"],"mappings":";;;;AAEA;MACaA,
|
|
1
|
+
{"version":3,"file":"builder.js","sources":["../../../server/src/services/builder.ts"],"sourcesContent":["import { snakeCase } from 'lodash/fp';\n\n// use snake_case\nexport const reservedAttributes = [\n // TODO: these need to come from a centralized place so we don't break things accidentally in the future and can share them outside the CTB, for example on Strapi bootstrap prior to schema db sync\n\n // ID fields\n 'id',\n 'document_id',\n\n // Creator fields\n 'created_at',\n 'updated_at',\n 'published_at',\n // V6: we will need to add first_published_at when it becomes the default behaviour\n 'created_by_id',\n 'updated_by_id',\n // does not actually conflict because the fields are called *_by_id but we'll leave it to avoid confusion\n 'created_by',\n 'updated_by',\n\n // Used for Strapi functionality\n 'entry_id',\n 'status',\n 'localizations',\n 'meta',\n 'locale',\n '__component',\n '__contentType',\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\n// use snake_case\nexport const reservedModels = [\n 'boolean',\n 'date',\n 'date_time',\n 'time',\n 'upload',\n 'document',\n 'then', // no longer an issue but still restricting for being a javascript keyword\n\n // We support ending with * to denote prefixes\n 'strapi*',\n '_strapi*',\n '__strapi*',\n];\n\nexport const getReservedNames = () => {\n return {\n models: reservedModels,\n attributes: reservedAttributes,\n };\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedModelName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedModels.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedModels\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n\n// compare snake case to check the actual column names that will be used in the database\nexport const isReservedAttributeName = (name: string) => {\n const snakeCaseName = snakeCase(name);\n if (reservedAttributes.includes(snakeCaseName)) {\n return true;\n }\n\n if (\n reservedAttributes\n .filter((key) => key.endsWith('*'))\n .map((key) => key.slice(0, -1))\n .some((prefix) => snakeCaseName.startsWith(prefix))\n ) {\n return true;\n }\n\n return false;\n};\n"],"names":["reservedAttributes","reservedModels","getReservedNames","models","attributes","isReservedModelName","name","snakeCaseName","snakeCase","includes","filter","key","endsWith","map","slice","some","prefix","startsWith","isReservedAttributeName"],"mappings":";;;;AAEA;MACaA,kBAAAA,GAAqB;;;AAIhC,IAAA,IAAA;AACA,IAAA,aAAA;;AAGA,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,cAAA;;AAEA,IAAA,eAAA;AACA,IAAA,eAAA;;AAEA,IAAA,YAAA;AACA,IAAA,YAAA;;AAGA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,eAAA;AACA,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,aAAA;AACA,IAAA,eAAA;;AAGA,IAAA,SAAA;AACA,IAAA,UAAA;AACA,IAAA;;AAGF;MACaC,cAAAA,GAAiB;AAC5B,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,WAAA;AACA,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;;AAGA,IAAA,SAAA;AACA,IAAA,UAAA;AACA,IAAA;;MAGWC,gBAAAA,GAAmB,IAAA;IAC9B,OAAO;QACLC,MAAAA,EAAQF,cAAAA;QACRG,UAAAA,EAAYJ;AACd,KAAA;AACF;AAEA;AACO,MAAMK,sBAAsB,CAACC,IAAAA,GAAAA;AAClC,IAAA,MAAMC,gBAAgBC,YAAAA,CAAUF,IAAAA,CAAAA;IAChC,IAAIL,cAAAA,CAAeQ,QAAQ,CAACF,aAAAA,CAAAA,EAAgB;QAC1C,OAAO,IAAA;AACT,IAAA;IAEA,IACEN,cAAAA,CACGS,MAAM,CAAC,CAACC,GAAAA,GAAQA,GAAAA,CAAIC,QAAQ,CAAC,GAAA,CAAA,CAAA,CAC7BC,GAAG,CAAC,CAACF,GAAAA,GAAQA,IAAIG,KAAK,CAAC,CAAA,EAAG,EAAC,CAAA,CAAA,CAC3BC,IAAI,CAAC,CAACC,MAAAA,GAAWT,aAAAA,CAAcU,UAAU,CAACD,MAAAA,CAAAA,CAAAA,EAC7C;QACA,OAAO,IAAA;AACT,IAAA;IAEA,OAAO,KAAA;AACT;AAEA;AACO,MAAME,0BAA0B,CAACZ,IAAAA,GAAAA;AACtC,IAAA,MAAMC,gBAAgBC,YAAAA,CAAUF,IAAAA,CAAAA;IAChC,IAAIN,kBAAAA,CAAmBS,QAAQ,CAACF,aAAAA,CAAAA,EAAgB;QAC9C,OAAO,IAAA;AACT,IAAA;IAEA,IACEP,kBAAAA,CACGU,MAAM,CAAC,CAACC,GAAAA,GAAQA,GAAAA,CAAIC,QAAQ,CAAC,GAAA,CAAA,CAAA,CAC7BC,GAAG,CAAC,CAACF,GAAAA,GAAQA,IAAIG,KAAK,CAAC,CAAA,EAAG,EAAC,CAAA,CAAA,CAC3BC,IAAI,CAAC,CAACC,MAAAA,GAAWT,aAAAA,CAAcU,UAAU,CAACD,MAAAA,CAAAA,CAAAA,EAC7C;QACA,OAAO,IAAA;AACT,IAAA;IAEA,OAAO,KAAA;AACT;;;;;;;;"}
|