@strapi/content-type-builder 5.12.1 → 5.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/AllowedTypesSelect.js +78 -0
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -0
- package/dist/admin/components/AllowedTypesSelect.mjs +76 -0
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -0
- package/dist/admin/components/AttributeIcon.js +72 -0
- package/dist/admin/components/AttributeIcon.js.map +1 -0
- package/dist/admin/components/AttributeIcon.mjs +70 -0
- package/dist/admin/components/AttributeIcon.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js +31 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs +29 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js +92 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs +90 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js +71 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs +69 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js +58 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +56 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js +54 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs +52 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js +123 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs +101 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js +19 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs +17 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js +212 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs +190 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js +54 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs +52 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.js +27 -0
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.mjs +25 -0
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -0
- package/dist/admin/components/BoxWrapper.js +44 -0
- package/dist/admin/components/BoxWrapper.js.map +1 -0
- package/dist/admin/components/BoxWrapper.mjs +42 -0
- package/dist/admin/components/BoxWrapper.mjs.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.js +86 -0
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs +84 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js +112 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +110 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js +24 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs +22 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -0
- package/dist/admin/components/ComponentList.js +40 -0
- package/dist/admin/components/ComponentList.js.map +1 -0
- package/dist/admin/components/ComponentList.mjs +38 -0
- package/dist/admin/components/ComponentList.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +108 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +106 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +179 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +177 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.js +29 -0
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs +27 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +79 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +77 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js +77 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +75 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +520 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +518 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/reducer.js +583 -0
- package/dist/admin/components/DataManagerProvider/reducer.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/reducer.mjs +579 -0
- package/dist/admin/components/DataManagerProvider/reducer.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/selectors.js +20 -0
- package/dist/admin/components/DataManagerProvider/selectors.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/selectors.mjs +17 -0
- package/dist/admin/components/DataManagerProvider/selectors.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js +126 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +120 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +9 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +7 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +20 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +18 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +30 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +27 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +46 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +44 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js +38 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs +35 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js +45 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs +43 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js +17 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +37 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +35 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +9 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +7 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +1 -0
- package/dist/admin/components/DisplayedType.js +48 -0
- package/dist/admin/components/DisplayedType.js.map +1 -0
- package/dist/admin/components/DisplayedType.mjs +46 -0
- package/dist/admin/components/DisplayedType.mjs.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.js +86 -0
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs +84 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -0
- package/dist/admin/components/DynamicZoneList.js +139 -0
- package/dist/admin/components/DynamicZoneList.js.map +1 -0
- package/dist/admin/components/DynamicZoneList.mjs +137 -0
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -0
- package/dist/admin/components/FormModal/FormModal.js +931 -0
- package/dist/admin/components/FormModal/FormModal.js.map +1 -0
- package/dist/admin/components/FormModal/FormModal.mjs +910 -0
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js +471 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs +469 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js +97 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs +95 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js +482 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs +480 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js +17 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs +15 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.js +12 -0
- package/dist/admin/components/FormModal/attributes/form.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.mjs +10 -0
- package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.js +19 -0
- package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs +17 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.js +305 -0
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.mjs +284 -0
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js +129 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs +103 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.js +43 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.js.map +1 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs +22 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/form.js +34 -0
- package/dist/admin/components/FormModal/category/form.js.map +1 -0
- package/dist/admin/components/FormModal/category/form.mjs +32 -0
- package/dist/admin/components/FormModal/category/form.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/regex.js +6 -0
- package/dist/admin/components/FormModal/category/regex.js.map +1 -0
- package/dist/admin/components/FormModal/category/regex.mjs +4 -0
- package/dist/admin/components/FormModal/category/regex.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.js +40 -0
- package/dist/admin/components/FormModal/component/componentField.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.mjs +38 -0
- package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.js +53 -0
- package/dist/admin/components/FormModal/component/componentForm.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs +51 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js +65 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +44 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js +169 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +167 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +170 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +149 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js +68 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs +66 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.js +275 -0
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.mjs +273 -0
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js +21 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs +19 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +13 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +11 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js +10 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs +8 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/reducer.js +327 -0
- package/dist/admin/components/FormModal/reducer.js.map +1 -0
- package/dist/admin/components/FormModal/reducer.mjs +323 -0
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/selectors.js +20 -0
- package/dist/admin/components/FormModal/selectors.js.map +1 -0
- package/dist/admin/components/FormModal/selectors.mjs +17 -0
- package/dist/admin/components/FormModal/selectors.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js +32 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs +30 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.js +16 -0
- package/dist/admin/components/FormModal/utils/createUid.js.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs +13 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +18 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +16 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js +56 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs +54 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js +17 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +15 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.js +15 -0
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.mjs +12 -0
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -0
- package/dist/admin/components/FormModalEndActions.js +322 -0
- package/dist/admin/components/FormModalEndActions.js.map +1 -0
- package/dist/admin/components/FormModalEndActions.mjs +320 -0
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -0
- package/dist/admin/components/FormModalHeader.js +150 -0
- package/dist/admin/components/FormModalHeader.js.map +1 -0
- package/dist/admin/components/FormModalHeader.mjs +148 -0
- package/dist/admin/components/FormModalHeader.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js +228 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs +207 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.js +21 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.js.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs +19 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +1 -0
- package/dist/admin/components/FormModalSubHeader.js +70 -0
- package/dist/admin/components/FormModalSubHeader.js.map +1 -0
- package/dist/admin/components/FormModalSubHeader.mjs +67 -0
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -0
- package/dist/admin/components/GenericInputs.js +529 -0
- package/dist/admin/components/GenericInputs.js.map +1 -0
- package/dist/admin/components/GenericInputs.mjs +508 -0
- package/dist/admin/components/GenericInputs.mjs.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.js +196 -0
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs +194 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -0
- package/dist/admin/components/IconPicker/constants.js +155 -0
- package/dist/admin/components/IconPicker/constants.js.map +1 -0
- package/dist/admin/components/IconPicker/constants.mjs +133 -0
- package/dist/admin/components/IconPicker/constants.mjs.map +1 -0
- package/dist/admin/components/List.js +243 -0
- package/dist/admin/components/List.js.map +1 -0
- package/dist/admin/components/List.mjs +241 -0
- package/dist/admin/components/List.mjs.map +1 -0
- package/dist/admin/components/ListRow.js +164 -0
- package/dist/admin/components/ListRow.js.map +1 -0
- package/dist/admin/components/ListRow.mjs +161 -0
- package/dist/admin/components/ListRow.mjs.map +1 -0
- package/dist/admin/components/NestedFooter.js +62 -0
- package/dist/admin/components/NestedFooter.js.map +1 -0
- package/dist/admin/components/NestedFooter.mjs +60 -0
- package/dist/admin/components/NestedFooter.mjs.map +1 -0
- package/dist/admin/components/PluralName.js +74 -0
- package/dist/admin/components/PluralName.js.map +1 -0
- package/dist/admin/components/PluralName.mjs +72 -0
- package/dist/admin/components/PluralName.mjs.map +1 -0
- package/dist/admin/components/Relation/Relation.js +47 -0
- package/dist/admin/components/Relation/Relation.js.map +1 -0
- package/dist/admin/components/Relation/Relation.mjs +45 -0
- package/dist/admin/components/Relation/Relation.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js +52 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +50 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +74 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +72 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js +49 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +45 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +149 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +147 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -0
- package/dist/admin/components/SelectCategory.js +60 -0
- package/dist/admin/components/SelectCategory.js.map +1 -0
- package/dist/admin/components/SelectCategory.mjs +58 -0
- package/dist/admin/components/SelectCategory.mjs.map +1 -0
- package/dist/admin/components/SelectComponent.js +90 -0
- package/dist/admin/components/SelectComponent.js.map +1 -0
- package/dist/admin/components/SelectComponent.mjs +88 -0
- package/dist/admin/components/SelectComponent.mjs.map +1 -0
- package/dist/admin/components/SelectComponents.js +70 -0
- package/dist/admin/components/SelectComponents.js.map +1 -0
- package/dist/admin/components/SelectComponents.mjs +68 -0
- package/dist/admin/components/SelectComponents.mjs.map +1 -0
- package/dist/admin/components/SelectDateType.js +62 -0
- package/dist/admin/components/SelectDateType.js.map +1 -0
- package/dist/admin/components/SelectDateType.mjs +60 -0
- package/dist/admin/components/SelectDateType.mjs.map +1 -0
- package/dist/admin/components/SelectNumber.js +111 -0
- package/dist/admin/components/SelectNumber.js.map +1 -0
- package/dist/admin/components/SelectNumber.mjs +109 -0
- package/dist/admin/components/SelectNumber.mjs.map +1 -0
- package/dist/admin/components/SingularName.js +63 -0
- package/dist/admin/components/SingularName.js.map +1 -0
- package/dist/admin/components/SingularName.mjs +61 -0
- package/dist/admin/components/SingularName.mjs.map +1 -0
- package/dist/admin/components/TabForm.js +81 -0
- package/dist/admin/components/TabForm.js.map +1 -0
- package/dist/admin/components/TabForm.mjs +79 -0
- package/dist/admin/components/TabForm.mjs.map +1 -0
- package/dist/admin/components/TextareaEnum.js +58 -0
- package/dist/admin/components/TextareaEnum.js.map +1 -0
- package/dist/admin/components/TextareaEnum.mjs +56 -0
- package/dist/admin/components/TextareaEnum.mjs.map +1 -0
- package/dist/admin/components/Tr.js +48 -0
- package/dist/admin/components/Tr.js.map +1 -0
- package/dist/admin/components/Tr.mjs +46 -0
- package/dist/admin/components/Tr.mjs.map +1 -0
- package/dist/admin/components/UpperFirst.js +11 -0
- package/dist/admin/components/UpperFirst.js.map +1 -0
- package/dist/admin/components/UpperFirst.mjs +9 -0
- package/dist/admin/components/UpperFirst.mjs.map +1 -0
- package/dist/admin/constants.js +19 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +16 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/contexts/DataManagerContext.js +9 -0
- package/dist/admin/contexts/DataManagerContext.js.map +1 -0
- package/dist/admin/contexts/DataManagerContext.mjs +7 -0
- package/dist/admin/contexts/DataManagerContext.mjs.map +1 -0
- package/dist/admin/contexts/FormModalNavigationContext.js +28 -0
- package/dist/admin/contexts/FormModalNavigationContext.js.map +1 -0
- package/dist/admin/contexts/FormModalNavigationContext.mjs +7 -0
- package/dist/admin/contexts/FormModalNavigationContext.mjs.map +1 -0
- package/dist/admin/hooks/useDataManager.js +9 -0
- package/dist/admin/hooks/useDataManager.js.map +1 -0
- package/dist/admin/hooks/useDataManager.mjs +7 -0
- package/dist/admin/hooks/useDataManager.mjs.map +1 -0
- package/dist/admin/hooks/useFormModalNavigation.js +9 -0
- package/dist/admin/hooks/useFormModalNavigation.js.map +1 -0
- package/dist/admin/hooks/useFormModalNavigation.mjs +7 -0
- package/dist/admin/hooks/useFormModalNavigation.mjs.map +1 -0
- package/dist/admin/icons/Curve.js +46 -0
- package/dist/admin/icons/Curve.js.map +1 -0
- package/dist/admin/icons/Curve.mjs +44 -0
- package/dist/admin/icons/Curve.mjs.map +1 -0
- package/dist/admin/index.js +86 -20
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +85 -17
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +66 -0
- package/dist/admin/pages/App/index.js.map +1 -0
- package/dist/admin/pages/App/index.mjs +62 -0
- package/dist/admin/pages/App/index.mjs.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js +81 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +79 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -0
- package/dist/admin/pages/ListView/ListView.js +218 -0
- package/dist/admin/pages/ListView/ListView.js.map +1 -0
- package/dist/admin/pages/ListView/ListView.mjs +216 -0
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/reducers.js +13 -0
- package/dist/admin/reducers.js.map +1 -0
- package/dist/admin/reducers.mjs +11 -0
- package/dist/admin/reducers.mjs.map +1 -0
- package/dist/admin/{chunks/ar-Df0f0-PT.js → translations/ar.json.js} +3 -1
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/{chunks/ar-sRW9VFC-.mjs → translations/ar.json.mjs} +1 -1
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/{chunks/cs-DeTwqc7p.js → translations/cs.json.js} +3 -1
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/{chunks/cs-BpQ26jiq.mjs → translations/cs.json.mjs} +1 -1
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/{chunks/de-BJkS06jF.js → translations/de.json.js} +3 -1
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-DSxx5_x-.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-CGm-qVH7.js → translations/dk.json.js} +3 -1
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-BnjVZ7A_.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-BJUu34b0.js → translations/en.json.js} +3 -1
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-Bhut8Yay.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-J8kvHlNy.js → translations/es.json.js} +3 -1
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-DG8g9igJ.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-C6y35iY7.js → translations/fr.json.js} +3 -1
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-UpV34MHY.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/id-BvxV6wLP.js → translations/id.json.js} +3 -1
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/{chunks/id-BWM18ljw.mjs → translations/id.json.mjs} +1 -1
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/{chunks/it-C_IgFU-G.js → translations/it.json.js} +3 -1
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/{chunks/it-1_vd9gV4.mjs → translations/it.json.mjs} +1 -1
- package/dist/admin/{chunks/ms-C3s4kxq6.mjs.map → translations/it.json.mjs.map} +1 -1
- package/dist/admin/{chunks/ja-CWo4Qqq6.js → translations/ja.json.js} +3 -1
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/{chunks/ja-Cx23a2Ui.mjs → translations/ja.json.mjs} +1 -1
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-BsByJNEl.js → translations/ko.json.js} +3 -1
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-DC7paEx5.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/ms-DPTzS7SH.js → translations/ms.json.js} +3 -1
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/{chunks/ms-C3s4kxq6.mjs → translations/ms.json.mjs} +1 -1
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/{chunks/nl-db29QMOx.js → translations/nl.json.js} +3 -1
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/{chunks/nl-TzvfktV_.mjs → translations/nl.json.mjs} +1 -1
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-pYy1djj3.js → translations/pl.json.js} +3 -1
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-BdvupIN_.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BR-CTPuXGWF.js → translations/pt-BR.json.js} +3 -1
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-DPrVmKeZ.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/{chunks/dk-CGm-qVH7.js.map → translations/pt-BR.json.mjs.map} +1 -1
- package/dist/admin/{chunks/pt-BQmWcdeG.js → translations/pt.json.js} +3 -1
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BTLIwmCv.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-DQiDXgUV.js → translations/ru.json.js} +3 -1
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-D46no502.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sk-DrnebmXb.js → translations/sk.json.js} +3 -1
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/{chunks/sk-Byr_l4Jc.mjs → translations/sk.json.mjs} +1 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-CrWlNosi.js → translations/sv.json.js} +3 -1
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-Bbam7IDm.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/th-BbrCkfgX.js → translations/th.json.js} +3 -1
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/{chunks/th-hfS0Wmk_.mjs → translations/th.json.mjs} +1 -1
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-CHdMj8m6.js → translations/tr.json.js} +3 -1
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-DS7DBOhC.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-felSA_eV.js → translations/uk.json.js} +3 -1
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-CjzmJyt1.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-lXbNiMp9.js → translations/zh-Hans.json.js} +3 -1
- package/dist/admin/{chunks/cs-BpQ26jiq.mjs.map → translations/zh-Hans.json.js.map} +1 -1
- package/dist/admin/{chunks/zh-Hans-BElOnuRb.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-CWj4avQA.js → translations/zh.json.js} +3 -1
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-BUVXH75-.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/findAttribute.js +8 -0
- package/dist/admin/utils/findAttribute.js.map +1 -0
- package/dist/admin/utils/findAttribute.mjs +6 -0
- package/dist/admin/utils/findAttribute.mjs.map +1 -0
- package/dist/admin/utils/formAPI.js +134 -0
- package/dist/admin/utils/formAPI.js.map +1 -0
- package/dist/admin/utils/formAPI.mjs +113 -0
- package/dist/admin/utils/formAPI.mjs.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.js +32 -0
- package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs +30 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -0
- package/dist/admin/utils/getMaxDepth.js +74 -0
- package/dist/admin/utils/getMaxDepth.js.map +1 -0
- package/dist/admin/utils/getMaxDepth.mjs +71 -0
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -0
- package/dist/admin/utils/getRelationType.js +18 -0
- package/dist/admin/utils/getRelationType.js.map +1 -0
- package/dist/admin/utils/getRelationType.mjs +16 -0
- package/dist/admin/utils/getRelationType.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.js +23 -0
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js +8 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs +6 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -0
- package/dist/admin/utils/makeUnique.js +8 -0
- package/dist/admin/utils/makeUnique.js.map +1 -0
- package/dist/admin/utils/makeUnique.mjs +6 -0
- package/dist/admin/utils/makeUnique.mjs.map +1 -0
- package/dist/admin/utils/nameToSlug.js +10 -0
- package/dist/admin/utils/nameToSlug.js.map +1 -0
- package/dist/admin/utils/nameToSlug.mjs +8 -0
- package/dist/admin/utils/nameToSlug.mjs.map +1 -0
- package/dist/admin/utils/parseDateValue.js +17 -0
- package/dist/admin/utils/parseDateValue.js.map +1 -0
- package/dist/admin/utils/parseDateValue.mjs +15 -0
- package/dist/admin/utils/parseDateValue.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/timeFormat.js +38 -0
- package/dist/admin/utils/timeFormat.js.map +1 -0
- package/dist/admin/utils/timeFormat.mjs +35 -0
- package/dist/admin/utils/timeFormat.mjs.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.js +17 -0
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs +15 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -0
- package/dist/server/bootstrap.js +16 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +14 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +9 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +7 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/controllers/builder.js +12 -0
- package/dist/server/controllers/builder.js.map +1 -0
- package/dist/server/controllers/builder.mjs +10 -0
- package/dist/server/controllers/builder.mjs.map +1 -0
- package/dist/server/controllers/component-categories.js +38 -0
- package/dist/server/controllers/component-categories.js.map +1 -0
- package/dist/server/controllers/component-categories.mjs +36 -0
- package/dist/server/controllers/component-categories.mjs.map +1 -0
- package/dist/server/controllers/components.js +144 -0
- package/dist/server/controllers/components.js.map +1 -0
- package/dist/server/controllers/components.mjs +142 -0
- package/dist/server/controllers/components.mjs.map +1 -0
- package/dist/server/controllers/content-types.js +142 -0
- package/dist/server/controllers/content-types.js.map +1 -0
- package/dist/server/controllers/content-types.mjs +140 -0
- package/dist/server/controllers/content-types.mjs.map +1 -0
- package/dist/server/controllers/index.js +16 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +14 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +102 -0
- package/dist/server/controllers/validation/common.js.map +1 -0
- package/dist/server/controllers/validation/common.mjs +85 -0
- package/dist/server/controllers/validation/common.mjs.map +1 -0
- package/dist/server/controllers/validation/component-category.js +12 -0
- package/dist/server/controllers/validation/component-category.js.map +1 -0
- package/dist/server/controllers/validation/component-category.mjs +10 -0
- package/dist/server/controllers/validation/component-category.mjs.map +1 -0
- package/dist/server/controllers/validation/component.js +68 -0
- package/dist/server/controllers/validation/component.js.map +1 -0
- package/dist/server/controllers/validation/component.mjs +60 -0
- package/dist/server/controllers/validation/component.mjs.map +1 -0
- package/dist/server/controllers/validation/content-type.js +153 -0
- package/dist/server/controllers/validation/content-type.js.map +1 -0
- package/dist/server/controllers/validation/content-type.mjs +149 -0
- package/dist/server/controllers/validation/content-type.mjs.map +1 -0
- package/dist/server/controllers/validation/data-transform.js +27 -0
- package/dist/server/controllers/validation/data-transform.js.map +1 -0
- package/dist/server/controllers/validation/data-transform.mjs +24 -0
- package/dist/server/controllers/validation/data-transform.mjs.map +1 -0
- package/dist/server/controllers/validation/model-schema.js +90 -0
- package/dist/server/controllers/validation/model-schema.js.map +1 -0
- package/dist/server/controllers/validation/model-schema.mjs +88 -0
- package/dist/server/controllers/validation/model-schema.mjs.map +1 -0
- package/dist/server/controllers/validation/relations.js +70 -0
- package/dist/server/controllers/validation/relations.js.map +1 -0
- package/dist/server/controllers/validation/relations.mjs +68 -0
- package/dist/server/controllers/validation/relations.mjs.map +1 -0
- package/dist/server/controllers/validation/types.js +215 -0
- package/dist/server/controllers/validation/types.js.map +1 -0
- package/dist/server/controllers/validation/types.mjs +213 -0
- package/dist/server/controllers/validation/types.mjs.map +1 -0
- package/dist/server/index.js +8 -2654
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +5 -2633
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/routes/admin.js +231 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +229 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +30 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +28 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/api-handler.js +109 -0
- package/dist/server/services/api-handler.js.map +1 -0
- package/dist/server/services/api-handler.mjs +85 -0
- package/dist/server/services/api-handler.mjs.map +1 -0
- package/dist/server/services/builder.js +81 -0
- package/dist/server/services/builder.js.map +1 -0
- package/dist/server/services/builder.mjs +75 -0
- package/dist/server/services/builder.mjs.map +1 -0
- package/dist/server/services/component-categories.js +59 -0
- package/dist/server/services/component-categories.js.map +1 -0
- package/dist/server/services/component-categories.mjs +56 -0
- package/dist/server/services/component-categories.mjs.map +1 -0
- package/dist/server/services/components.js +79 -0
- package/dist/server/services/components.js.map +1 -0
- package/dist/server/services/components.mjs +74 -0
- package/dist/server/services/components.mjs.map +1 -0
- package/dist/server/services/constants.js +52 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +45 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-types.js +223 -0
- package/dist/server/services/content-types.js.map +1 -0
- package/dist/server/services/content-types.mjs +213 -0
- package/dist/server/services/content-types.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/component-builder.js +114 -0
- package/dist/server/services/schema-builder/component-builder.js.map +1 -0
- package/dist/server/services/schema-builder/component-builder.mjs +112 -0
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.js +276 -0
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs +274 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/index.js +145 -0
- package/dist/server/services/schema-builder/index.js.map +1 -0
- package/dist/server/services/schema-builder/index.mjs +143 -0
- package/dist/server/services/schema-builder/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.js +250 -0
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.mjs +248 -0
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -0
- package/dist/server/utils/attributes.js +91 -0
- package/dist/server/utils/attributes.js.map +1 -0
- package/dist/server/utils/attributes.mjs +85 -0
- package/dist/server/utils/attributes.mjs.map +1 -0
- package/dist/server/utils/index.js +8 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +6 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/utils/typeguards.js +8 -0
- package/dist/server/utils/typeguards.js.map +1 -0
- package/dist/server/utils/typeguards.mjs +6 -0
- package/dist/server/utils/typeguards.mjs.map +1 -0
- package/package.json +5 -5
- package/dist/admin/chunks/ListView-Cl-pbcxP.mjs +0 -1184
- package/dist/admin/chunks/ListView-Cl-pbcxP.mjs.map +0 -1
- package/dist/admin/chunks/ListView-DMZvleUI.js +0 -1186
- package/dist/admin/chunks/ListView-DMZvleUI.js.map +0 -1
- package/dist/admin/chunks/ar-Df0f0-PT.js.map +0 -1
- package/dist/admin/chunks/ar-sRW9VFC-.mjs.map +0 -1
- package/dist/admin/chunks/cs-DeTwqc7p.js.map +0 -1
- package/dist/admin/chunks/de-BJkS06jF.js.map +0 -1
- package/dist/admin/chunks/de-DSxx5_x-.mjs.map +0 -1
- package/dist/admin/chunks/dk-BnjVZ7A_.mjs.map +0 -1
- package/dist/admin/chunks/en-BJUu34b0.js.map +0 -1
- package/dist/admin/chunks/en-Bhut8Yay.mjs.map +0 -1
- package/dist/admin/chunks/es-DG8g9igJ.mjs.map +0 -1
- package/dist/admin/chunks/es-J8kvHlNy.js.map +0 -1
- package/dist/admin/chunks/fr-C6y35iY7.js.map +0 -1
- package/dist/admin/chunks/fr-UpV34MHY.mjs.map +0 -1
- package/dist/admin/chunks/id-BWM18ljw.mjs.map +0 -1
- package/dist/admin/chunks/id-BvxV6wLP.js.map +0 -1
- package/dist/admin/chunks/index-BG2mUcnk.js +0 -7788
- package/dist/admin/chunks/index-BG2mUcnk.js.map +0 -1
- package/dist/admin/chunks/index-DAXXa6S8.mjs +0 -1384
- package/dist/admin/chunks/index-DAXXa6S8.mjs.map +0 -1
- package/dist/admin/chunks/index-DWAINlnG.js +0 -1421
- package/dist/admin/chunks/index-DWAINlnG.js.map +0 -1
- package/dist/admin/chunks/index-Knq4Ti8R.mjs +0 -7761
- package/dist/admin/chunks/index-Knq4Ti8R.mjs.map +0 -1
- package/dist/admin/chunks/it-1_vd9gV4.mjs.map +0 -1
- package/dist/admin/chunks/it-C_IgFU-G.js.map +0 -1
- package/dist/admin/chunks/ja-CWo4Qqq6.js.map +0 -1
- package/dist/admin/chunks/ja-Cx23a2Ui.mjs.map +0 -1
- package/dist/admin/chunks/ko-BsByJNEl.js.map +0 -1
- package/dist/admin/chunks/ko-DC7paEx5.mjs.map +0 -1
- package/dist/admin/chunks/ms-DPTzS7SH.js.map +0 -1
- package/dist/admin/chunks/nl-TzvfktV_.mjs.map +0 -1
- package/dist/admin/chunks/nl-db29QMOx.js.map +0 -1
- package/dist/admin/chunks/pl-BdvupIN_.mjs.map +0 -1
- package/dist/admin/chunks/pl-pYy1djj3.js.map +0 -1
- package/dist/admin/chunks/pt-BQmWcdeG.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CTPuXGWF.js.map +0 -1
- package/dist/admin/chunks/pt-BR-DPrVmKeZ.mjs.map +0 -1
- package/dist/admin/chunks/pt-BTLIwmCv.mjs.map +0 -1
- package/dist/admin/chunks/ru-D46no502.mjs.map +0 -1
- package/dist/admin/chunks/ru-DQiDXgUV.js.map +0 -1
- package/dist/admin/chunks/sk-Byr_l4Jc.mjs.map +0 -1
- package/dist/admin/chunks/sk-DrnebmXb.js.map +0 -1
- package/dist/admin/chunks/sv-Bbam7IDm.mjs.map +0 -1
- package/dist/admin/chunks/sv-CrWlNosi.js.map +0 -1
- package/dist/admin/chunks/th-BbrCkfgX.js.map +0 -1
- package/dist/admin/chunks/th-hfS0Wmk_.mjs.map +0 -1
- package/dist/admin/chunks/tr-CHdMj8m6.js.map +0 -1
- package/dist/admin/chunks/tr-DS7DBOhC.mjs.map +0 -1
- package/dist/admin/chunks/uk-CjzmJyt1.mjs.map +0 -1
- package/dist/admin/chunks/uk-felSA_eV.js.map +0 -1
- package/dist/admin/chunks/zh-BUVXH75-.mjs.map +0 -1
- package/dist/admin/chunks/zh-CWj4avQA.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-BElOnuRb.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-lXbNiMp9.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { get, has } from 'lodash';
|
|
2
|
+
import { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes.mjs';
|
|
3
|
+
import createBuilder from './schema-builder/index.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Formats a component attributes
|
|
7
|
+
*/ const formatComponent = (component)=>{
|
|
8
|
+
const { uid, modelName, connection, collectionName, info, category } = component;
|
|
9
|
+
return {
|
|
10
|
+
uid,
|
|
11
|
+
category,
|
|
12
|
+
apiId: modelName,
|
|
13
|
+
schema: {
|
|
14
|
+
displayName: get(info, 'displayName'),
|
|
15
|
+
description: get(info, 'description', ''),
|
|
16
|
+
icon: get(info, 'icon'),
|
|
17
|
+
connection,
|
|
18
|
+
collectionName,
|
|
19
|
+
pluginOptions: component.pluginOptions,
|
|
20
|
+
attributes: formatAttributes(component)
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Creates a component and handle the nested components sent with it
|
|
26
|
+
*/ const createComponent = async ({ component, components = [] })=>{
|
|
27
|
+
const builder = createBuilder();
|
|
28
|
+
const uidMap = builder.createNewComponentUIDMap(components);
|
|
29
|
+
const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);
|
|
30
|
+
const newComponent = builder.createComponent(replaceTmpUIDs(component));
|
|
31
|
+
components.forEach((component)=>{
|
|
32
|
+
if (!has(component, 'uid')) {
|
|
33
|
+
return builder.createComponent(replaceTmpUIDs(component));
|
|
34
|
+
}
|
|
35
|
+
return builder.editComponent(replaceTmpUIDs(component));
|
|
36
|
+
});
|
|
37
|
+
await builder.writeFiles();
|
|
38
|
+
strapi.eventHub.emit('component.create', {
|
|
39
|
+
component: newComponent
|
|
40
|
+
});
|
|
41
|
+
return newComponent;
|
|
42
|
+
};
|
|
43
|
+
const editComponent = async (uid, { component, components = [] })=>{
|
|
44
|
+
const builder = createBuilder();
|
|
45
|
+
const uidMap = builder.createNewComponentUIDMap(components);
|
|
46
|
+
const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);
|
|
47
|
+
const updatedComponent = builder.editComponent({
|
|
48
|
+
uid,
|
|
49
|
+
...replaceTmpUIDs(component)
|
|
50
|
+
});
|
|
51
|
+
components.forEach((component)=>{
|
|
52
|
+
if (!has(component, 'uid')) {
|
|
53
|
+
return builder.createComponent(replaceTmpUIDs(component));
|
|
54
|
+
}
|
|
55
|
+
return builder.editComponent(replaceTmpUIDs(component));
|
|
56
|
+
});
|
|
57
|
+
await builder.writeFiles();
|
|
58
|
+
strapi.eventHub.emit('component.update', {
|
|
59
|
+
component: updatedComponent
|
|
60
|
+
});
|
|
61
|
+
return updatedComponent;
|
|
62
|
+
};
|
|
63
|
+
const deleteComponent = async (uid)=>{
|
|
64
|
+
const builder = createBuilder();
|
|
65
|
+
const deletedComponent = builder.deleteComponent(uid);
|
|
66
|
+
await builder.writeFiles();
|
|
67
|
+
strapi.eventHub.emit('component.delete', {
|
|
68
|
+
component: deletedComponent
|
|
69
|
+
});
|
|
70
|
+
return deletedComponent;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export { createComponent, deleteComponent, editComponent, formatComponent };
|
|
74
|
+
//# sourceMappingURL=components.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.mjs","sources":["../../../server/src/services/components.ts"],"sourcesContent":["import type { Internal, Struct } from '@strapi/types';\nimport { get, has } from 'lodash';\n\nimport { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes';\nimport createBuilder from './schema-builder';\n\n/**\n * Formats a component attributes\n */\nexport const formatComponent = (component: any) => {\n const { uid, modelName, connection, collectionName, info, category } = component;\n\n return {\n uid,\n category,\n apiId: modelName,\n schema: {\n displayName: get(info, 'displayName'),\n description: get(info, 'description', ''),\n icon: get(info, 'icon'),\n connection,\n collectionName,\n pluginOptions: component.pluginOptions,\n attributes: formatAttributes(component),\n },\n };\n};\n\n/**\n * Creates a component and handle the nested components sent with it\n */\nexport const createComponent = async ({ component, components = [] }: any) => {\n const builder = createBuilder();\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const newComponent = builder.createComponent(replaceTmpUIDs(component));\n\n components.forEach((component: any) => {\n if (!has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.create', { component: newComponent });\n\n return newComponent;\n};\n\ntype ComponentToCreate = {\n component: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n};\n\nexport const editComponent = async (\n uid: Internal.UID.Component,\n { component, components = [] }: ComponentToCreate\n) => {\n const builder = createBuilder();\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const updatedComponent = builder.editComponent({\n uid,\n ...replaceTmpUIDs(component),\n });\n\n components.forEach((component) => {\n if (!has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.update', { component: updatedComponent });\n\n return updatedComponent;\n};\n\nexport const deleteComponent = async (uid: Internal.UID.Component) => {\n const builder = createBuilder();\n\n const deletedComponent = builder.deleteComponent(uid);\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('component.delete', { component: deletedComponent });\n\n return deletedComponent;\n};\n"],"names":["formatComponent","component","uid","modelName","connection","collectionName","info","category","apiId","schema","displayName","get","description","icon","pluginOptions","attributes","formatAttributes","createComponent","components","builder","createBuilder","uidMap","createNewComponentUIDMap","replaceTmpUIDs","replaceTemporaryUIDs","newComponent","forEach","has","editComponent","writeFiles","strapi","eventHub","emit","updatedComponent","deleteComponent","deletedComponent"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const modelTypes = {
|
|
4
|
+
CONTENT_TYPE: 'CONTENT_TYPE',
|
|
5
|
+
COMPONENT: 'COMPONENT'
|
|
6
|
+
};
|
|
7
|
+
const typeKinds = {
|
|
8
|
+
SINGLE_TYPE: 'singleType',
|
|
9
|
+
COLLECTION_TYPE: 'collectionType'
|
|
10
|
+
};
|
|
11
|
+
const DEFAULT_TYPES = [
|
|
12
|
+
// advanced types
|
|
13
|
+
'media',
|
|
14
|
+
// scalar types
|
|
15
|
+
'string',
|
|
16
|
+
'text',
|
|
17
|
+
'richtext',
|
|
18
|
+
'blocks',
|
|
19
|
+
'json',
|
|
20
|
+
'enumeration',
|
|
21
|
+
'password',
|
|
22
|
+
'email',
|
|
23
|
+
'integer',
|
|
24
|
+
'biginteger',
|
|
25
|
+
'float',
|
|
26
|
+
'decimal',
|
|
27
|
+
'date',
|
|
28
|
+
'time',
|
|
29
|
+
'datetime',
|
|
30
|
+
'timestamp',
|
|
31
|
+
'boolean',
|
|
32
|
+
'relation'
|
|
33
|
+
];
|
|
34
|
+
const VALID_UID_TARGETS = [
|
|
35
|
+
'string',
|
|
36
|
+
'text'
|
|
37
|
+
];
|
|
38
|
+
const coreUids = {
|
|
39
|
+
STRAPI_USER: 'admin::user',
|
|
40
|
+
PREFIX: 'strapi::'
|
|
41
|
+
};
|
|
42
|
+
const pluginsUids = {
|
|
43
|
+
UPLOAD_FILE: 'plugin::upload.file'
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.DEFAULT_TYPES = DEFAULT_TYPES;
|
|
47
|
+
exports.VALID_UID_TARGETS = VALID_UID_TARGETS;
|
|
48
|
+
exports.coreUids = coreUids;
|
|
49
|
+
exports.modelTypes = modelTypes;
|
|
50
|
+
exports.pluginsUids = pluginsUids;
|
|
51
|
+
exports.typeKinds = typeKinds;
|
|
52
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../server/src/services/constants.ts"],"sourcesContent":["export const modelTypes = {\n CONTENT_TYPE: 'CONTENT_TYPE',\n COMPONENT: 'COMPONENT',\n} as const;\n\nexport const typeKinds = {\n SINGLE_TYPE: 'singleType',\n COLLECTION_TYPE: 'collectionType',\n} as const;\n\nexport const DEFAULT_TYPES = [\n // advanced types\n 'media',\n\n // scalar types\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'date',\n 'time',\n 'datetime',\n 'timestamp',\n 'boolean',\n\n 'relation',\n] as const;\n\nexport const VALID_UID_TARGETS = ['string', 'text'] as const;\n\nexport const coreUids = {\n STRAPI_USER: 'admin::user',\n PREFIX: 'strapi::',\n} as const;\n\nexport const pluginsUids = {\n UPLOAD_FILE: 'plugin::upload.file',\n} as const;\n"],"names":["modelTypes","CONTENT_TYPE","COMPONENT","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","DEFAULT_TYPES","VALID_UID_TARGETS","coreUids","STRAPI_USER","PREFIX","pluginsUids","UPLOAD_FILE"],"mappings":";;MAAaA,UAAa,GAAA;IACxBC,YAAc,EAAA,cAAA;IACdC,SAAW,EAAA;AACb;MAEaC,SAAY,GAAA;IACvBC,WAAa,EAAA,YAAA;IACbC,eAAiB,EAAA;AACnB;MAEaC,aAAgB,GAAA;;AAE3B,IAAA,OAAA;;AAGA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,SAAA;AAEA,IAAA;;MAGWC,iBAAoB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;;MAE/BC,QAAW,GAAA;IACtBC,WAAa,EAAA,aAAA;IACbC,MAAQ,EAAA;AACV;MAEaC,WAAc,GAAA;IACzBC,WAAa,EAAA;AACf;;;;;;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const modelTypes = {
|
|
2
|
+
CONTENT_TYPE: 'CONTENT_TYPE',
|
|
3
|
+
COMPONENT: 'COMPONENT'
|
|
4
|
+
};
|
|
5
|
+
const typeKinds = {
|
|
6
|
+
SINGLE_TYPE: 'singleType',
|
|
7
|
+
COLLECTION_TYPE: 'collectionType'
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_TYPES = [
|
|
10
|
+
// advanced types
|
|
11
|
+
'media',
|
|
12
|
+
// scalar types
|
|
13
|
+
'string',
|
|
14
|
+
'text',
|
|
15
|
+
'richtext',
|
|
16
|
+
'blocks',
|
|
17
|
+
'json',
|
|
18
|
+
'enumeration',
|
|
19
|
+
'password',
|
|
20
|
+
'email',
|
|
21
|
+
'integer',
|
|
22
|
+
'biginteger',
|
|
23
|
+
'float',
|
|
24
|
+
'decimal',
|
|
25
|
+
'date',
|
|
26
|
+
'time',
|
|
27
|
+
'datetime',
|
|
28
|
+
'timestamp',
|
|
29
|
+
'boolean',
|
|
30
|
+
'relation'
|
|
31
|
+
];
|
|
32
|
+
const VALID_UID_TARGETS = [
|
|
33
|
+
'string',
|
|
34
|
+
'text'
|
|
35
|
+
];
|
|
36
|
+
const coreUids = {
|
|
37
|
+
STRAPI_USER: 'admin::user',
|
|
38
|
+
PREFIX: 'strapi::'
|
|
39
|
+
};
|
|
40
|
+
const pluginsUids = {
|
|
41
|
+
UPLOAD_FILE: 'plugin::upload.file'
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { DEFAULT_TYPES, VALID_UID_TARGETS, coreUids, modelTypes, pluginsUids, typeKinds };
|
|
45
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../server/src/services/constants.ts"],"sourcesContent":["export const modelTypes = {\n CONTENT_TYPE: 'CONTENT_TYPE',\n COMPONENT: 'COMPONENT',\n} as const;\n\nexport const typeKinds = {\n SINGLE_TYPE: 'singleType',\n COLLECTION_TYPE: 'collectionType',\n} as const;\n\nexport const DEFAULT_TYPES = [\n // advanced types\n 'media',\n\n // scalar types\n 'string',\n 'text',\n 'richtext',\n 'blocks',\n 'json',\n 'enumeration',\n 'password',\n 'email',\n 'integer',\n 'biginteger',\n 'float',\n 'decimal',\n 'date',\n 'time',\n 'datetime',\n 'timestamp',\n 'boolean',\n\n 'relation',\n] as const;\n\nexport const VALID_UID_TARGETS = ['string', 'text'] as const;\n\nexport const coreUids = {\n STRAPI_USER: 'admin::user',\n PREFIX: 'strapi::',\n} as const;\n\nexport const pluginsUids = {\n UPLOAD_FILE: 'plugin::upload.file',\n} as const;\n"],"names":["modelTypes","CONTENT_TYPE","COMPONENT","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","DEFAULT_TYPES","VALID_UID_TARGETS","coreUids","STRAPI_USER","PREFIX","pluginsUids","UPLOAD_FILE"],"mappings":"MAAaA,UAAa,GAAA;IACxBC,YAAc,EAAA,cAAA;IACdC,SAAW,EAAA;AACb;MAEaC,SAAY,GAAA;IACvBC,WAAa,EAAA,YAAA;IACbC,eAAiB,EAAA;AACnB;MAEaC,aAAgB,GAAA;;AAE3B,IAAA,OAAA;;AAGA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA,SAAA;AAEA,IAAA;;MAGWC,iBAAoB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;;MAE/BC,QAAW,GAAA;IACtBC,WAAa,EAAA,aAAA;IACbC,MAAQ,EAAA;AACV;MAEaC,WAAc,GAAA;IACzBC,WAAa,EAAA;AACf;;;;"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
var utils = require('@strapi/utils');
|
|
6
|
+
var attributes = require('../utils/attributes.js');
|
|
7
|
+
var index = require('./schema-builder/index.js');
|
|
8
|
+
var constants = require('./constants.js');
|
|
9
|
+
|
|
10
|
+
const { ApplicationError } = utils.errors;
|
|
11
|
+
const isContentTypeVisible = (model)=>fp.getOr(true, 'pluginOptions.content-type-builder.visible', model) === true;
|
|
12
|
+
const getRestrictRelationsTo = (contentType)=>{
|
|
13
|
+
const { uid } = contentType;
|
|
14
|
+
if (uid === constants.coreUids.STRAPI_USER) {
|
|
15
|
+
// TODO: replace with an obj { relation: 'x', bidirectional: true|false }
|
|
16
|
+
return [
|
|
17
|
+
'oneWay',
|
|
18
|
+
'manyWay'
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
if (uid.startsWith(constants.coreUids.PREFIX) || uid === constants.pluginsUids.UPLOAD_FILE || !isContentTypeVisible(contentType)) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Format a contentType info to be used by the front-end
|
|
28
|
+
*/ const formatContentType = (contentType)=>{
|
|
29
|
+
const { uid, kind, modelName, plugin, collectionName, info } = contentType;
|
|
30
|
+
return {
|
|
31
|
+
uid,
|
|
32
|
+
plugin,
|
|
33
|
+
apiID: modelName,
|
|
34
|
+
schema: {
|
|
35
|
+
...utils.contentTypes.getOptions(contentType),
|
|
36
|
+
displayName: info.displayName,
|
|
37
|
+
singularName: info.singularName,
|
|
38
|
+
pluralName: info.pluralName,
|
|
39
|
+
description: _.get(info, 'description', ''),
|
|
40
|
+
pluginOptions: contentType.pluginOptions,
|
|
41
|
+
kind: kind || 'collectionType',
|
|
42
|
+
collectionName,
|
|
43
|
+
attributes: attributes.formatAttributes(contentType),
|
|
44
|
+
visible: isContentTypeVisible(contentType),
|
|
45
|
+
restrictRelationsTo: getRestrictRelationsTo(contentType)
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
const createContentTypes = async (contentTypes)=>{
|
|
50
|
+
const builder = index();
|
|
51
|
+
const createdContentTypes = [];
|
|
52
|
+
for (const contentType of contentTypes){
|
|
53
|
+
createdContentTypes.push(await createContentType(contentType, {
|
|
54
|
+
defaultBuilder: builder
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
await builder.writeFiles();
|
|
58
|
+
return createdContentTypes;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Creates a content type and handle the nested components sent with it
|
|
62
|
+
*/ const createContentType = async ({ contentType, components }, options = {})=>{
|
|
63
|
+
const builder = options.defaultBuilder || index();
|
|
64
|
+
const uidMap = builder.createNewComponentUIDMap(components || []);
|
|
65
|
+
const replaceTmpUIDs = attributes.replaceTemporaryUIDs(uidMap);
|
|
66
|
+
const newContentType = builder.createContentType(replaceTmpUIDs(contentType));
|
|
67
|
+
// allow components to target the new contentType
|
|
68
|
+
const targetContentType = (infos)=>{
|
|
69
|
+
Object.keys(infos.attributes).forEach((key)=>{
|
|
70
|
+
const { target } = infos.attributes[key];
|
|
71
|
+
if (target === '__contentType__') {
|
|
72
|
+
infos.attributes[key].target = newContentType.uid;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return infos;
|
|
76
|
+
};
|
|
77
|
+
components?.forEach((component)=>{
|
|
78
|
+
const options = replaceTmpUIDs(targetContentType(component));
|
|
79
|
+
if (!_.has(component, 'uid')) {
|
|
80
|
+
return builder.createComponent(options);
|
|
81
|
+
}
|
|
82
|
+
return builder.editComponent(options);
|
|
83
|
+
});
|
|
84
|
+
// generate api skeleton
|
|
85
|
+
await generateAPI({
|
|
86
|
+
displayName: contentType.displayName || contentType.info.displayName,
|
|
87
|
+
singularName: contentType.singularName,
|
|
88
|
+
pluralName: contentType.pluralName,
|
|
89
|
+
kind: contentType.kind
|
|
90
|
+
});
|
|
91
|
+
if (!options.defaultBuilder) {
|
|
92
|
+
await builder.writeFiles();
|
|
93
|
+
}
|
|
94
|
+
strapi.eventHub.emit('content-type.create', {
|
|
95
|
+
contentType: newContentType
|
|
96
|
+
});
|
|
97
|
+
return newContentType;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Generate an API skeleton
|
|
101
|
+
*/ const generateAPI = ({ singularName, kind = 'collectionType', pluralName, displayName })=>{
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
103
|
+
const strapiGenerators = require('@strapi/generators');
|
|
104
|
+
return strapiGenerators.generate('content-type', {
|
|
105
|
+
kind,
|
|
106
|
+
singularName,
|
|
107
|
+
id: singularName,
|
|
108
|
+
pluralName,
|
|
109
|
+
displayName,
|
|
110
|
+
destination: 'new',
|
|
111
|
+
bootstrapApi: true,
|
|
112
|
+
attributes: []
|
|
113
|
+
}, {
|
|
114
|
+
dir: strapi.dirs.app.root
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Edits a contentType and handle the nested contentTypes sent with it
|
|
119
|
+
*/ const editContentType = async (uid, { contentType, components = [] })=>{
|
|
120
|
+
const builder = index();
|
|
121
|
+
const previousSchema = builder.contentTypes.get(uid).schema;
|
|
122
|
+
const previousKind = previousSchema.kind;
|
|
123
|
+
const newKind = contentType.kind || previousKind;
|
|
124
|
+
// Restore non-visible attributes from previous schema
|
|
125
|
+
const previousAttributes = previousSchema.attributes;
|
|
126
|
+
const prevNonVisibleAttributes = utils.contentTypes.getNonVisibleAttributes(previousSchema).reduce((acc, key)=>{
|
|
127
|
+
if (key in previousAttributes) {
|
|
128
|
+
acc[key] = previousAttributes[key];
|
|
129
|
+
}
|
|
130
|
+
return acc;
|
|
131
|
+
}, {});
|
|
132
|
+
contentType.attributes = _.merge(prevNonVisibleAttributes, contentType.attributes);
|
|
133
|
+
if (newKind !== previousKind && newKind === 'singleType') {
|
|
134
|
+
const entryCount = await strapi.db.query(uid).count();
|
|
135
|
+
if (entryCount > 1) {
|
|
136
|
+
throw new ApplicationError('You cannot convert a collectionType to a singleType when having multiple entries in DB');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const uidMap = builder.createNewComponentUIDMap(components);
|
|
140
|
+
const replaceTmpUIDs = attributes.replaceTemporaryUIDs(uidMap);
|
|
141
|
+
const updatedContentType = builder.editContentType({
|
|
142
|
+
uid,
|
|
143
|
+
...replaceTmpUIDs(contentType)
|
|
144
|
+
});
|
|
145
|
+
components.forEach((component)=>{
|
|
146
|
+
if (!_.has(component, 'uid')) {
|
|
147
|
+
return builder.createComponent(replaceTmpUIDs(component));
|
|
148
|
+
}
|
|
149
|
+
return builder.editComponent(replaceTmpUIDs(component));
|
|
150
|
+
});
|
|
151
|
+
if (newKind !== previousKind) {
|
|
152
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
153
|
+
await apiHandler.backup(uid);
|
|
154
|
+
try {
|
|
155
|
+
await apiHandler.clear(uid);
|
|
156
|
+
// generate new api skeleton
|
|
157
|
+
await generateAPI({
|
|
158
|
+
displayName: updatedContentType.schema.info.displayName,
|
|
159
|
+
singularName: updatedContentType.schema.info.singularName,
|
|
160
|
+
pluralName: updatedContentType.schema.info.pluralName,
|
|
161
|
+
kind: updatedContentType.schema.kind
|
|
162
|
+
});
|
|
163
|
+
await builder.writeFiles();
|
|
164
|
+
} catch (error) {
|
|
165
|
+
strapi.log.error(error);
|
|
166
|
+
await apiHandler.rollback(uid);
|
|
167
|
+
}
|
|
168
|
+
return updatedContentType;
|
|
169
|
+
}
|
|
170
|
+
await builder.writeFiles();
|
|
171
|
+
strapi.eventHub.emit('content-type.update', {
|
|
172
|
+
contentType: updatedContentType
|
|
173
|
+
});
|
|
174
|
+
return updatedContentType;
|
|
175
|
+
};
|
|
176
|
+
const deleteContentTypes = async (uids)=>{
|
|
177
|
+
const builder = index();
|
|
178
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
179
|
+
for (const uid of uids){
|
|
180
|
+
await deleteContentType(uid, builder);
|
|
181
|
+
}
|
|
182
|
+
await builder.writeFiles();
|
|
183
|
+
for (const uid of uids){
|
|
184
|
+
try {
|
|
185
|
+
await apiHandler.clear(uid);
|
|
186
|
+
} catch (error) {
|
|
187
|
+
strapi.log.error(error);
|
|
188
|
+
await apiHandler.rollback(uid);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Deletes a content type and the api files related to it
|
|
194
|
+
*/ const deleteContentType = async (uid, defaultBuilder = undefined)=>{
|
|
195
|
+
const builder = defaultBuilder || index();
|
|
196
|
+
// make a backup
|
|
197
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
198
|
+
await apiHandler.backup(uid);
|
|
199
|
+
const contentType = builder.deleteContentType(uid);
|
|
200
|
+
if (!defaultBuilder) {
|
|
201
|
+
try {
|
|
202
|
+
await builder.writeFiles();
|
|
203
|
+
await apiHandler.clear(uid);
|
|
204
|
+
} catch (error) {
|
|
205
|
+
await apiHandler.rollback(uid);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
strapi.eventHub.emit('content-type.delete', {
|
|
209
|
+
contentType
|
|
210
|
+
});
|
|
211
|
+
return contentType;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
exports.createContentType = createContentType;
|
|
215
|
+
exports.createContentTypes = createContentTypes;
|
|
216
|
+
exports.deleteContentType = deleteContentType;
|
|
217
|
+
exports.deleteContentTypes = deleteContentTypes;
|
|
218
|
+
exports.editContentType = editContentType;
|
|
219
|
+
exports.formatContentType = formatContentType;
|
|
220
|
+
exports.generateAPI = generateAPI;
|
|
221
|
+
exports.getRestrictRelationsTo = getRestrictRelationsTo;
|
|
222
|
+
exports.isContentTypeVisible = isContentTypeVisible;
|
|
223
|
+
//# sourceMappingURL=content-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.js","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport type { UID, Struct } from '@strapi/types';\nimport { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes';\nimport createBuilder from './schema-builder';\nimport { coreUids, pluginsUids } from './constants';\n\nconst { ApplicationError } = errors;\n\nexport const isContentTypeVisible = (model: Struct.ContentTypeSchema) =>\n getOr(true, 'pluginOptions.content-type-builder.visible', model) === true;\n\nexport const getRestrictRelationsTo = (contentType: Struct.ContentTypeSchema) => {\n const { uid } = contentType;\n if (uid === coreUids.STRAPI_USER) {\n // TODO: replace with an obj { relation: 'x', bidirectional: true|false }\n return ['oneWay', 'manyWay'];\n }\n\n if (\n uid.startsWith(coreUids.PREFIX) ||\n uid === pluginsUids.UPLOAD_FILE ||\n !isContentTypeVisible(contentType)\n ) {\n return [];\n }\n\n return null;\n};\n\n/**\n * Format a contentType info to be used by the front-end\n */\nexport const formatContentType = (contentType: any) => {\n const { uid, kind, modelName, plugin, collectionName, info } = contentType;\n\n return {\n uid,\n plugin,\n apiID: modelName,\n schema: {\n ...contentTypesUtils.getOptions(contentType),\n displayName: info.displayName,\n singularName: info.singularName,\n pluralName: info.pluralName,\n description: _.get(info, 'description', ''),\n pluginOptions: contentType.pluginOptions,\n kind: kind || 'collectionType',\n collectionName,\n attributes: formatAttributes(contentType),\n visible: isContentTypeVisible(contentType),\n restrictRelationsTo: getRestrictRelationsTo(contentType),\n },\n };\n};\n\nexport const createContentTypes = async (contentTypes: any[]) => {\n const builder = createBuilder();\n const createdContentTypes: any[] = [];\n\n for (const contentType of contentTypes) {\n createdContentTypes.push(await createContentType(contentType, { defaultBuilder: builder }));\n }\n\n await builder.writeFiles();\n\n return createdContentTypes;\n};\n\ntype CreateContentTypeOptions = {\n defaultBuilder?: any; // TODO\n};\n\n/**\n * Creates a content type and handle the nested components sent with it\n */\nexport const createContentType = async (\n { contentType, components }: any,\n options: CreateContentTypeOptions = {}\n) => {\n const builder = options.defaultBuilder || createBuilder();\n const uidMap = builder.createNewComponentUIDMap(components || []);\n\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const newContentType = builder.createContentType(replaceTmpUIDs(contentType));\n\n // allow components to target the new contentType\n const targetContentType = (infos: any) => {\n Object.keys(infos.attributes).forEach((key) => {\n const { target } = infos.attributes[key];\n if (target === '__contentType__') {\n infos.attributes[key].target = newContentType.uid;\n }\n });\n\n return infos;\n };\n\n components?.forEach((component: any) => {\n const options = replaceTmpUIDs(targetContentType(component));\n\n if (!_.has(component, 'uid')) {\n return builder.createComponent(options);\n }\n\n return builder.editComponent(options);\n });\n\n // generate api skeleton\n await generateAPI({\n displayName: contentType!.displayName || contentType!.info.displayName,\n singularName: contentType!.singularName,\n pluralName: contentType!.pluralName,\n kind: contentType!.kind,\n });\n\n if (!options.defaultBuilder) {\n await builder.writeFiles();\n }\n\n strapi.eventHub.emit('content-type.create', { contentType: newContentType });\n\n return newContentType;\n};\n\n/**\n * Generate an API skeleton\n */\nexport const generateAPI = ({\n singularName,\n kind = 'collectionType',\n pluralName,\n displayName,\n}: any) => {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const strapiGenerators = require('@strapi/generators');\n return strapiGenerators.generate(\n 'content-type',\n {\n kind,\n singularName,\n id: singularName,\n pluralName,\n displayName,\n destination: 'new',\n bootstrapApi: true,\n attributes: [],\n },\n { dir: strapi.dirs.app.root }\n );\n};\n\n/**\n * Edits a contentType and handle the nested contentTypes sent with it\n */\nexport const editContentType = async (\n uid: UID.ContentType,\n { contentType, components = [] }: any\n) => {\n const builder = createBuilder();\n\n const previousSchema = builder.contentTypes.get(uid).schema;\n const previousKind = previousSchema.kind;\n const newKind = contentType.kind || previousKind;\n\n // Restore non-visible attributes from previous schema\n const previousAttributes = previousSchema.attributes;\n const prevNonVisibleAttributes = contentTypesUtils\n .getNonVisibleAttributes(previousSchema)\n .reduce((acc, key) => {\n if (key in previousAttributes) {\n acc[key] = previousAttributes[key];\n }\n\n return acc;\n }, {} as any);\n contentType.attributes = _.merge(prevNonVisibleAttributes, contentType.attributes);\n\n if (newKind !== previousKind && newKind === 'singleType') {\n const entryCount = await strapi.db.query(uid).count();\n if (entryCount > 1) {\n throw new ApplicationError(\n 'You cannot convert a collectionType to a singleType when having multiple entries in DB'\n );\n }\n }\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const updatedContentType = builder.editContentType({\n uid,\n ...replaceTmpUIDs(contentType),\n });\n\n components.forEach((component: any) => {\n if (!_.has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n if (newKind !== previousKind) {\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n try {\n await apiHandler.clear(uid);\n\n // generate new api skeleton\n await generateAPI({\n displayName: updatedContentType.schema.info.displayName,\n singularName: updatedContentType.schema.info.singularName,\n pluralName: updatedContentType.schema.info.pluralName,\n kind: updatedContentType.schema.kind,\n });\n\n await builder.writeFiles();\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n\n return updatedContentType;\n }\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('content-type.update', { contentType: updatedContentType });\n\n return updatedContentType;\n};\n\nexport const deleteContentTypes = async (uids: UID.ContentType[]) => {\n const builder = createBuilder();\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n\n for (const uid of uids) {\n await deleteContentType(uid, builder);\n }\n\n await builder.writeFiles();\n for (const uid of uids) {\n try {\n await apiHandler.clear(uid);\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n }\n};\n\n/**\n * Deletes a content type and the api files related to it\n */\nexport const deleteContentType = async (uid: UID.ContentType, defaultBuilder: any = undefined) => {\n const builder = defaultBuilder || createBuilder();\n // make a backup\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n const contentType = builder.deleteContentType(uid);\n\n if (!defaultBuilder) {\n try {\n await builder.writeFiles();\n await apiHandler.clear(uid);\n } catch (error) {\n await apiHandler.rollback(uid);\n }\n }\n\n strapi.eventHub.emit('content-type.delete', { contentType });\n\n return contentType;\n};\n"],"names":["ApplicationError","errors","isContentTypeVisible","model","getOr","getRestrictRelationsTo","contentType","uid","coreUids","STRAPI_USER","startsWith","PREFIX","pluginsUids","UPLOAD_FILE","formatContentType","kind","modelName","plugin","collectionName","info","apiID","schema","contentTypesUtils","getOptions","displayName","singularName","pluralName","description","_","get","pluginOptions","attributes","formatAttributes","visible","restrictRelationsTo","createContentTypes","contentTypes","builder","createBuilder","createdContentTypes","push","createContentType","defaultBuilder","writeFiles","components","options","uidMap","createNewComponentUIDMap","replaceTmpUIDs","replaceTemporaryUIDs","newContentType","targetContentType","infos","Object","keys","forEach","key","target","component","has","createComponent","editComponent","generateAPI","strapi","eventHub","emit","strapiGenerators","require","generate","id","destination","bootstrapApi","dir","dirs","app","root","editContentType","previousSchema","previousKind","newKind","previousAttributes","prevNonVisibleAttributes","getNonVisibleAttributes","reduce","acc","merge","entryCount","db","query","count","updatedContentType","apiHandler","service","backup","clear","error","log","rollback","deleteContentTypes","uids","deleteContentType","undefined"],"mappings":";;;;;;;;;AAQA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAEtB,MAAMC,uBAAuB,CAACC,KAAAA,GACnCC,SAAM,IAAM,EAAA,4CAAA,EAA8CD,WAAW;AAEhE,MAAME,yBAAyB,CAACC,WAAAA,GAAAA;IACrC,MAAM,EAAEC,GAAG,EAAE,GAAGD,WAAAA;IAChB,IAAIC,GAAAA,KAAQC,kBAASC,CAAAA,WAAW,EAAE;;QAEhC,OAAO;AAAC,YAAA,QAAA;AAAU,YAAA;AAAU,SAAA;AAC9B;AAEA,IAAA,IACEF,GAAIG,CAAAA,UAAU,CAACF,kBAAAA,CAASG,MAAM,CAAA,IAC9BJ,GAAQK,KAAAA,qBAAAA,CAAYC,WAAW,IAC/B,CAACX,oBAAAA,CAAqBI,WACtB,CAAA,EAAA;AACA,QAAA,OAAO,EAAE;AACX;IAEA,OAAO,IAAA;AACT;AAEA;;IAGaQ,MAAAA,iBAAAA,GAAoB,CAACR,WAAAA,GAAAA;AAChC,IAAA,MAAM,EAAEC,GAAG,EAAEQ,IAAI,EAAEC,SAAS,EAAEC,MAAM,EAAEC,cAAc,EAAEC,IAAI,EAAE,GAAGb,WAAAA;IAE/D,OAAO;AACLC,QAAAA,GAAAA;AACAU,QAAAA,MAAAA;QACAG,KAAOJ,EAAAA,SAAAA;QACPK,MAAQ,EAAA;YACN,GAAGC,kBAAAA,CAAkBC,UAAU,CAACjB,WAAY,CAAA;AAC5CkB,YAAAA,WAAAA,EAAaL,KAAKK,WAAW;AAC7BC,YAAAA,YAAAA,EAAcN,KAAKM,YAAY;AAC/BC,YAAAA,UAAAA,EAAYP,KAAKO,UAAU;AAC3BC,YAAAA,WAAAA,EAAaC,CAAEC,CAAAA,GAAG,CAACV,IAAAA,EAAM,aAAe,EAAA,EAAA,CAAA;AACxCW,YAAAA,aAAAA,EAAexB,YAAYwB,aAAa;AACxCf,YAAAA,IAAAA,EAAMA,IAAQ,IAAA,gBAAA;AACdG,YAAAA,cAAAA;AACAa,YAAAA,UAAAA,EAAYC,2BAAiB1B,CAAAA,WAAAA,CAAAA;AAC7B2B,YAAAA,OAAAA,EAAS/B,oBAAqBI,CAAAA,WAAAA,CAAAA;AAC9B4B,YAAAA,mBAAAA,EAAqB7B,sBAAuBC,CAAAA,WAAAA;AAC9C;AACF,KAAA;AACF;AAEO,MAAM6B,qBAAqB,OAAOC,YAAAA,GAAAA;AACvC,IAAA,MAAMC,OAAUC,GAAAA,KAAAA,EAAAA;AAChB,IAAA,MAAMC,sBAA6B,EAAE;IAErC,KAAK,MAAMjC,eAAe8B,YAAc,CAAA;AACtCG,QAAAA,mBAAAA,CAAoBC,IAAI,CAAC,MAAMC,iBAAAA,CAAkBnC,WAAa,EAAA;YAAEoC,cAAgBL,EAAAA;AAAQ,SAAA,CAAA,CAAA;AAC1F;AAEA,IAAA,MAAMA,QAAQM,UAAU,EAAA;IAExB,OAAOJ,mBAAAA;AACT;AAMA;;AAEC,IACM,MAAME,iBAAoB,GAAA,OAC/B,EAAEnC,WAAW,EAAEsC,UAAU,EAAO,EAChCC,OAAoC,GAAA,EAAE,GAAA;IAEtC,MAAMR,OAAAA,GAAUQ,OAAQH,CAAAA,cAAc,IAAIJ,KAAAA,EAAAA;AAC1C,IAAA,MAAMQ,MAAST,GAAAA,OAAAA,CAAQU,wBAAwB,CAACH,cAAc,EAAE,CAAA;AAEhE,IAAA,MAAMI,iBAAiBC,+BAAqBH,CAAAA,MAAAA,CAAAA;AAE5C,IAAA,MAAMI,cAAiBb,GAAAA,OAAAA,CAAQI,iBAAiB,CAACO,cAAe1C,CAAAA,WAAAA,CAAAA,CAAAA;;AAGhE,IAAA,MAAM6C,oBAAoB,CAACC,KAAAA,GAAAA;AACzBC,QAAAA,MAAAA,CAAOC,IAAI,CAACF,KAAAA,CAAMrB,UAAU,CAAEwB,CAAAA,OAAO,CAAC,CAACC,GAAAA,GAAAA;AACrC,YAAA,MAAM,EAAEC,MAAM,EAAE,GAAGL,KAAMrB,CAAAA,UAAU,CAACyB,GAAI,CAAA;AACxC,YAAA,IAAIC,WAAW,iBAAmB,EAAA;AAChCL,gBAAAA,KAAAA,CAAMrB,UAAU,CAACyB,GAAAA,CAAI,CAACC,MAAM,GAAGP,eAAe3C,GAAG;AACnD;AACF,SAAA,CAAA;QAEA,OAAO6C,KAAAA;AACT,KAAA;AAEAR,IAAAA,UAAAA,EAAYW,QAAQ,CAACG,SAAAA,GAAAA;QACnB,MAAMb,OAAAA,GAAUG,eAAeG,iBAAkBO,CAAAA,SAAAA,CAAAA,CAAAA;AAEjD,QAAA,IAAI,CAAC9B,CAAAA,CAAE+B,GAAG,CAACD,WAAW,KAAQ,CAAA,EAAA;YAC5B,OAAOrB,OAAAA,CAAQuB,eAAe,CAACf,OAAAA,CAAAA;AACjC;QAEA,OAAOR,OAAAA,CAAQwB,aAAa,CAAChB,OAAAA,CAAAA;AAC/B,KAAA,CAAA;;AAGA,IAAA,MAAMiB,WAAY,CAAA;AAChBtC,QAAAA,WAAAA,EAAalB,YAAakB,WAAW,IAAIlB,WAAaa,CAAAA,IAAI,CAACK,WAAW;AACtEC,QAAAA,YAAAA,EAAcnB,YAAamB,YAAY;AACvCC,QAAAA,UAAAA,EAAYpB,YAAaoB,UAAU;AACnCX,QAAAA,IAAAA,EAAMT,YAAaS;AACrB,KAAA,CAAA;IAEA,IAAI,CAAC8B,OAAQH,CAAAA,cAAc,EAAE;AAC3B,QAAA,MAAML,QAAQM,UAAU,EAAA;AAC1B;AAEAoB,IAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,qBAAuB,EAAA;QAAE3D,WAAa4C,EAAAA;AAAe,KAAA,CAAA;IAE1E,OAAOA,cAAAA;AACT;AAEA;;AAEC,IACM,MAAMY,WAAc,GAAA,CAAC,EAC1BrC,YAAY,EACZV,IAAAA,GAAO,gBAAgB,EACvBW,UAAU,EACVF,WAAW,EACP,GAAA;;AAEJ,IAAA,MAAM0C,mBAAmBC,OAAQ,CAAA,oBAAA,CAAA;IACjC,OAAOD,gBAAAA,CAAiBE,QAAQ,CAC9B,cACA,EAAA;AACErD,QAAAA,IAAAA;AACAU,QAAAA,YAAAA;QACA4C,EAAI5C,EAAAA,YAAAA;AACJC,QAAAA,UAAAA;AACAF,QAAAA,WAAAA;QACA8C,WAAa,EAAA,KAAA;QACbC,YAAc,EAAA,IAAA;AACdxC,QAAAA,UAAAA,EAAY;KAEd,EAAA;AAAEyC,QAAAA,GAAAA,EAAKT,MAAOU,CAAAA,IAAI,CAACC,GAAG,CAACC;AAAK,KAAA,CAAA;AAEhC;AAEA;;IAGaC,MAAAA,eAAAA,GAAkB,OAC7BrE,GAAAA,EACA,EAAED,WAAW,EAAEsC,UAAa,GAAA,EAAE,EAAO,GAAA;AAErC,IAAA,MAAMP,OAAUC,GAAAA,KAAAA,EAAAA;AAEhB,IAAA,MAAMuC,iBAAiBxC,OAAQD,CAAAA,YAAY,CAACP,GAAG,CAACtB,KAAKc,MAAM;IAC3D,MAAMyD,YAAAA,GAAeD,eAAe9D,IAAI;IACxC,MAAMgE,OAAAA,GAAUzE,WAAYS,CAAAA,IAAI,IAAI+D,YAAAA;;IAGpC,MAAME,kBAAAA,GAAqBH,eAAe9C,UAAU;IACpD,MAAMkD,wBAAAA,GAA2B3D,mBAC9B4D,uBAAuB,CAACL,gBACxBM,MAAM,CAAC,CAACC,GAAK5B,EAAAA,GAAAA,GAAAA;AACZ,QAAA,IAAIA,OAAOwB,kBAAoB,EAAA;AAC7BI,YAAAA,GAAG,CAAC5B,GAAAA,CAAI,GAAGwB,kBAAkB,CAACxB,GAAI,CAAA;AACpC;QAEA,OAAO4B,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN9E,IAAAA,WAAAA,CAAYyB,UAAU,GAAGH,CAAAA,CAAEyD,KAAK,CAACJ,wBAAAA,EAA0B3E,YAAYyB,UAAU,CAAA;IAEjF,IAAIgD,OAAAA,KAAYD,YAAgBC,IAAAA,OAAAA,KAAY,YAAc,EAAA;QACxD,MAAMO,UAAAA,GAAa,MAAMvB,MAAOwB,CAAAA,EAAE,CAACC,KAAK,CAACjF,KAAKkF,KAAK,EAAA;AACnD,QAAA,IAAIH,aAAa,CAAG,EAAA;AAClB,YAAA,MAAM,IAAItF,gBACR,CAAA,wFAAA,CAAA;AAEJ;AACF;IAEA,MAAM8C,MAAAA,GAAST,OAAQU,CAAAA,wBAAwB,CAACH,UAAAA,CAAAA;AAChD,IAAA,MAAMI,iBAAiBC,+BAAqBH,CAAAA,MAAAA,CAAAA;IAE5C,MAAM4C,kBAAAA,GAAqBrD,OAAQuC,CAAAA,eAAe,CAAC;AACjDrE,QAAAA,GAAAA;AACA,QAAA,GAAGyC,eAAe1C,WAAY;AAChC,KAAA,CAAA;IAEAsC,UAAWW,CAAAA,OAAO,CAAC,CAACG,SAAAA,GAAAA;AAClB,QAAA,IAAI,CAAC9B,CAAAA,CAAE+B,GAAG,CAACD,WAAW,KAAQ,CAAA,EAAA;YAC5B,OAAOrB,OAAAA,CAAQuB,eAAe,CAACZ,cAAeU,CAAAA,SAAAA,CAAAA,CAAAA;AAChD;QAEA,OAAOrB,OAAAA,CAAQwB,aAAa,CAACb,cAAeU,CAAAA,SAAAA,CAAAA,CAAAA;AAC9C,KAAA,CAAA;AAEA,IAAA,IAAIqB,YAAYD,YAAc,EAAA;AAC5B,QAAA,MAAMa,aAAa5B,MAAO9C,CAAAA,MAAM,CAAC,sBAAA,CAAA,CAAwB2E,OAAO,CAAC,aAAA,CAAA;QACjE,MAAMD,UAAAA,CAAWE,MAAM,CAACtF,GAAAA,CAAAA;QAExB,IAAI;YACF,MAAMoF,UAAAA,CAAWG,KAAK,CAACvF,GAAAA,CAAAA;;AAGvB,YAAA,MAAMuD,WAAY,CAAA;AAChBtC,gBAAAA,WAAAA,EAAakE,kBAAmBrE,CAAAA,MAAM,CAACF,IAAI,CAACK,WAAW;AACvDC,gBAAAA,YAAAA,EAAciE,kBAAmBrE,CAAAA,MAAM,CAACF,IAAI,CAACM,YAAY;AACzDC,gBAAAA,UAAAA,EAAYgE,kBAAmBrE,CAAAA,MAAM,CAACF,IAAI,CAACO,UAAU;gBACrDX,IAAM2E,EAAAA,kBAAAA,CAAmBrE,MAAM,CAACN;AAClC,aAAA,CAAA;AAEA,YAAA,MAAMsB,QAAQM,UAAU,EAAA;AAC1B,SAAA,CAAE,OAAOoD,KAAO,EAAA;YACdhC,MAAOiC,CAAAA,GAAG,CAACD,KAAK,CAACA,KAAAA,CAAAA;YACjB,MAAMJ,UAAAA,CAAWM,QAAQ,CAAC1F,GAAAA,CAAAA;AAC5B;QAEA,OAAOmF,kBAAAA;AACT;AAEA,IAAA,MAAMrD,QAAQM,UAAU,EAAA;AAExBoB,IAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,qBAAuB,EAAA;QAAE3D,WAAaoF,EAAAA;AAAmB,KAAA,CAAA;IAE9E,OAAOA,kBAAAA;AACT;AAEO,MAAMQ,qBAAqB,OAAOC,IAAAA,GAAAA;AACvC,IAAA,MAAM9D,OAAUC,GAAAA,KAAAA,EAAAA;AAChB,IAAA,MAAMqD,aAAa5B,MAAO9C,CAAAA,MAAM,CAAC,sBAAA,CAAA,CAAwB2E,OAAO,CAAC,aAAA,CAAA;IAEjE,KAAK,MAAMrF,OAAO4F,IAAM,CAAA;AACtB,QAAA,MAAMC,kBAAkB7F,GAAK8B,EAAAA,OAAAA,CAAAA;AAC/B;AAEA,IAAA,MAAMA,QAAQM,UAAU,EAAA;IACxB,KAAK,MAAMpC,OAAO4F,IAAM,CAAA;QACtB,IAAI;YACF,MAAMR,UAAAA,CAAWG,KAAK,CAACvF,GAAAA,CAAAA;AACzB,SAAA,CAAE,OAAOwF,KAAO,EAAA;YACdhC,MAAOiC,CAAAA,GAAG,CAACD,KAAK,CAACA,KAAAA,CAAAA;YACjB,MAAMJ,UAAAA,CAAWM,QAAQ,CAAC1F,GAAAA,CAAAA;AAC5B;AACF;AACF;AAEA;;AAEC,IACY6F,MAAAA,iBAAAA,GAAoB,OAAO7F,GAAAA,EAAsBmC,iBAAsB2D,SAAS,GAAA;AAC3F,IAAA,MAAMhE,UAAUK,cAAkBJ,IAAAA,KAAAA,EAAAA;;AAElC,IAAA,MAAMqD,aAAa5B,MAAO9C,CAAAA,MAAM,CAAC,sBAAA,CAAA,CAAwB2E,OAAO,CAAC,aAAA,CAAA;IACjE,MAAMD,UAAAA,CAAWE,MAAM,CAACtF,GAAAA,CAAAA;IAExB,MAAMD,WAAAA,GAAc+B,OAAQ+D,CAAAA,iBAAiB,CAAC7F,GAAAA,CAAAA;AAE9C,IAAA,IAAI,CAACmC,cAAgB,EAAA;QACnB,IAAI;AACF,YAAA,MAAML,QAAQM,UAAU,EAAA;YACxB,MAAMgD,UAAAA,CAAWG,KAAK,CAACvF,GAAAA,CAAAA;AACzB,SAAA,CAAE,OAAOwF,KAAO,EAAA;YACd,MAAMJ,UAAAA,CAAWM,QAAQ,CAAC1F,GAAAA,CAAAA;AAC5B;AACF;AAEAwD,IAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAC,qBAAuB,EAAA;AAAE3D,QAAAA;AAAY,KAAA,CAAA;IAE1D,OAAOA,WAAAA;AACT;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { getOr } from 'lodash/fp';
|
|
3
|
+
import { contentTypes, errors } from '@strapi/utils';
|
|
4
|
+
import { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes.mjs';
|
|
5
|
+
import createBuilder from './schema-builder/index.mjs';
|
|
6
|
+
import { coreUids, pluginsUids } from './constants.mjs';
|
|
7
|
+
|
|
8
|
+
const { ApplicationError } = errors;
|
|
9
|
+
const isContentTypeVisible = (model)=>getOr(true, 'pluginOptions.content-type-builder.visible', model) === true;
|
|
10
|
+
const getRestrictRelationsTo = (contentType)=>{
|
|
11
|
+
const { uid } = contentType;
|
|
12
|
+
if (uid === coreUids.STRAPI_USER) {
|
|
13
|
+
// TODO: replace with an obj { relation: 'x', bidirectional: true|false }
|
|
14
|
+
return [
|
|
15
|
+
'oneWay',
|
|
16
|
+
'manyWay'
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
if (uid.startsWith(coreUids.PREFIX) || uid === pluginsUids.UPLOAD_FILE || !isContentTypeVisible(contentType)) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Format a contentType info to be used by the front-end
|
|
26
|
+
*/ const formatContentType = (contentType)=>{
|
|
27
|
+
const { uid, kind, modelName, plugin, collectionName, info } = contentType;
|
|
28
|
+
return {
|
|
29
|
+
uid,
|
|
30
|
+
plugin,
|
|
31
|
+
apiID: modelName,
|
|
32
|
+
schema: {
|
|
33
|
+
...contentTypes.getOptions(contentType),
|
|
34
|
+
displayName: info.displayName,
|
|
35
|
+
singularName: info.singularName,
|
|
36
|
+
pluralName: info.pluralName,
|
|
37
|
+
description: _.get(info, 'description', ''),
|
|
38
|
+
pluginOptions: contentType.pluginOptions,
|
|
39
|
+
kind: kind || 'collectionType',
|
|
40
|
+
collectionName,
|
|
41
|
+
attributes: formatAttributes(contentType),
|
|
42
|
+
visible: isContentTypeVisible(contentType),
|
|
43
|
+
restrictRelationsTo: getRestrictRelationsTo(contentType)
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const createContentTypes = async (contentTypes)=>{
|
|
48
|
+
const builder = createBuilder();
|
|
49
|
+
const createdContentTypes = [];
|
|
50
|
+
for (const contentType of contentTypes){
|
|
51
|
+
createdContentTypes.push(await createContentType(contentType, {
|
|
52
|
+
defaultBuilder: builder
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
await builder.writeFiles();
|
|
56
|
+
return createdContentTypes;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Creates a content type and handle the nested components sent with it
|
|
60
|
+
*/ const createContentType = async ({ contentType, components }, options = {})=>{
|
|
61
|
+
const builder = options.defaultBuilder || createBuilder();
|
|
62
|
+
const uidMap = builder.createNewComponentUIDMap(components || []);
|
|
63
|
+
const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);
|
|
64
|
+
const newContentType = builder.createContentType(replaceTmpUIDs(contentType));
|
|
65
|
+
// allow components to target the new contentType
|
|
66
|
+
const targetContentType = (infos)=>{
|
|
67
|
+
Object.keys(infos.attributes).forEach((key)=>{
|
|
68
|
+
const { target } = infos.attributes[key];
|
|
69
|
+
if (target === '__contentType__') {
|
|
70
|
+
infos.attributes[key].target = newContentType.uid;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return infos;
|
|
74
|
+
};
|
|
75
|
+
components?.forEach((component)=>{
|
|
76
|
+
const options = replaceTmpUIDs(targetContentType(component));
|
|
77
|
+
if (!_.has(component, 'uid')) {
|
|
78
|
+
return builder.createComponent(options);
|
|
79
|
+
}
|
|
80
|
+
return builder.editComponent(options);
|
|
81
|
+
});
|
|
82
|
+
// generate api skeleton
|
|
83
|
+
await generateAPI({
|
|
84
|
+
displayName: contentType.displayName || contentType.info.displayName,
|
|
85
|
+
singularName: contentType.singularName,
|
|
86
|
+
pluralName: contentType.pluralName,
|
|
87
|
+
kind: contentType.kind
|
|
88
|
+
});
|
|
89
|
+
if (!options.defaultBuilder) {
|
|
90
|
+
await builder.writeFiles();
|
|
91
|
+
}
|
|
92
|
+
strapi.eventHub.emit('content-type.create', {
|
|
93
|
+
contentType: newContentType
|
|
94
|
+
});
|
|
95
|
+
return newContentType;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Generate an API skeleton
|
|
99
|
+
*/ const generateAPI = ({ singularName, kind = 'collectionType', pluralName, displayName })=>{
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
101
|
+
const strapiGenerators = require('@strapi/generators');
|
|
102
|
+
return strapiGenerators.generate('content-type', {
|
|
103
|
+
kind,
|
|
104
|
+
singularName,
|
|
105
|
+
id: singularName,
|
|
106
|
+
pluralName,
|
|
107
|
+
displayName,
|
|
108
|
+
destination: 'new',
|
|
109
|
+
bootstrapApi: true,
|
|
110
|
+
attributes: []
|
|
111
|
+
}, {
|
|
112
|
+
dir: strapi.dirs.app.root
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Edits a contentType and handle the nested contentTypes sent with it
|
|
117
|
+
*/ const editContentType = async (uid, { contentType, components = [] })=>{
|
|
118
|
+
const builder = createBuilder();
|
|
119
|
+
const previousSchema = builder.contentTypes.get(uid).schema;
|
|
120
|
+
const previousKind = previousSchema.kind;
|
|
121
|
+
const newKind = contentType.kind || previousKind;
|
|
122
|
+
// Restore non-visible attributes from previous schema
|
|
123
|
+
const previousAttributes = previousSchema.attributes;
|
|
124
|
+
const prevNonVisibleAttributes = contentTypes.getNonVisibleAttributes(previousSchema).reduce((acc, key)=>{
|
|
125
|
+
if (key in previousAttributes) {
|
|
126
|
+
acc[key] = previousAttributes[key];
|
|
127
|
+
}
|
|
128
|
+
return acc;
|
|
129
|
+
}, {});
|
|
130
|
+
contentType.attributes = _.merge(prevNonVisibleAttributes, contentType.attributes);
|
|
131
|
+
if (newKind !== previousKind && newKind === 'singleType') {
|
|
132
|
+
const entryCount = await strapi.db.query(uid).count();
|
|
133
|
+
if (entryCount > 1) {
|
|
134
|
+
throw new ApplicationError('You cannot convert a collectionType to a singleType when having multiple entries in DB');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const uidMap = builder.createNewComponentUIDMap(components);
|
|
138
|
+
const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);
|
|
139
|
+
const updatedContentType = builder.editContentType({
|
|
140
|
+
uid,
|
|
141
|
+
...replaceTmpUIDs(contentType)
|
|
142
|
+
});
|
|
143
|
+
components.forEach((component)=>{
|
|
144
|
+
if (!_.has(component, 'uid')) {
|
|
145
|
+
return builder.createComponent(replaceTmpUIDs(component));
|
|
146
|
+
}
|
|
147
|
+
return builder.editComponent(replaceTmpUIDs(component));
|
|
148
|
+
});
|
|
149
|
+
if (newKind !== previousKind) {
|
|
150
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
151
|
+
await apiHandler.backup(uid);
|
|
152
|
+
try {
|
|
153
|
+
await apiHandler.clear(uid);
|
|
154
|
+
// generate new api skeleton
|
|
155
|
+
await generateAPI({
|
|
156
|
+
displayName: updatedContentType.schema.info.displayName,
|
|
157
|
+
singularName: updatedContentType.schema.info.singularName,
|
|
158
|
+
pluralName: updatedContentType.schema.info.pluralName,
|
|
159
|
+
kind: updatedContentType.schema.kind
|
|
160
|
+
});
|
|
161
|
+
await builder.writeFiles();
|
|
162
|
+
} catch (error) {
|
|
163
|
+
strapi.log.error(error);
|
|
164
|
+
await apiHandler.rollback(uid);
|
|
165
|
+
}
|
|
166
|
+
return updatedContentType;
|
|
167
|
+
}
|
|
168
|
+
await builder.writeFiles();
|
|
169
|
+
strapi.eventHub.emit('content-type.update', {
|
|
170
|
+
contentType: updatedContentType
|
|
171
|
+
});
|
|
172
|
+
return updatedContentType;
|
|
173
|
+
};
|
|
174
|
+
const deleteContentTypes = async (uids)=>{
|
|
175
|
+
const builder = createBuilder();
|
|
176
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
177
|
+
for (const uid of uids){
|
|
178
|
+
await deleteContentType(uid, builder);
|
|
179
|
+
}
|
|
180
|
+
await builder.writeFiles();
|
|
181
|
+
for (const uid of uids){
|
|
182
|
+
try {
|
|
183
|
+
await apiHandler.clear(uid);
|
|
184
|
+
} catch (error) {
|
|
185
|
+
strapi.log.error(error);
|
|
186
|
+
await apiHandler.rollback(uid);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Deletes a content type and the api files related to it
|
|
192
|
+
*/ const deleteContentType = async (uid, defaultBuilder = undefined)=>{
|
|
193
|
+
const builder = defaultBuilder || createBuilder();
|
|
194
|
+
// make a backup
|
|
195
|
+
const apiHandler = strapi.plugin('content-type-builder').service('api-handler');
|
|
196
|
+
await apiHandler.backup(uid);
|
|
197
|
+
const contentType = builder.deleteContentType(uid);
|
|
198
|
+
if (!defaultBuilder) {
|
|
199
|
+
try {
|
|
200
|
+
await builder.writeFiles();
|
|
201
|
+
await apiHandler.clear(uid);
|
|
202
|
+
} catch (error) {
|
|
203
|
+
await apiHandler.rollback(uid);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
strapi.eventHub.emit('content-type.delete', {
|
|
207
|
+
contentType
|
|
208
|
+
});
|
|
209
|
+
return contentType;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
export { createContentType, createContentTypes, deleteContentType, deleteContentTypes, editContentType, formatContentType, generateAPI, getRestrictRelationsTo, isContentTypeVisible };
|
|
213
|
+
//# sourceMappingURL=content-types.mjs.map
|