@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,14 @@
|
|
|
1
|
+
import builder from './builder.mjs';
|
|
2
|
+
import componentCategories from './component-categories.mjs';
|
|
3
|
+
import components from './components.mjs';
|
|
4
|
+
import contentTypes from './content-types.mjs';
|
|
5
|
+
|
|
6
|
+
const exportObject = {
|
|
7
|
+
builder,
|
|
8
|
+
'component-categories': componentCategories,
|
|
9
|
+
components,
|
|
10
|
+
'content-types': contentTypes
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { exportObject as default };
|
|
14
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import builder from './builder';\nimport componentCategories from './component-categories';\nimport components from './components';\nimport contentTypes from './content-types';\n\nconst exportObject = {\n builder,\n 'component-categories': componentCategories,\n components,\n 'content-types': contentTypes,\n};\n\nexport default exportObject;\n"],"names":["exportObject","builder","componentCategories","components","contentTypes"],"mappings":";;;;;AAKA,MAAMA,YAAe,GAAA;AACnBC,IAAAA,OAAAA;IACA,sBAAwBC,EAAAA,mBAAAA;AACxBC,IAAAA,UAAAA;IACA,eAAiBC,EAAAA;AACnB;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
var _ = require('lodash');
|
|
5
|
+
|
|
6
|
+
const validators = {
|
|
7
|
+
required: utils.yup.boolean(),
|
|
8
|
+
unique: utils.yup.boolean(),
|
|
9
|
+
minLength: utils.yup.number().integer().positive(),
|
|
10
|
+
maxLength: utils.yup.number().integer().positive()
|
|
11
|
+
};
|
|
12
|
+
const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;
|
|
13
|
+
const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
|
|
14
|
+
const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
|
|
15
|
+
const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;
|
|
16
|
+
const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;
|
|
17
|
+
const isValidName = {
|
|
18
|
+
name: 'isValidName',
|
|
19
|
+
message: `\${path} must match the following regex: ${NAME_REGEX}`,
|
|
20
|
+
test: (val)=>val === '' || NAME_REGEX.test(val)
|
|
21
|
+
};
|
|
22
|
+
const isValidIcon = {
|
|
23
|
+
name: 'isValidIcon',
|
|
24
|
+
message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
|
|
25
|
+
test: (val)=>val === '' || ICON_REGEX.test(val)
|
|
26
|
+
};
|
|
27
|
+
const isValidUID = {
|
|
28
|
+
name: 'isValidUID',
|
|
29
|
+
message: `\${path} must match the following regex: ${UID_REGEX}`,
|
|
30
|
+
test: (val)=>val === '' || UID_REGEX.test(val)
|
|
31
|
+
};
|
|
32
|
+
const isValidCategoryName = {
|
|
33
|
+
name: 'isValidCategoryName',
|
|
34
|
+
message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
|
|
35
|
+
test: (val)=>val === '' || CATEGORY_NAME_REGEX.test(val)
|
|
36
|
+
};
|
|
37
|
+
const isValidCollectionName = {
|
|
38
|
+
name: 'isValidCollectionName',
|
|
39
|
+
message: `\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,
|
|
40
|
+
test: (val)=>val === '' || COLLECTION_NAME_REGEX.test(val)
|
|
41
|
+
};
|
|
42
|
+
const isValidKey = (key)=>({
|
|
43
|
+
name: 'isValidKey',
|
|
44
|
+
message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,
|
|
45
|
+
test: ()=>NAME_REGEX.test(key)
|
|
46
|
+
});
|
|
47
|
+
const isValidEnum = {
|
|
48
|
+
name: 'isValidEnum',
|
|
49
|
+
message: '${path} should not start with number',
|
|
50
|
+
test: (val)=>val === '' || !utils.strings.startsWithANumber(val)
|
|
51
|
+
};
|
|
52
|
+
const areEnumValuesUnique = {
|
|
53
|
+
name: 'areEnumValuesUnique',
|
|
54
|
+
message: '${path} cannot contain duplicate values',
|
|
55
|
+
test (values) {
|
|
56
|
+
const filtered = [
|
|
57
|
+
...new Set(values)
|
|
58
|
+
];
|
|
59
|
+
return filtered.length === values.length;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const isValidRegExpPattern = {
|
|
63
|
+
name: 'isValidRegExpPattern',
|
|
64
|
+
message: '${path} must be a valid RexExp pattern string',
|
|
65
|
+
test: (val)=>val === '' || !!new RegExp(val)
|
|
66
|
+
};
|
|
67
|
+
const isValidDefaultJSON = {
|
|
68
|
+
name: 'isValidDefaultJSON',
|
|
69
|
+
message: '${path} is not a valid JSON',
|
|
70
|
+
test (val) {
|
|
71
|
+
if (val === undefined) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
JSON.parse(val);
|
|
79
|
+
return true;
|
|
80
|
+
} catch (err) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
exports.CATEGORY_NAME_REGEX = CATEGORY_NAME_REGEX;
|
|
87
|
+
exports.COLLECTION_NAME_REGEX = COLLECTION_NAME_REGEX;
|
|
88
|
+
exports.ICON_REGEX = ICON_REGEX;
|
|
89
|
+
exports.NAME_REGEX = NAME_REGEX;
|
|
90
|
+
exports.UID_REGEX = UID_REGEX;
|
|
91
|
+
exports.areEnumValuesUnique = areEnumValuesUnique;
|
|
92
|
+
exports.isValidCategoryName = isValidCategoryName;
|
|
93
|
+
exports.isValidCollectionName = isValidCollectionName;
|
|
94
|
+
exports.isValidDefaultJSON = isValidDefaultJSON;
|
|
95
|
+
exports.isValidEnum = isValidEnum;
|
|
96
|
+
exports.isValidIcon = isValidIcon;
|
|
97
|
+
exports.isValidKey = isValidKey;
|
|
98
|
+
exports.isValidName = isValidName;
|
|
99
|
+
exports.isValidRegExpPattern = isValidRegExpPattern;
|
|
100
|
+
exports.isValidUID = isValidUID;
|
|
101
|
+
exports.validators = validators;
|
|
102
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","isValidName","name","message","test","val","isValidIcon","isValidUID","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":";;;;;MAKaA,UAAa,GAAA;AACxBC,IAAAA,QAAAA,EAAUC,UAAIC,OAAO,EAAA;AACrBC,IAAAA,MAAAA,EAAQF,UAAIC,OAAO,EAAA;AACnBE,IAAAA,SAAAA,EAAWH,SAAII,CAAAA,MAAM,EAAGC,CAAAA,OAAO,GAAGC,QAAQ,EAAA;AAC1CC,IAAAA,SAAAA,EAAWP,SAAII,CAAAA,MAAM,EAAGC,CAAAA,OAAO,GAAGC,QAAQ;AAC5C;AAEO,MAAME,aAAa;AACnB,MAAMC,wBAAwB;AAC9B,MAAMC,sBAAsB;AAC5B,MAAMC,aAAa;AACnB,MAAMC,YAAY;MAIZC,WAAgC,GAAA;IAC3CC,IAAM,EAAA,aAAA;AACNC,IAAAA,OAAAA,EAAS,CAAC,yCAAyC,EAAEP,UAAAA,CAAW,CAAC;AACjEQ,IAAAA,IAAAA,EAAM,CAACC,GAAiBA,GAAAA,GAAAA,KAAQ,EAAMT,IAAAA,UAAAA,CAAWQ,IAAI,CAACC,GAAAA;AACxD;MAEaC,WAAgC,GAAA;IAC3CJ,IAAM,EAAA,aAAA;IACNC,OAAS,EAAA,CAAC,sJAAsJ,CAAC;AACjKC,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,EAAMN,IAAAA,UAAAA,CAAWK,IAAI,CAACC,GAAAA;AAC/C;MAEaE,UAA+B,GAAA;IAC1CL,IAAM,EAAA,YAAA;AACNC,IAAAA,OAAAA,EAAS,CAAC,yCAAyC,EAAEH,SAAAA,CAAU,CAAC;AAChEI,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,EAAML,IAAAA,SAAAA,CAAUI,IAAI,CAACC,GAAAA;AAC9C;MAEaG,mBAAwC,GAAA;IACnDN,IAAM,EAAA,qBAAA;AACNC,IAAAA,OAAAA,EAAS,CAAC,yCAAyC,EAAEL,mBAAAA,CAAoB,CAAC;AAC1EM,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,EAAMP,IAAAA,mBAAAA,CAAoBM,IAAI,CAACC,GAAAA;AACxD;MAEaI,qBAA0C,GAAA;IACrDP,IAAM,EAAA,uBAAA;AACNC,IAAAA,OAAAA,EAAS,CAAC,yCAAyC,EAAEN,qBAAAA,CAAsB,CAAC;AAC5EO,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,EAAMR,IAAAA,qBAAAA,CAAsBO,IAAI,CAACC,GAAAA;AAC1D;AAEaK,MAAAA,UAAAA,GAAa,CAACC,GAAAA,IAAmC;QAC5DT,IAAM,EAAA,YAAA;AACNC,QAAAA,OAAAA,EAAS,CAAC,gBAAgB,EAAEQ,IAAI,kCAAkC,EAAEf,WAAW,CAAC;QAChFQ,IAAM,EAAA,IAAMR,UAAWQ,CAAAA,IAAI,CAACO,GAAAA;AAC9B,KAAA;MAEaC,WAAgC,GAAA;IAC3CV,IAAM,EAAA,aAAA;IACNC,OAAS,EAAA,sCAAA;AACTC,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,MAAM,CAACQ,aAAAA,CAAQC,iBAAiB,CAACT,GAAAA;AAC1D;MAEaU,mBAAwC,GAAA;IACnDb,IAAM,EAAA,qBAAA;IACNC,OAAS,EAAA,yCAAA;AACTC,IAAAA,IAAAA,CAAAA,CAAKY,MAAM,EAAA;AACT,QAAA,MAAMC,QAAW,GAAA;AAAI,YAAA,GAAA,IAAIC,GAAIF,CAAAA,MAAAA;AAAoB,SAAA;AAEjD,QAAA,OAAOC,QAASE,CAAAA,MAAM,KAAMH,OAAoBG,MAAM;AACxD;AACF;MAEaC,oBAAyC,GAAA;IACpDlB,IAAM,EAAA,sBAAA;IACNC,OAAS,EAAA,+CAAA;AACTC,IAAAA,IAAAA,EAAM,CAACC,GAAQA,GAAAA,GAAAA,KAAQ,MAAM,CAAC,CAAC,IAAIgB,MAAOhB,CAAAA,GAAAA;AAC5C;MAEaiB,kBAAuC,GAAA;IAClDpB,IAAM,EAAA,oBAAA;IACNC,OAAS,EAAA,6BAAA;AACTC,IAAAA,IAAAA,CAAAA,CAAKC,GAAG,EAAA;AACN,QAAA,IAAIA,QAAQkB,SAAW,EAAA;YACrB,OAAO,IAAA;AACT;AAEA,QAAA,IAAIC,CAAEC,CAAAA,QAAQ,CAACpB,GAAAA,CAAAA,IAAQmB,EAAEE,MAAM,CAACrB,GAAQmB,CAAAA,IAAAA,CAAAA,CAAEG,QAAQ,CAACtB,GAAAA,CAAAA,IAAQmB,CAAEI,CAAAA,OAAO,CAACvB,GAAM,CAAA,EAAA;YACzE,OAAO,IAAA;AACT;QAEA,IAAI;AACFwB,YAAAA,IAAAA,CAAKC,KAAK,CAACzB,GAAAA,CAAAA;YAEX,OAAO,IAAA;AACT,SAAA,CAAE,OAAO0B,GAAK,EAAA;YACZ,OAAO,KAAA;AACT;AACF;AACF;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { yup, strings } from '@strapi/utils';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
|
|
4
|
+
const validators = {
|
|
5
|
+
required: yup.boolean(),
|
|
6
|
+
unique: yup.boolean(),
|
|
7
|
+
minLength: yup.number().integer().positive(),
|
|
8
|
+
maxLength: yup.number().integer().positive()
|
|
9
|
+
};
|
|
10
|
+
const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;
|
|
11
|
+
const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
|
|
12
|
+
const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
|
|
13
|
+
const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;
|
|
14
|
+
const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;
|
|
15
|
+
const isValidName = {
|
|
16
|
+
name: 'isValidName',
|
|
17
|
+
message: `\${path} must match the following regex: ${NAME_REGEX}`,
|
|
18
|
+
test: (val)=>val === '' || NAME_REGEX.test(val)
|
|
19
|
+
};
|
|
20
|
+
const isValidIcon = {
|
|
21
|
+
name: 'isValidIcon',
|
|
22
|
+
message: `\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,
|
|
23
|
+
test: (val)=>val === '' || ICON_REGEX.test(val)
|
|
24
|
+
};
|
|
25
|
+
const isValidUID = {
|
|
26
|
+
name: 'isValidUID',
|
|
27
|
+
message: `\${path} must match the following regex: ${UID_REGEX}`,
|
|
28
|
+
test: (val)=>val === '' || UID_REGEX.test(val)
|
|
29
|
+
};
|
|
30
|
+
const isValidCategoryName = {
|
|
31
|
+
name: 'isValidCategoryName',
|
|
32
|
+
message: `\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,
|
|
33
|
+
test: (val)=>val === '' || CATEGORY_NAME_REGEX.test(val)
|
|
34
|
+
};
|
|
35
|
+
const isValidCollectionName = {
|
|
36
|
+
name: 'isValidCollectionName',
|
|
37
|
+
message: `\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,
|
|
38
|
+
test: (val)=>val === '' || COLLECTION_NAME_REGEX.test(val)
|
|
39
|
+
};
|
|
40
|
+
const isValidKey = (key)=>({
|
|
41
|
+
name: 'isValidKey',
|
|
42
|
+
message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,
|
|
43
|
+
test: ()=>NAME_REGEX.test(key)
|
|
44
|
+
});
|
|
45
|
+
const isValidEnum = {
|
|
46
|
+
name: 'isValidEnum',
|
|
47
|
+
message: '${path} should not start with number',
|
|
48
|
+
test: (val)=>val === '' || !strings.startsWithANumber(val)
|
|
49
|
+
};
|
|
50
|
+
const areEnumValuesUnique = {
|
|
51
|
+
name: 'areEnumValuesUnique',
|
|
52
|
+
message: '${path} cannot contain duplicate values',
|
|
53
|
+
test (values) {
|
|
54
|
+
const filtered = [
|
|
55
|
+
...new Set(values)
|
|
56
|
+
];
|
|
57
|
+
return filtered.length === values.length;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const isValidRegExpPattern = {
|
|
61
|
+
name: 'isValidRegExpPattern',
|
|
62
|
+
message: '${path} must be a valid RexExp pattern string',
|
|
63
|
+
test: (val)=>val === '' || !!new RegExp(val)
|
|
64
|
+
};
|
|
65
|
+
const isValidDefaultJSON = {
|
|
66
|
+
name: 'isValidDefaultJSON',
|
|
67
|
+
message: '${path} is not a valid JSON',
|
|
68
|
+
test (val) {
|
|
69
|
+
if (val === undefined) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
JSON.parse(val);
|
|
77
|
+
return true;
|
|
78
|
+
} catch (err) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { CATEGORY_NAME_REGEX, COLLECTION_NAME_REGEX, ICON_REGEX, NAME_REGEX, UID_REGEX, areEnumValuesUnique, isValidCategoryName, isValidCollectionName, isValidDefaultJSON, isValidEnum, isValidIcon, isValidKey, isValidName, isValidRegExpPattern, isValidUID, validators };
|
|
85
|
+
//# sourceMappingURL=common.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.mjs","sources":["../../../../server/src/controllers/validation/common.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { yup, strings } from '@strapi/utils';\nimport _ from 'lodash';\nimport { TestConfig } from 'yup';\n\nexport const validators = {\n required: yup.boolean(),\n unique: yup.boolean(),\n minLength: yup.number().integer().positive(),\n maxLength: yup.number().integer().positive(),\n};\n\nexport const NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\nexport const COLLECTION_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\nexport const ICON_REGEX = /^[A-Za-z0-9][-A-Za-z0-9]*$/;\nexport const UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\nexport type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;\n\nexport const isValidName: CommonTestConfig = {\n name: 'isValidName',\n message: `\\${path} must match the following regex: ${NAME_REGEX}`,\n test: (val: unknown) => val === '' || NAME_REGEX.test(val as string),\n};\n\nexport const isValidIcon: CommonTestConfig = {\n name: 'isValidIcon',\n message: `\\${path} is not a valid icon name. Make sure your icon name starts with an alphanumeric character and only includes alphanumeric characters or dashes.`,\n test: (val) => val === '' || ICON_REGEX.test(val as string),\n};\n\nexport const isValidUID: CommonTestConfig = {\n name: 'isValidUID',\n message: `\\${path} must match the following regex: ${UID_REGEX}`,\n test: (val) => val === '' || UID_REGEX.test(val as string),\n};\n\nexport const isValidCategoryName: CommonTestConfig = {\n name: 'isValidCategoryName',\n message: `\\${path} must match the following regex: ${CATEGORY_NAME_REGEX}`,\n test: (val) => val === '' || CATEGORY_NAME_REGEX.test(val as string),\n};\n\nexport const isValidCollectionName: CommonTestConfig = {\n name: 'isValidCollectionName',\n message: `\\${path} must match the following regex: ${COLLECTION_NAME_REGEX}`,\n test: (val) => val === '' || COLLECTION_NAME_REGEX.test(val as string),\n};\n\nexport const isValidKey = (key: string): CommonTestConfig => ({\n name: 'isValidKey',\n message: `Attribute name '${key}' must match the following regex: ${NAME_REGEX}`,\n test: () => NAME_REGEX.test(key),\n});\n\nexport const isValidEnum: CommonTestConfig = {\n name: 'isValidEnum',\n message: '${path} should not start with number',\n test: (val) => val === '' || !strings.startsWithANumber(val as string),\n};\n\nexport const areEnumValuesUnique: CommonTestConfig = {\n name: 'areEnumValuesUnique',\n message: '${path} cannot contain duplicate values',\n test(values) {\n const filtered = [...new Set(values as string[])];\n\n return filtered.length === (values as string[]).length;\n },\n};\n\nexport const isValidRegExpPattern: CommonTestConfig = {\n name: 'isValidRegExpPattern',\n message: '${path} must be a valid RexExp pattern string',\n test: (val) => val === '' || !!new RegExp(val as string),\n};\n\nexport const isValidDefaultJSON: CommonTestConfig = {\n name: 'isValidDefaultJSON',\n message: '${path} is not a valid JSON',\n test(val) {\n if (val === undefined) {\n return true;\n }\n\n if (_.isNumber(val) || _.isNull(val) || _.isObject(val) || _.isArray(val)) {\n return true;\n }\n\n try {\n JSON.parse(val as string);\n\n return true;\n } catch (err) {\n return false;\n }\n },\n};\n"],"names":["validators","required","yup","boolean","unique","minLength","number","integer","positive","maxLength","NAME_REGEX","COLLECTION_NAME_REGEX","CATEGORY_NAME_REGEX","ICON_REGEX","UID_REGEX","isValidName","name","message","test","val","isValidIcon","isValidUID","isValidCategoryName","isValidCollectionName","isValidKey","key","isValidEnum","strings","startsWithANumber","areEnumValuesUnique","values","filtered","Set","length","isValidRegExpPattern","RegExp","isValidDefaultJSON","undefined","_","isNumber","isNull","isObject","isArray","JSON","parse","err"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
var common = require('./common.js');
|
|
5
|
+
|
|
6
|
+
const componentCategorySchema = utils.yup.object({
|
|
7
|
+
name: utils.yup.string().min(3).test(common.isValidCategoryName).required('name.required')
|
|
8
|
+
}).noUnknown();
|
|
9
|
+
var validateComponentCategory = utils.validateYupSchema(componentCategorySchema);
|
|
10
|
+
|
|
11
|
+
module.exports = validateComponentCategory;
|
|
12
|
+
//# sourceMappingURL=component-category.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-category.js","sources":["../../../../server/src/controllers/validation/component-category.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isValidCategoryName } from './common';\n\nconst componentCategorySchema = yup\n .object({\n name: yup.string().min(3).test(isValidCategoryName).required('name.required'),\n })\n .noUnknown();\n\nexport default validateYupSchema(componentCategorySchema);\n"],"names":["componentCategorySchema","yup","object","name","string","min","test","isValidCategoryName","required","noUnknown","validateYupSchema"],"mappings":";;;;;AAGA,MAAMA,uBAAAA,GAA0BC,SAC7BC,CAAAA,MAAM,CAAC;IACNC,IAAMF,EAAAA,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,IAAI,CAACC,0BAAqBC,CAAAA,CAAAA,QAAQ,CAAC,eAAA;AAC/D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,gCAAeC,wBAAkBV,uBAAyB,CAAA;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { yup, validateYupSchema } from '@strapi/utils';
|
|
2
|
+
import { isValidCategoryName } from './common.mjs';
|
|
3
|
+
|
|
4
|
+
const componentCategorySchema = yup.object({
|
|
5
|
+
name: yup.string().min(3).test(isValidCategoryName).required('name.required')
|
|
6
|
+
}).noUnknown();
|
|
7
|
+
var validateComponentCategory = validateYupSchema(componentCategorySchema);
|
|
8
|
+
|
|
9
|
+
export { validateComponentCategory as default };
|
|
10
|
+
//# sourceMappingURL=component-category.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-category.mjs","sources":["../../../../server/src/controllers/validation/component-category.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isValidCategoryName } from './common';\n\nconst componentCategorySchema = yup\n .object({\n name: yup.string().min(3).test(isValidCategoryName).required('name.required'),\n })\n .noUnknown();\n\nexport default validateYupSchema(componentCategorySchema);\n"],"names":["componentCategorySchema","yup","object","name","string","min","test","isValidCategoryName","required","noUnknown","validateYupSchema"],"mappings":";;;AAGA,MAAMA,uBAAAA,GAA0BC,GAC7BC,CAAAA,MAAM,CAAC;IACNC,IAAMF,EAAAA,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,GAAGC,IAAI,CAACC,mBAAqBC,CAAAA,CAAAA,QAAQ,CAAC,eAAA;AAC/D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,gCAAeC,kBAAkBV,uBAAyB,CAAA;;;;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var constants = require('../../services/constants.js');
|
|
6
|
+
var common = require('./common.js');
|
|
7
|
+
var modelSchema = require('./model-schema.js');
|
|
8
|
+
var dataTransform = require('./data-transform.js');
|
|
9
|
+
|
|
10
|
+
const VALID_RELATIONS = [
|
|
11
|
+
'oneToOne',
|
|
12
|
+
'oneToMany'
|
|
13
|
+
];
|
|
14
|
+
const VALID_TYPES = [
|
|
15
|
+
...constants.DEFAULT_TYPES,
|
|
16
|
+
'component',
|
|
17
|
+
'customField'
|
|
18
|
+
];
|
|
19
|
+
const componentSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS, {
|
|
20
|
+
modelType: constants.modelTypes.COMPONENT
|
|
21
|
+
}).shape({
|
|
22
|
+
displayName: utils.yup.string().min(1).required('displayName.required'),
|
|
23
|
+
icon: utils.yup.string().nullable().test(common.isValidIcon),
|
|
24
|
+
category: utils.yup.string().nullable().test(common.isValidCategoryName).required('category.required')
|
|
25
|
+
}).required().noUnknown();
|
|
26
|
+
const nestedComponentSchema = utils.yup.array().of(componentSchema.shape({
|
|
27
|
+
uid: utils.yup.string(),
|
|
28
|
+
tmpUID: utils.yup.string()
|
|
29
|
+
}).test({
|
|
30
|
+
name: 'mustHaveUIDOrTmpUID',
|
|
31
|
+
message: 'Component must have a uid or a tmpUID',
|
|
32
|
+
test (attr) {
|
|
33
|
+
if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;
|
|
34
|
+
if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}).required().noUnknown());
|
|
38
|
+
const componentInputSchema = utils.yup.object({
|
|
39
|
+
component: componentSchema,
|
|
40
|
+
components: nestedComponentSchema
|
|
41
|
+
}).noUnknown();
|
|
42
|
+
const validateComponentInput = utils.validateYupSchema(componentInputSchema);
|
|
43
|
+
const updateComponentInputSchema = utils.yup.object({
|
|
44
|
+
component: componentSchema,
|
|
45
|
+
components: nestedComponentSchema
|
|
46
|
+
}).noUnknown();
|
|
47
|
+
const validateUpdateComponentInput = (data)=>{
|
|
48
|
+
if (_.has(data, 'component') && data.component) {
|
|
49
|
+
dataTransform.removeEmptyDefaults(data.component);
|
|
50
|
+
}
|
|
51
|
+
if (_.has(data, 'components') && Array.isArray(data.components)) {
|
|
52
|
+
data.components.forEach((data)=>{
|
|
53
|
+
if (_.has(data, 'uid')) {
|
|
54
|
+
dataTransform.removeEmptyDefaults(data);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return utils.validateYupSchema(updateComponentInputSchema)(data);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.VALID_RELATIONS = VALID_RELATIONS;
|
|
62
|
+
exports.VALID_TYPES = VALID_TYPES;
|
|
63
|
+
exports.componentInputSchema = componentInputSchema;
|
|
64
|
+
exports.componentSchema = componentSchema;
|
|
65
|
+
exports.nestedComponentSchema = nestedComponentSchema;
|
|
66
|
+
exports.validateComponentInput = validateComponentInput;
|
|
67
|
+
exports.validateUpdateComponentInput = validateUpdateComponentInput;
|
|
68
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct } from '@strapi/types';\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\nimport { isValidCategoryName, isValidIcon } from './common';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults } from './data-transform';\n\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\n\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\n modelType: modelTypes.COMPONENT,\n})\n .shape({\n displayName: yup.string().min(1).required('displayName.required'),\n icon: yup.string().nullable().test(isValidIcon),\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\n })\n .required()\n .noUnknown();\n\nexport const nestedComponentSchema = yup.array().of(\n componentSchema\n .shape({\n uid: yup.string(),\n tmpUID: yup.string(),\n })\n .test({\n name: 'mustHaveUIDOrTmpUID',\n message: 'Component must have a uid or a tmpUID',\n test(attr: unknown) {\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\n return true;\n },\n })\n .required()\n .noUnknown()\n);\n\nexport const componentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\n\nconst updateComponentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateUpdateComponentInput = (data: {\n component?: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n}) => {\n if (_.has(data, 'component') && data.component) {\n removeEmptyDefaults(data.component);\n }\n\n if (_.has(data, 'components') && Array.isArray(data.components)) {\n data.components.forEach((data) => {\n if (_.has(data, 'uid')) {\n removeEmptyDefaults(data);\n }\n });\n }\n\n return validateYupSchema(updateComponentInputSchema)(data);\n};\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":";;;;;;;;;MASaA,eAAkB,GAAA;AAAC,IAAA,UAAA;AAAY,IAAA;;MAC/BC,WAAc,GAAA;AAAIC,IAAAA,GAAAA,uBAAAA;AAAe,IAAA,WAAA;AAAa,IAAA;;AAE9CC,MAAAA,eAAAA,GAAkBC,wBAAaH,CAAAA,WAAAA,EAAaD,eAAiB,EAAA;AACxEK,IAAAA,SAAAA,EAAWC,qBAAWC;AACxB,CAAA,CAAA,CACGC,KAAK,CAAC;AACLC,IAAAA,WAAAA,EAAaC,UAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,QAAQ,CAAC,sBAAA,CAAA;AAC1CC,IAAAA,IAAAA,EAAMJ,UAAIC,MAAM,EAAA,CAAGI,QAAQ,EAAA,CAAGC,IAAI,CAACC,kBAAAA,CAAAA;IACnCC,QAAUR,EAAAA,SAAAA,CAAIC,MAAM,EAAGI,CAAAA,QAAQ,GAAGC,IAAI,CAACG,0BAAqBN,CAAAA,CAAAA,QAAQ,CAAC,mBAAA;AACvE,CACCA,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS;AAEL,MAAMC,wBAAwBX,SAAIY,CAAAA,KAAK,GAAGC,EAAE,CACjDpB,eACGK,CAAAA,KAAK,CAAC;AACLgB,IAAAA,GAAAA,EAAKd,UAAIC,MAAM,EAAA;AACfc,IAAAA,MAAAA,EAAQf,UAAIC,MAAM;AACpB,CAAA,CAAA,CACCK,IAAI,CAAC;IACJU,IAAM,EAAA,qBAAA;IACNC,OAAS,EAAA,uCAAA;AACTX,IAAAA,IAAAA,CAAAA,CAAKY,IAAa,EAAA;QAChB,IAAIC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAUC,EAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;AACxD,QAAA,IAAI,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAU,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;QAC1D,OAAO,IAAA;AACT;AACF,CACCf,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS,EACZ;AAEWW,MAAAA,oBAAAA,GAAuBrB,SACjCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS;AAEL,MAAMe,sBAAyBC,GAAAA,uBAAAA,CAAkBL,oBAAsB;AAE9E,MAAMM,0BAAAA,GAA6B3B,SAChCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS,EAAA;AAEL,MAAMkB,+BAA+B,CAACC,IAAAA,GAAAA;AAI3C,IAAA,IAAIV,EAAEC,GAAG,CAACS,MAAM,WAAgBA,CAAAA,IAAAA,IAAAA,CAAKN,SAAS,EAAE;AAC9CO,QAAAA,iCAAAA,CAAoBD,KAAKN,SAAS,CAAA;AACpC;IAEA,IAAIJ,CAAAA,CAAEC,GAAG,CAACS,IAAM,EAAA,YAAA,CAAA,IAAiBE,MAAMC,OAAO,CAACH,IAAKL,CAAAA,UAAU,CAAG,EAAA;AAC/DK,QAAAA,IAAAA,CAAKL,UAAU,CAACS,OAAO,CAAC,CAACJ,IAAAA,GAAAA;AACvB,YAAA,IAAIV,CAAEC,CAAAA,GAAG,CAACS,IAAAA,EAAM,KAAQ,CAAA,EAAA;gBACtBC,iCAAoBD,CAAAA,IAAAA,CAAAA;AACtB;AACF,SAAA,CAAA;AACF;AAEA,IAAA,OAAOH,wBAAkBC,0BAA4BE,CAAAA,CAAAA,IAAAA,CAAAA;AACvD;;;;;;;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { yup, validateYupSchema } from '@strapi/utils';
|
|
3
|
+
import { modelTypes, DEFAULT_TYPES } from '../../services/constants.mjs';
|
|
4
|
+
import { isValidIcon, isValidCategoryName } from './common.mjs';
|
|
5
|
+
import { createSchema } from './model-schema.mjs';
|
|
6
|
+
import { removeEmptyDefaults } from './data-transform.mjs';
|
|
7
|
+
|
|
8
|
+
const VALID_RELATIONS = [
|
|
9
|
+
'oneToOne',
|
|
10
|
+
'oneToMany'
|
|
11
|
+
];
|
|
12
|
+
const VALID_TYPES = [
|
|
13
|
+
...DEFAULT_TYPES,
|
|
14
|
+
'component',
|
|
15
|
+
'customField'
|
|
16
|
+
];
|
|
17
|
+
const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {
|
|
18
|
+
modelType: modelTypes.COMPONENT
|
|
19
|
+
}).shape({
|
|
20
|
+
displayName: yup.string().min(1).required('displayName.required'),
|
|
21
|
+
icon: yup.string().nullable().test(isValidIcon),
|
|
22
|
+
category: yup.string().nullable().test(isValidCategoryName).required('category.required')
|
|
23
|
+
}).required().noUnknown();
|
|
24
|
+
const nestedComponentSchema = yup.array().of(componentSchema.shape({
|
|
25
|
+
uid: yup.string(),
|
|
26
|
+
tmpUID: yup.string()
|
|
27
|
+
}).test({
|
|
28
|
+
name: 'mustHaveUIDOrTmpUID',
|
|
29
|
+
message: 'Component must have a uid or a tmpUID',
|
|
30
|
+
test (attr) {
|
|
31
|
+
if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;
|
|
32
|
+
if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}).required().noUnknown());
|
|
36
|
+
const componentInputSchema = yup.object({
|
|
37
|
+
component: componentSchema,
|
|
38
|
+
components: nestedComponentSchema
|
|
39
|
+
}).noUnknown();
|
|
40
|
+
const validateComponentInput = validateYupSchema(componentInputSchema);
|
|
41
|
+
const updateComponentInputSchema = yup.object({
|
|
42
|
+
component: componentSchema,
|
|
43
|
+
components: nestedComponentSchema
|
|
44
|
+
}).noUnknown();
|
|
45
|
+
const validateUpdateComponentInput = (data)=>{
|
|
46
|
+
if (_.has(data, 'component') && data.component) {
|
|
47
|
+
removeEmptyDefaults(data.component);
|
|
48
|
+
}
|
|
49
|
+
if (_.has(data, 'components') && Array.isArray(data.components)) {
|
|
50
|
+
data.components.forEach((data)=>{
|
|
51
|
+
if (_.has(data, 'uid')) {
|
|
52
|
+
removeEmptyDefaults(data);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return validateYupSchema(updateComponentInputSchema)(data);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { VALID_RELATIONS, VALID_TYPES, componentInputSchema, componentSchema, nestedComponentSchema, validateComponentInput, validateUpdateComponentInput };
|
|
60
|
+
//# sourceMappingURL=component.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.mjs","sources":["../../../../server/src/controllers/validation/component.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct } from '@strapi/types';\nimport { modelTypes, DEFAULT_TYPES } from '../../services/constants';\nimport { isValidCategoryName, isValidIcon } from './common';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults } from './data-transform';\n\nexport const VALID_RELATIONS = ['oneToOne', 'oneToMany'];\nexport const VALID_TYPES = [...DEFAULT_TYPES, 'component', 'customField'];\n\nexport const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {\n modelType: modelTypes.COMPONENT,\n})\n .shape({\n displayName: yup.string().min(1).required('displayName.required'),\n icon: yup.string().nullable().test(isValidIcon),\n category: yup.string().nullable().test(isValidCategoryName).required('category.required'),\n })\n .required()\n .noUnknown();\n\nexport const nestedComponentSchema = yup.array().of(\n componentSchema\n .shape({\n uid: yup.string(),\n tmpUID: yup.string(),\n })\n .test({\n name: 'mustHaveUIDOrTmpUID',\n message: 'Component must have a uid or a tmpUID',\n test(attr: unknown) {\n if (_.has(attr, 'uid') && _.has(attr, 'tmpUID')) return false;\n if (!_.has(attr, 'uid') && !_.has(attr, 'tmpUID')) return false;\n return true;\n },\n })\n .required()\n .noUnknown()\n);\n\nexport const componentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateComponentInput = validateYupSchema(componentInputSchema);\n\nconst updateComponentInputSchema = yup\n .object({\n component: componentSchema,\n components: nestedComponentSchema,\n })\n .noUnknown();\n\nexport const validateUpdateComponentInput = (data: {\n component?: Struct.ComponentSchema;\n components?: Struct.ComponentSchema[];\n}) => {\n if (_.has(data, 'component') && data.component) {\n removeEmptyDefaults(data.component);\n }\n\n if (_.has(data, 'components') && Array.isArray(data.components)) {\n data.components.forEach((data) => {\n if (_.has(data, 'uid')) {\n removeEmptyDefaults(data);\n }\n });\n }\n\n return validateYupSchema(updateComponentInputSchema)(data);\n};\n"],"names":["VALID_RELATIONS","VALID_TYPES","DEFAULT_TYPES","componentSchema","createSchema","modelType","modelTypes","COMPONENT","shape","displayName","yup","string","min","required","icon","nullable","test","isValidIcon","category","isValidCategoryName","noUnknown","nestedComponentSchema","array","of","uid","tmpUID","name","message","attr","_","has","componentInputSchema","object","component","components","validateComponentInput","validateYupSchema","updateComponentInputSchema","validateUpdateComponentInput","data","removeEmptyDefaults","Array","isArray","forEach"],"mappings":";;;;;;;MASaA,eAAkB,GAAA;AAAC,IAAA,UAAA;AAAY,IAAA;;MAC/BC,WAAc,GAAA;AAAIC,IAAAA,GAAAA,aAAAA;AAAe,IAAA,WAAA;AAAa,IAAA;;AAE9CC,MAAAA,eAAAA,GAAkBC,YAAaH,CAAAA,WAAAA,EAAaD,eAAiB,EAAA;AACxEK,IAAAA,SAAAA,EAAWC,WAAWC;AACxB,CAAA,CAAA,CACGC,KAAK,CAAC;AACLC,IAAAA,WAAAA,EAAaC,IAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,QAAQ,CAAC,sBAAA,CAAA;AAC1CC,IAAAA,IAAAA,EAAMJ,IAAIC,MAAM,EAAA,CAAGI,QAAQ,EAAA,CAAGC,IAAI,CAACC,WAAAA,CAAAA;IACnCC,QAAUR,EAAAA,GAAAA,CAAIC,MAAM,EAAGI,CAAAA,QAAQ,GAAGC,IAAI,CAACG,mBAAqBN,CAAAA,CAAAA,QAAQ,CAAC,mBAAA;AACvE,CACCA,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS;AAEL,MAAMC,wBAAwBX,GAAIY,CAAAA,KAAK,GAAGC,EAAE,CACjDpB,eACGK,CAAAA,KAAK,CAAC;AACLgB,IAAAA,GAAAA,EAAKd,IAAIC,MAAM,EAAA;AACfc,IAAAA,MAAAA,EAAQf,IAAIC,MAAM;AACpB,CAAA,CAAA,CACCK,IAAI,CAAC;IACJU,IAAM,EAAA,qBAAA;IACNC,OAAS,EAAA,uCAAA;AACTX,IAAAA,IAAAA,CAAAA,CAAKY,IAAa,EAAA;QAChB,IAAIC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAUC,EAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;AACxD,QAAA,IAAI,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,KAAA,CAAA,IAAU,CAACC,CAAAA,CAAEC,GAAG,CAACF,IAAM,EAAA,QAAA,CAAA,EAAW,OAAO,KAAA;QAC1D,OAAO,IAAA;AACT;AACF,CACCf,CAAAA,CAAAA,QAAQ,EACRO,CAAAA,SAAS,EACZ;AAEWW,MAAAA,oBAAAA,GAAuBrB,GACjCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS;AAEL,MAAMe,sBAAyBC,GAAAA,iBAAAA,CAAkBL,oBAAsB;AAE9E,MAAMM,0BAAAA,GAA6B3B,GAChCsB,CAAAA,MAAM,CAAC;IACNC,SAAW9B,EAAAA,eAAAA;IACX+B,UAAYb,EAAAA;AACd,CAAA,CAAA,CACCD,SAAS,EAAA;AAEL,MAAMkB,+BAA+B,CAACC,IAAAA,GAAAA;AAI3C,IAAA,IAAIV,EAAEC,GAAG,CAACS,MAAM,WAAgBA,CAAAA,IAAAA,IAAAA,CAAKN,SAAS,EAAE;AAC9CO,QAAAA,mBAAAA,CAAoBD,KAAKN,SAAS,CAAA;AACpC;IAEA,IAAIJ,CAAAA,CAAEC,GAAG,CAACS,IAAM,EAAA,YAAA,CAAA,IAAiBE,MAAMC,OAAO,CAACH,IAAKL,CAAAA,UAAU,CAAG,EAAA;AAC/DK,QAAAA,IAAAA,CAAKL,UAAU,CAACS,OAAO,CAAC,CAACJ,IAAAA,GAAAA;AACvB,YAAA,IAAIV,CAAEC,CAAAA,GAAG,CAACS,IAAAA,EAAM,KAAQ,CAAA,EAAA;gBACtBC,mBAAoBD,CAAAA,IAAAA,CAAAA;AACtB;AACF,SAAA,CAAA;AACF;AAEA,IAAA,OAAOH,kBAAkBC,0BAA4BE,CAAAA,CAAAA,IAAAA,CAAAA;AACvD;;;;"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var index = require('../../utils/index.js');
|
|
6
|
+
var constants = require('../../services/constants.js');
|
|
7
|
+
var modelSchema = require('./model-schema.js');
|
|
8
|
+
var dataTransform = require('./data-transform.js');
|
|
9
|
+
var component = require('./component.js');
|
|
10
|
+
|
|
11
|
+
/* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format
|
|
12
|
+
/**
|
|
13
|
+
* Allowed relation per type kind
|
|
14
|
+
*/ const VALID_RELATIONS = {
|
|
15
|
+
[constants.typeKinds.SINGLE_TYPE]: [
|
|
16
|
+
'oneToOne',
|
|
17
|
+
'oneToMany',
|
|
18
|
+
'morphOne',
|
|
19
|
+
'morphMany',
|
|
20
|
+
'morphToOne',
|
|
21
|
+
'morphToMany'
|
|
22
|
+
],
|
|
23
|
+
[constants.typeKinds.COLLECTION_TYPE]: [
|
|
24
|
+
'oneToOne',
|
|
25
|
+
'oneToMany',
|
|
26
|
+
'manyToOne',
|
|
27
|
+
'manyToMany',
|
|
28
|
+
'morphOne',
|
|
29
|
+
'morphMany',
|
|
30
|
+
'morphToOne',
|
|
31
|
+
'morphToMany'
|
|
32
|
+
]
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Allowed types
|
|
36
|
+
*/ const VALID_TYPES = [
|
|
37
|
+
...constants.DEFAULT_TYPES,
|
|
38
|
+
'uid',
|
|
39
|
+
'component',
|
|
40
|
+
'dynamiczone',
|
|
41
|
+
'customField'
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Returns a yup schema to validate a content type payload
|
|
45
|
+
*/ const createContentTypeSchema = (data, { isEdition = false } = {})=>{
|
|
46
|
+
const kind = fp.getOr(constants.typeKinds.COLLECTION_TYPE, 'contentType.kind', data);
|
|
47
|
+
const contentTypeSchema = modelSchema.createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {
|
|
48
|
+
modelType: constants.modelTypes.CONTENT_TYPE
|
|
49
|
+
}).shape({
|
|
50
|
+
displayName: utils.yup.string().min(1).required(),
|
|
51
|
+
singularName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(forbiddenContentTypeNameValidator()).isKebabCase().required(),
|
|
52
|
+
pluralName: utils.yup.string().min(1).test(nameIsAvailable(isEdition)).test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name
|
|
53
|
+
.test(forbiddenContentTypeNameValidator()).isKebabCase().required()
|
|
54
|
+
}).test('singularName-not-equal-pluralName', '${path}: singularName and pluralName should be different', (value)=>value.singularName !== value.pluralName);
|
|
55
|
+
return utils.yup.object({
|
|
56
|
+
// FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error
|
|
57
|
+
// Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features
|
|
58
|
+
// without having any reference to them in CE.
|
|
59
|
+
// Why not handle an "options" object in the content-type ? The admin panel needs lots of rework
|
|
60
|
+
// to be able to send this options object instead of top-level attributes.
|
|
61
|
+
// @nathan-pichon 20/02/2023
|
|
62
|
+
contentType: contentTypeSchema.required().noUnknown(false),
|
|
63
|
+
components: component.nestedComponentSchema
|
|
64
|
+
}).noUnknown();
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Validator for content type creation
|
|
68
|
+
*/ const validateContentTypeInput = (data)=>{
|
|
69
|
+
return utils.validateYupSchema(createContentTypeSchema(data))(data);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Validator for content type edition
|
|
73
|
+
*/ const validateUpdateContentTypeInput = (data)=>{
|
|
74
|
+
if (fp.has('contentType', data)) {
|
|
75
|
+
dataTransform.removeEmptyDefaults(data.contentType);
|
|
76
|
+
dataTransform.removeDeletedUIDTargetFields(data.contentType);
|
|
77
|
+
}
|
|
78
|
+
if (fp.has('components', data) && Array.isArray(data.components)) {
|
|
79
|
+
data.components.forEach((comp)=>{
|
|
80
|
+
if (fp.has('uid', comp)) {
|
|
81
|
+
dataTransform.removeEmptyDefaults(comp);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return utils.validateYupSchema(createContentTypeSchema(data, {
|
|
86
|
+
isEdition: true
|
|
87
|
+
}))(data);
|
|
88
|
+
};
|
|
89
|
+
const forbiddenContentTypeNameValidator = ()=>{
|
|
90
|
+
const reservedNames = index.getService('builder').getReservedNames().models;
|
|
91
|
+
return {
|
|
92
|
+
name: 'forbiddenContentTypeName',
|
|
93
|
+
message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,
|
|
94
|
+
test (value) {
|
|
95
|
+
if (typeof value !== 'string') {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return !index.getService('builder').isReservedModelName(value);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
const nameIsAvailable = (isEdition)=>{
|
|
103
|
+
// TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as
|
|
104
|
+
const usedNames = fp.flatMap((ct)=>{
|
|
105
|
+
return [
|
|
106
|
+
ct.info?.singularName,
|
|
107
|
+
ct.info?.pluralName
|
|
108
|
+
];
|
|
109
|
+
})(strapi.contentTypes);
|
|
110
|
+
return {
|
|
111
|
+
name: 'nameAlreadyUsed',
|
|
112
|
+
message: 'contentType: name `${value}` is already being used by another content type.',
|
|
113
|
+
test (value) {
|
|
114
|
+
// don't check on edition
|
|
115
|
+
if (isEdition) return true;
|
|
116
|
+
// ignore if not a string (will be caught in another validator)
|
|
117
|
+
if (typeof value !== 'string') {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
// compare snake case to check the actual column names that will be used in the database
|
|
121
|
+
return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
const nameIsNotExistingCollectionName = (isEdition)=>{
|
|
126
|
+
const usedNames = Object.keys(strapi.contentTypes).map((key)=>strapi.contentTypes[key].collectionName);
|
|
127
|
+
return {
|
|
128
|
+
name: 'nameAlreadyUsed',
|
|
129
|
+
message: 'contentType: name `${value}` is already being used by another content type.',
|
|
130
|
+
test (value) {
|
|
131
|
+
// don't check on edition
|
|
132
|
+
if (isEdition) return true;
|
|
133
|
+
// ignore if not a string (will be caught in another validator)
|
|
134
|
+
if (typeof value !== 'string') {
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
// compare snake case to check the actual column names that will be used in the database
|
|
138
|
+
return usedNames.every((usedName)=>fp.snakeCase(usedName) !== fp.snakeCase(value));
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Validates type kind
|
|
144
|
+
*/ const kindSchema = utils.yup.string().oneOf([
|
|
145
|
+
constants.typeKinds.SINGLE_TYPE,
|
|
146
|
+
constants.typeKinds.COLLECTION_TYPE
|
|
147
|
+
]);
|
|
148
|
+
const validateKind = utils.validateYupSchema(kindSchema);
|
|
149
|
+
|
|
150
|
+
exports.validateContentTypeInput = validateContentTypeInput;
|
|
151
|
+
exports.validateKind = validateKind;
|
|
152
|
+
exports.validateUpdateContentTypeInput = validateUpdateContentTypeInput;
|
|
153
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.js","sources":["../../../../server/src/controllers/validation/content-type.ts"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */ // yup templates need to be in this format\n\nimport { flatMap, getOr, has, snakeCase } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport type { Struct, Internal } from '@strapi/types';\nimport { getService } from '../../utils';\nimport { modelTypes, DEFAULT_TYPES, typeKinds } from '../../services/constants';\nimport { createSchema } from './model-schema';\nimport { removeEmptyDefaults, removeDeletedUIDTargetFields } from './data-transform';\nimport { nestedComponentSchema } from './component';\n\n// Input flattens some fields of the \"info\" into the root type\nexport type CreateContentTypeInput = {\n contentType?: Partial<Struct.ContentTypeSchema> & Partial<Struct.ContentTypeSchemaInfo>;\n components?: Array<\n Partial<Struct.ComponentSchema> &\n Partial<Struct.SchemaInfo> & { tmpUID?: Internal.UID.Component }\n >;\n singularName: Struct.ContentTypeSchemaInfo['singularName'];\n attributes: Struct.SchemaAttributes & Record<string, any>;\n kind: Struct.ContentTypeKind;\n collectionName?: Struct.CollectionTypeSchema['collectionName'];\n pluralName: Struct.ContentTypeSchemaInfo['pluralName'];\n displayName: Struct.ContentTypeSchemaInfo['displayName'];\n description: Struct.ContentTypeSchemaInfo['description'];\n options?: Struct.SchemaOptions;\n draftAndPublish?: Struct.SchemaOptions['draftAndPublish'];\n pluginOptions?: Struct.ContentTypeSchema['pluginOptions'];\n config?: object;\n};\n\n/**\n * Allowed relation per type kind\n */\nconst VALID_RELATIONS = {\n [typeKinds.SINGLE_TYPE]: [\n 'oneToOne',\n 'oneToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ],\n [typeKinds.COLLECTION_TYPE]: [\n 'oneToOne',\n 'oneToMany',\n 'manyToOne',\n 'manyToMany',\n 'morphOne',\n 'morphMany',\n 'morphToOne',\n 'morphToMany',\n ],\n} as const;\n\n/**\n * Allowed types\n */\nconst VALID_TYPES = [...DEFAULT_TYPES, 'uid', 'component', 'dynamiczone', 'customField'];\n\n/**\n * Returns a yup schema to validate a content type payload\n */\nconst createContentTypeSchema = (data: CreateContentTypeInput, { isEdition = false } = {}) => {\n const kind: keyof typeof VALID_RELATIONS = getOr(\n typeKinds.COLLECTION_TYPE,\n 'contentType.kind',\n data\n );\n const contentTypeSchema = createSchema(VALID_TYPES, VALID_RELATIONS[kind] || [], {\n modelType: modelTypes.CONTENT_TYPE,\n })\n .shape({\n displayName: yup.string().min(1).required(),\n singularName: yup\n .string()\n .min(1)\n .test(nameIsAvailable(isEdition))\n .test(forbiddenContentTypeNameValidator())\n .isKebabCase()\n .required(),\n pluralName: yup\n .string()\n .min(1)\n .test(nameIsAvailable(isEdition))\n .test(nameIsNotExistingCollectionName(isEdition)) // TODO: v5: require singularName to not match a collection name\n .test(forbiddenContentTypeNameValidator())\n .isKebabCase()\n .required(),\n })\n .test(\n 'singularName-not-equal-pluralName',\n '${path}: singularName and pluralName should be different',\n (value) => value.singularName !== value.pluralName\n );\n\n return yup\n .object({\n // FIXME .noUnknown(false) will strip off the unwanted properties without throwing an error\n // Why not having .noUnknown() ? Because we want to be able to add options relatable to EE features\n // without having any reference to them in CE.\n // Why not handle an \"options\" object in the content-type ? The admin panel needs lots of rework\n // to be able to send this options object instead of top-level attributes.\n // @nathan-pichon 20/02/2023\n contentType: contentTypeSchema.required().noUnknown(false),\n components: nestedComponentSchema,\n })\n .noUnknown();\n};\n\n/**\n * Validator for content type creation\n */\nexport const validateContentTypeInput = (data: CreateContentTypeInput) => {\n return validateYupSchema(createContentTypeSchema(data))(data);\n};\n\n/**\n * Validator for content type edition\n */\nexport const validateUpdateContentTypeInput = (data: CreateContentTypeInput) => {\n if (has('contentType', data)) {\n removeEmptyDefaults(data.contentType);\n removeDeletedUIDTargetFields(data.contentType as Struct.ContentTypeSchema);\n }\n\n if (has('components', data) && Array.isArray(data.components)) {\n data.components.forEach((comp) => {\n if (has('uid', comp)) {\n removeEmptyDefaults(comp as Struct.ComponentSchema);\n }\n });\n }\n\n return validateYupSchema(createContentTypeSchema(data, { isEdition: true }))(data);\n};\n\nconst forbiddenContentTypeNameValidator = () => {\n const reservedNames = getService('builder').getReservedNames().models;\n\n return {\n name: 'forbiddenContentTypeName',\n message: `Content Type name cannot be one of ${reservedNames.join(', ')}`,\n test(value: unknown) {\n if (typeof value !== 'string') {\n return true;\n }\n\n return !getService('builder').isReservedModelName(value);\n },\n };\n};\n\nconst nameIsAvailable = (isEdition: boolean) => {\n // TODO TS: if strapi.contentTypes (ie, ContentTypes) works as an ArrayLike and is used like this, we may want to ensure it is typed so that it can be without using as\n const usedNames = flatMap((ct: Struct.ContentTypeSchema) => {\n return [ct.info?.singularName, ct.info?.pluralName];\n })(strapi.contentTypes as any);\n\n return {\n name: 'nameAlreadyUsed',\n message: 'contentType: name `${value}` is already being used by another content type.',\n test(value: unknown) {\n // don't check on edition\n if (isEdition) return true;\n\n // ignore if not a string (will be caught in another validator)\n if (typeof value !== 'string') {\n return true;\n }\n\n // compare snake case to check the actual column names that will be used in the database\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\n },\n };\n};\n\nconst nameIsNotExistingCollectionName = (isEdition: boolean) => {\n const usedNames = Object.keys(strapi.contentTypes).map(\n (key) => strapi.contentTypes[key as Internal.UID.ContentType].collectionName\n ) as string[];\n\n return {\n name: 'nameAlreadyUsed',\n message: 'contentType: name `${value}` is already being used by another content type.',\n test(value: unknown) {\n // don't check on edition\n if (isEdition) return true;\n\n // ignore if not a string (will be caught in another validator)\n if (typeof value !== 'string') {\n return true;\n }\n\n // compare snake case to check the actual column names that will be used in the database\n return usedNames.every((usedName) => snakeCase(usedName) !== snakeCase(value));\n },\n };\n};\n\n/**\n * Validates type kind\n */\nconst kindSchema = yup.string().oneOf([typeKinds.SINGLE_TYPE, typeKinds.COLLECTION_TYPE]);\n\nexport const validateKind = validateYupSchema(kindSchema);\n"],"names":["VALID_RELATIONS","typeKinds","SINGLE_TYPE","COLLECTION_TYPE","VALID_TYPES","DEFAULT_TYPES","createContentTypeSchema","data","isEdition","kind","getOr","contentTypeSchema","createSchema","modelType","modelTypes","CONTENT_TYPE","shape","displayName","yup","string","min","required","singularName","test","nameIsAvailable","forbiddenContentTypeNameValidator","isKebabCase","pluralName","nameIsNotExistingCollectionName","value","object","contentType","noUnknown","components","nestedComponentSchema","validateContentTypeInput","validateYupSchema","validateUpdateContentTypeInput","has","removeEmptyDefaults","removeDeletedUIDTargetFields","Array","isArray","forEach","comp","reservedNames","getService","getReservedNames","models","name","message","join","isReservedModelName","usedNames","flatMap","ct","info","strapi","contentTypes","every","usedName","snakeCase","Object","keys","map","key","collectionName","kindSchema","oneOf","validateKind"],"mappings":"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"}
|