@strapi/i18n 0.0.0-next.f4ec69568d980c6fee91ce2ee0f41c138347aa81 → 0.0.0-next.f5d21551ed005f524bfc4760b274f1be154e26a8
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/BulkLocaleActionModal.js +262 -0
- package/dist/admin/components/BulkLocaleActionModal.js.map +1 -0
- package/dist/admin/components/BulkLocaleActionModal.mjs +260 -0
- package/dist/admin/components/BulkLocaleActionModal.mjs.map +1 -0
- package/dist/admin/components/CMHeaderActions.js +721 -0
- package/dist/admin/components/CMHeaderActions.js.map +1 -0
- package/dist/admin/components/CMHeaderActions.mjs +696 -0
- package/dist/admin/components/CMHeaderActions.mjs.map +1 -0
- package/dist/admin/components/CMListViewModalsAdditionalInformation.js +69 -0
- package/dist/admin/components/CMListViewModalsAdditionalInformation.js.map +1 -0
- package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs +65 -0
- package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs.map +1 -0
- package/dist/admin/components/CheckboxConfirmation.js +155 -0
- package/dist/admin/components/CheckboxConfirmation.js.map +1 -0
- package/dist/admin/components/CheckboxConfirmation.mjs +134 -0
- package/dist/admin/components/CheckboxConfirmation.mjs.map +1 -0
- package/dist/admin/components/CreateLocale.js +395 -0
- package/dist/admin/components/CreateLocale.js.map +1 -0
- package/dist/admin/components/CreateLocale.mjs +369 -0
- package/dist/admin/components/CreateLocale.mjs.map +1 -0
- package/dist/admin/components/DeleteLocale.js +90 -0
- package/dist/admin/components/DeleteLocale.js.map +1 -0
- package/dist/admin/components/DeleteLocale.mjs +69 -0
- package/dist/admin/components/DeleteLocale.mjs.map +1 -0
- package/dist/admin/components/EditLocale.js +212 -0
- package/dist/admin/components/EditLocale.js.map +1 -0
- package/dist/admin/components/EditLocale.mjs +190 -0
- package/dist/admin/components/EditLocale.mjs.map +1 -0
- package/dist/admin/components/LocaleListCell.js +82 -0
- package/dist/admin/components/LocaleListCell.js.map +1 -0
- package/dist/admin/components/LocaleListCell.mjs +80 -0
- package/dist/admin/components/LocaleListCell.mjs.map +1 -0
- package/dist/admin/components/LocalePicker.js +98 -0
- package/dist/admin/components/LocalePicker.js.map +1 -0
- package/dist/admin/components/LocalePicker.mjs +77 -0
- package/dist/admin/components/LocalePicker.mjs.map +1 -0
- package/dist/admin/components/LocaleTable.js +143 -0
- package/dist/admin/components/LocaleTable.js.map +1 -0
- package/dist/admin/components/LocaleTable.mjs +122 -0
- package/dist/admin/components/LocaleTable.mjs.map +1 -0
- package/dist/admin/constants.js +37 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +35 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/contentManagerHooks/editView.js +106 -0
- package/dist/admin/contentManagerHooks/editView.js.map +1 -0
- package/dist/admin/contentManagerHooks/editView.mjs +85 -0
- package/dist/admin/contentManagerHooks/editView.mjs.map +1 -0
- package/dist/admin/contentManagerHooks/listView.js +43 -0
- package/dist/admin/contentManagerHooks/listView.js.map +1 -0
- package/dist/admin/contentManagerHooks/listView.mjs +41 -0
- package/dist/admin/contentManagerHooks/listView.mjs.map +1 -0
- package/dist/admin/contentReleasesHooks/releaseDetailsView.js +20 -0
- package/dist/admin/contentReleasesHooks/releaseDetailsView.js.map +1 -0
- package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs +18 -0
- package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs.map +1 -0
- package/dist/admin/hooks/useI18n.js +78 -0
- package/dist/admin/hooks/useI18n.js.map +1 -0
- package/dist/admin/hooks/useI18n.mjs +57 -0
- package/dist/admin/hooks/useI18n.mjs.map +1 -0
- package/dist/admin/index.js +225 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +201 -5
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/middlewares/extendCTBAttributeInitialData.js +71 -0
- package/dist/admin/middlewares/extendCTBAttributeInitialData.js.map +1 -0
- package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs +69 -0
- package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs.map +1 -0
- package/dist/admin/middlewares/extendCTBInitialData.js +40 -0
- package/dist/admin/middlewares/extendCTBInitialData.js.map +1 -0
- package/dist/admin/middlewares/extendCTBInitialData.mjs +38 -0
- package/dist/admin/middlewares/extendCTBInitialData.mjs.map +1 -0
- package/dist/admin/middlewares/rbac-middleware.js +49 -0
- package/dist/admin/middlewares/rbac-middleware.js.map +1 -0
- package/dist/admin/middlewares/rbac-middleware.mjs +28 -0
- package/dist/admin/middlewares/rbac-middleware.mjs.map +1 -0
- package/dist/admin/pages/SettingsPage.js +107 -0
- package/dist/admin/pages/SettingsPage.js.map +1 -0
- package/dist/admin/pages/SettingsPage.mjs +85 -0
- package/dist/admin/pages/SettingsPage.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/services/api.js +13 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +11 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/services/locales.js +72 -0
- package/dist/admin/services/locales.js.map +1 -0
- package/dist/admin/services/locales.mjs +66 -0
- package/dist/admin/services/locales.mjs.map +1 -0
- package/dist/admin/services/relations.js +23 -0
- package/dist/admin/services/relations.js.map +1 -0
- package/dist/admin/services/relations.mjs +21 -0
- package/dist/admin/services/relations.mjs.map +1 -0
- package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
- package/dist/admin/src/components/LocaleListCell.d.ts +4 -4
- package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
- package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
- package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/locales.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +1 -1
- package/dist/admin/src/utils/schemas.d.ts +642 -16
- package/dist/admin/tests/server.d.ts +1 -0
- package/dist/admin/tests/utils.d.ts +6 -0
- package/dist/admin/translations/de.json.js +66 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +64 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/translations/dk.json.js +66 -0
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/translations/dk.json.mjs +64 -0
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +81 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +79 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +66 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +64 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +66 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +64 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +65 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +63 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +66 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +64 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +68 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +66 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +66 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +64 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +82 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +80 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +57 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +55 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +66 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +64 -0
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/baseQuery.js +8 -0
- package/dist/admin/utils/baseQuery.js.map +1 -0
- package/dist/admin/utils/baseQuery.mjs +6 -0
- package/dist/admin/utils/baseQuery.mjs.map +1 -0
- package/dist/admin/utils/clean.js +70 -0
- package/dist/admin/utils/clean.js.map +1 -0
- package/dist/admin/utils/clean.mjs +68 -0
- package/dist/admin/utils/clean.mjs.map +1 -0
- package/dist/admin/utils/fields.js +34 -0
- package/dist/admin/utils/fields.js.map +1 -0
- package/dist/admin/utils/fields.mjs +31 -0
- package/dist/admin/utils/fields.mjs.map +1 -0
- package/dist/admin/utils/getTranslation.js +8 -0
- package/dist/admin/utils/getTranslation.js.map +1 -0
- package/dist/admin/utils/getTranslation.mjs +6 -0
- package/dist/admin/utils/getTranslation.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/schemas.js +74 -0
- package/dist/admin/utils/schemas.js.map +1 -0
- package/dist/admin/utils/schemas.mjs +72 -0
- package/dist/admin/utils/schemas.mjs.map +1 -0
- package/dist/admin/utils/strings.js +6 -0
- package/dist/admin/utils/strings.js.map +1 -0
- package/dist/admin/utils/strings.mjs +4 -0
- package/dist/admin/utils/strings.mjs.map +1 -0
- package/dist/server/bootstrap.js +79 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +77 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants/index.js +29 -0
- package/dist/server/constants/index.js.map +1 -0
- package/dist/server/constants/index.mjs +25 -0
- package/dist/server/constants/index.mjs.map +1 -0
- package/dist/server/constants/iso-locales.json.js +2423 -0
- package/dist/server/constants/iso-locales.json.js.map +1 -0
- package/dist/server/constants/iso-locales.json.mjs +2421 -0
- package/dist/server/constants/iso-locales.json.mjs.map +1 -0
- package/dist/server/content-types/index.js +10 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +8 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/locale/index.js +10 -0
- package/dist/server/content-types/locale/index.js.map +1 -0
- package/dist/server/content-types/locale/index.mjs +8 -0
- package/dist/server/content-types/locale/index.mjs.map +1 -0
- package/dist/server/content-types/locale/schema.json.js +46 -0
- package/dist/server/content-types/locale/schema.json.js.map +1 -0
- package/dist/server/content-types/locale/schema.json.mjs +38 -0
- package/dist/server/content-types/locale/schema.json.mjs.map +1 -0
- package/dist/server/controllers/content-types.js +76 -0
- package/dist/server/controllers/content-types.js.map +1 -0
- package/dist/server/controllers/content-types.mjs +74 -0
- package/dist/server/controllers/content-types.mjs.map +1 -0
- package/dist/server/controllers/index.js +14 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +12 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/iso-locales.js +13 -0
- package/dist/server/controllers/iso-locales.js.map +1 -0
- package/dist/server/controllers/iso-locales.mjs +11 -0
- package/dist/server/controllers/iso-locales.mjs.map +1 -0
- package/dist/server/controllers/locales.js +108 -0
- package/dist/server/controllers/locales.js.map +1 -0
- package/dist/server/controllers/locales.mjs +87 -0
- package/dist/server/controllers/locales.mjs.map +1 -0
- package/dist/server/controllers/validate-locale-creation.js +47 -0
- package/dist/server/controllers/validate-locale-creation.js.map +1 -0
- package/dist/server/controllers/validate-locale-creation.mjs +45 -0
- package/dist/server/controllers/validate-locale-creation.mjs.map +1 -0
- package/dist/server/domain/locale.js +11 -0
- package/dist/server/domain/locale.js.map +1 -0
- package/dist/server/domain/locale.mjs +9 -0
- package/dist/server/domain/locale.mjs.map +1 -0
- package/dist/server/graphql.js +115 -0
- package/dist/server/graphql.js.map +1 -0
- package/dist/server/graphql.mjs +113 -0
- package/dist/server/graphql.mjs.map +1 -0
- package/dist/server/index.js +18 -3453
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +17 -3435
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/register.js +79 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +77 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin.js +102 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +100 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +21 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +19 -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/routes/validation/locale.js +57 -0
- package/dist/server/routes/validation/locale.js.map +1 -0
- package/dist/server/routes/validation/locale.mjs +36 -0
- package/dist/server/routes/validation/locale.mjs.map +1 -0
- package/dist/server/services/content-types.js +157 -0
- package/dist/server/services/content-types.js.map +1 -0
- package/dist/server/services/content-types.mjs +155 -0
- package/dist/server/services/content-types.mjs.map +1 -0
- package/dist/server/services/index.js +22 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +20 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/iso-locales.js +12 -0
- package/dist/server/services/iso-locales.js.map +1 -0
- package/dist/server/services/iso-locales.mjs +10 -0
- package/dist/server/services/iso-locales.mjs.map +1 -0
- package/dist/server/services/locales.js +114 -0
- package/dist/server/services/locales.js.map +1 -0
- package/dist/server/services/locales.mjs +112 -0
- package/dist/server/services/locales.mjs.map +1 -0
- package/dist/server/services/localizations.js +68 -0
- package/dist/server/services/localizations.js.map +1 -0
- package/dist/server/services/localizations.mjs +66 -0
- package/dist/server/services/localizations.mjs.map +1 -0
- package/dist/server/services/metrics.js +30 -0
- package/dist/server/services/metrics.js.map +1 -0
- package/dist/server/services/metrics.mjs +28 -0
- package/dist/server/services/metrics.mjs.map +1 -0
- package/dist/server/services/permissions/actions.js +136 -0
- package/dist/server/services/permissions/actions.js.map +1 -0
- package/dist/server/services/permissions/actions.mjs +134 -0
- package/dist/server/services/permissions/actions.mjs.map +1 -0
- package/dist/server/services/permissions/engine.js +52 -0
- package/dist/server/services/permissions/engine.js.map +1 -0
- package/dist/server/services/permissions/engine.mjs +50 -0
- package/dist/server/services/permissions/engine.mjs.map +1 -0
- package/dist/server/services/permissions/sections-builder.js +45 -0
- package/dist/server/services/permissions/sections-builder.js.map +1 -0
- package/dist/server/services/permissions/sections-builder.mjs +43 -0
- package/dist/server/services/permissions/sections-builder.mjs.map +1 -0
- package/dist/server/services/permissions.js +14 -0
- package/dist/server/services/permissions.js.map +1 -0
- package/dist/server/services/permissions.mjs +12 -0
- package/dist/server/services/permissions.mjs.map +1 -0
- package/dist/server/services/sanitize/index.js +34 -0
- package/dist/server/services/sanitize/index.js.map +1 -0
- package/dist/server/services/sanitize/index.mjs +32 -0
- package/dist/server/services/sanitize/index.mjs.map +1 -0
- package/dist/server/src/index.d.ts +1 -8
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/content-api.d.ts +2 -8
- package/dist/server/src/routes/content-api.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +1 -8
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/routes/validation/index.d.ts +2 -0
- package/dist/server/src/routes/validation/index.d.ts.map +1 -0
- package/dist/server/src/routes/validation/locale.d.ts +41 -0
- package/dist/server/src/routes/validation/locale.d.ts.map +1 -0
- package/dist/server/src/services/localizations.d.ts +1 -1
- package/dist/server/src/services/localizations.d.ts.map +1 -1
- package/dist/server/utils/index.js +16 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +13 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/validation/content-types.js +18 -0
- package/dist/server/validation/content-types.js.map +1 -0
- package/dist/server/validation/content-types.mjs +16 -0
- package/dist/server/validation/content-types.mjs.map +1 -0
- package/dist/server/validation/locales.js +23 -0
- package/dist/server/validation/locales.js.map +1 -0
- package/dist/server/validation/locales.mjs +20 -0
- package/dist/server/validation/locales.mjs.map +1 -0
- package/dist/shared/contracts/content-manager.d.ts +1 -1
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/package.json +19 -16
- package/dist/_chunks/SettingsPage-D0hqaut-.js +0 -574
- package/dist/_chunks/SettingsPage-D0hqaut-.js.map +0 -1
- package/dist/_chunks/SettingsPage-D67CaQAB.mjs +0 -554
- package/dist/_chunks/SettingsPage-D67CaQAB.mjs.map +0 -1
- package/dist/_chunks/de-9eCAqqrB.mjs +0 -66
- package/dist/_chunks/de-9eCAqqrB.mjs.map +0 -1
- package/dist/_chunks/de-DtWiGdHl.js +0 -66
- package/dist/_chunks/de-DtWiGdHl.js.map +0 -1
- package/dist/_chunks/dk-2qBjxt-P.mjs +0 -66
- package/dist/_chunks/dk-2qBjxt-P.mjs.map +0 -1
- package/dist/_chunks/dk-D8C-casx.js +0 -66
- package/dist/_chunks/dk-D8C-casx.js.map +0 -1
- package/dist/_chunks/en-BKBz3tro.js +0 -81
- package/dist/_chunks/en-BKBz3tro.js.map +0 -1
- package/dist/_chunks/en-DlXfy6Gy.mjs +0 -81
- package/dist/_chunks/en-DlXfy6Gy.mjs.map +0 -1
- package/dist/_chunks/es-DS-XFGSw.js +0 -66
- package/dist/_chunks/es-DS-XFGSw.js.map +0 -1
- package/dist/_chunks/es-DlmMVaBG.mjs +0 -66
- package/dist/_chunks/es-DlmMVaBG.mjs.map +0 -1
- package/dist/_chunks/fr-3S6ke71d.mjs +0 -66
- package/dist/_chunks/fr-3S6ke71d.mjs.map +0 -1
- package/dist/_chunks/fr-BTjekDpq.js +0 -66
- package/dist/_chunks/fr-BTjekDpq.js.map +0 -1
- package/dist/_chunks/index-46DNtLCn.js +0 -1635
- package/dist/_chunks/index-46DNtLCn.js.map +0 -1
- package/dist/_chunks/index-CNR8i3KM.mjs +0 -1613
- package/dist/_chunks/index-CNR8i3KM.mjs.map +0 -1
- package/dist/_chunks/ko-DmcGUBQ3.js +0 -65
- package/dist/_chunks/ko-DmcGUBQ3.js.map +0 -1
- package/dist/_chunks/ko-qTjQ8IMw.mjs +0 -65
- package/dist/_chunks/ko-qTjQ8IMw.mjs.map +0 -1
- package/dist/_chunks/pl-B67TSHqT.mjs +0 -66
- package/dist/_chunks/pl-B67TSHqT.mjs.map +0 -1
- package/dist/_chunks/pl-Cn5RYonZ.js +0 -66
- package/dist/_chunks/pl-Cn5RYonZ.js.map +0 -1
- package/dist/_chunks/ru-BMBgVL3s.js +0 -68
- package/dist/_chunks/ru-BMBgVL3s.js.map +0 -1
- package/dist/_chunks/ru-hagMa57T.mjs +0 -68
- package/dist/_chunks/ru-hagMa57T.mjs.map +0 -1
- package/dist/_chunks/tr-CarUU76c.js +0 -66
- package/dist/_chunks/tr-CarUU76c.js.map +0 -1
- package/dist/_chunks/tr-Dw_jmkG-.mjs +0 -66
- package/dist/_chunks/tr-Dw_jmkG-.mjs.map +0 -1
- package/dist/_chunks/zh-57YM4amO.mjs +0 -66
- package/dist/_chunks/zh-57YM4amO.mjs.map +0 -1
- package/dist/_chunks/zh-CukOviB0.js +0 -66
- package/dist/_chunks/zh-CukOviB0.js.map +0 -1
- package/dist/_chunks/zh-Hans-DSHIXAa3.js +0 -57
- package/dist/_chunks/zh-Hans-DSHIXAa3.js.map +0 -1
- package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs +0 -57
- package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs.map +0 -1
@@ -0,0 +1,134 @@
|
|
1
|
+
import { isArray, prop, getOr } from 'lodash/fp';
|
2
|
+
import { getService } from '../../utils/index.mjs';
|
3
|
+
|
4
|
+
const actions = [
|
5
|
+
{
|
6
|
+
section: 'settings',
|
7
|
+
category: 'Internationalization',
|
8
|
+
subCategory: 'Locales',
|
9
|
+
pluginName: 'i18n',
|
10
|
+
displayName: 'Create',
|
11
|
+
uid: 'locale.create'
|
12
|
+
},
|
13
|
+
{
|
14
|
+
section: 'settings',
|
15
|
+
category: 'Internationalization',
|
16
|
+
subCategory: 'Locales',
|
17
|
+
pluginName: 'i18n',
|
18
|
+
displayName: 'Read',
|
19
|
+
uid: 'locale.read',
|
20
|
+
aliases: [
|
21
|
+
{
|
22
|
+
actionId: 'plugin::content-manager.explorer.read',
|
23
|
+
subjects: [
|
24
|
+
'plugin::i18n.locale'
|
25
|
+
]
|
26
|
+
}
|
27
|
+
]
|
28
|
+
},
|
29
|
+
{
|
30
|
+
section: 'settings',
|
31
|
+
category: 'Internationalization',
|
32
|
+
subCategory: 'Locales',
|
33
|
+
pluginName: 'i18n',
|
34
|
+
displayName: 'Update',
|
35
|
+
uid: 'locale.update'
|
36
|
+
},
|
37
|
+
{
|
38
|
+
section: 'settings',
|
39
|
+
category: 'Internationalization',
|
40
|
+
subCategory: 'Locales',
|
41
|
+
pluginName: 'i18n',
|
42
|
+
displayName: 'Delete',
|
43
|
+
uid: 'locale.delete'
|
44
|
+
}
|
45
|
+
];
|
46
|
+
const addLocalesPropertyIfNeeded = ({ value: action })=>{
|
47
|
+
const { section, options: { applyToProperties } } = action;
|
48
|
+
// Only add the locales property to contentTypes' actions
|
49
|
+
if (section !== 'contentTypes') {
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
// If the 'locales' property is already declared within the applyToProperties array, then ignore the next steps
|
53
|
+
if (isArray(applyToProperties) && applyToProperties.includes('locales')) {
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
// Add the 'locales' property to the applyToProperties array (create it if necessary)
|
57
|
+
action.options.applyToProperties = isArray(applyToProperties) ? applyToProperties.concat('locales') : [
|
58
|
+
'locales'
|
59
|
+
];
|
60
|
+
};
|
61
|
+
const shouldApplyLocalesPropertyToSubject = ({ property, subject })=>{
|
62
|
+
if (property === 'locales') {
|
63
|
+
const model = strapi.getModel(subject);
|
64
|
+
return getService('content-types').isLocalizedContentType(model);
|
65
|
+
}
|
66
|
+
return true;
|
67
|
+
};
|
68
|
+
const addAllLocalesToPermissions = async (permissions)=>{
|
69
|
+
const { actionProvider } = strapi.service('admin::permission');
|
70
|
+
const { find: findAllLocales } = getService('locales');
|
71
|
+
const allLocales = await findAllLocales();
|
72
|
+
const allLocalesCode = allLocales.map(prop('code'));
|
73
|
+
return Promise.all(permissions.map(async (permission)=>{
|
74
|
+
const { action, subject } = permission;
|
75
|
+
const appliesToLocalesProperty = await actionProvider.appliesToProperty('locales', action, subject);
|
76
|
+
if (!appliesToLocalesProperty) {
|
77
|
+
return permission;
|
78
|
+
}
|
79
|
+
const oldPermissionProperties = getOr({}, 'properties', permission);
|
80
|
+
return {
|
81
|
+
...permission,
|
82
|
+
properties: {
|
83
|
+
...oldPermissionProperties,
|
84
|
+
locales: allLocalesCode
|
85
|
+
}
|
86
|
+
};
|
87
|
+
}));
|
88
|
+
};
|
89
|
+
const syncSuperAdminPermissionsWithLocales = async ()=>{
|
90
|
+
const roleService = strapi.service('admin::role');
|
91
|
+
const permissionService = strapi.service('admin::permission');
|
92
|
+
const superAdminRole = await roleService.getSuperAdmin();
|
93
|
+
if (!superAdminRole) {
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
const superAdminPermissions = await permissionService.findMany({
|
97
|
+
where: {
|
98
|
+
role: {
|
99
|
+
id: superAdminRole.id
|
100
|
+
}
|
101
|
+
}
|
102
|
+
});
|
103
|
+
const newSuperAdminPermissions = await addAllLocalesToPermissions(superAdminPermissions);
|
104
|
+
await roleService.assignPermissions(superAdminRole.id, newSuperAdminPermissions);
|
105
|
+
};
|
106
|
+
const registerI18nActions = async ()=>{
|
107
|
+
const { actionProvider } = strapi.service('admin::permission');
|
108
|
+
await actionProvider.registerMany(actions);
|
109
|
+
};
|
110
|
+
const registerI18nActionsHooks = ()=>{
|
111
|
+
const { actionProvider } = strapi.service('admin::permission');
|
112
|
+
const { hooks } = strapi.service('admin::role');
|
113
|
+
actionProvider.hooks.appliesPropertyToSubject.register(shouldApplyLocalesPropertyToSubject);
|
114
|
+
hooks.willResetSuperAdminPermissions.register(addAllLocalesToPermissions);
|
115
|
+
};
|
116
|
+
const updateActionsProperties = ()=>{
|
117
|
+
const { actionProvider } = strapi.service('admin::permission');
|
118
|
+
// Register the transformation for every new action
|
119
|
+
actionProvider.hooks.willRegister.register(addLocalesPropertyIfNeeded);
|
120
|
+
// Handle already registered actions
|
121
|
+
actionProvider.values().forEach((action)=>addLocalesPropertyIfNeeded({
|
122
|
+
value: action
|
123
|
+
}));
|
124
|
+
};
|
125
|
+
var i18nActionsService = {
|
126
|
+
actions,
|
127
|
+
registerI18nActions,
|
128
|
+
registerI18nActionsHooks,
|
129
|
+
updateActionsProperties,
|
130
|
+
syncSuperAdminPermissionsWithLocales
|
131
|
+
};
|
132
|
+
|
133
|
+
export { i18nActionsService as default };
|
134
|
+
//# sourceMappingURL=actions.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"actions.mjs","sources":["../../../../server/src/services/permissions/actions.ts"],"sourcesContent":["import { isArray, getOr, prop } from 'lodash/fp';\nimport { getService } from '../../utils';\n\nconst actions = [\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Create',\n uid: 'locale.create',\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Read',\n uid: 'locale.read',\n aliases: [\n { actionId: 'plugin::content-manager.explorer.read', subjects: ['plugin::i18n.locale'] },\n ],\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Update',\n uid: 'locale.update',\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Delete',\n uid: 'locale.delete',\n },\n];\n\nconst addLocalesPropertyIfNeeded = ({ value: action }: any) => {\n const {\n section,\n options: { applyToProperties },\n } = action;\n\n // Only add the locales property to contentTypes' actions\n if (section !== 'contentTypes') {\n return;\n }\n\n // If the 'locales' property is already declared within the applyToProperties array, then ignore the next steps\n if (isArray(applyToProperties) && applyToProperties.includes('locales')) {\n return;\n }\n\n // Add the 'locales' property to the applyToProperties array (create it if necessary)\n action.options.applyToProperties = isArray(applyToProperties)\n ? applyToProperties.concat('locales')\n : ['locales'];\n};\n\nconst shouldApplyLocalesPropertyToSubject = ({ property, subject }: any) => {\n if (property === 'locales') {\n const model = strapi.getModel(subject);\n\n return getService('content-types').isLocalizedContentType(model);\n }\n\n return true;\n};\n\nconst addAllLocalesToPermissions = async (permissions: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n const { find: findAllLocales } = getService('locales');\n\n const allLocales = await findAllLocales();\n const allLocalesCode = allLocales.map(prop('code'));\n\n return Promise.all(\n permissions.map(async (permission: any) => {\n const { action, subject } = permission;\n\n const appliesToLocalesProperty = await actionProvider.appliesToProperty(\n 'locales',\n action,\n subject\n );\n\n if (!appliesToLocalesProperty) {\n return permission;\n }\n\n const oldPermissionProperties = getOr({}, 'properties', permission);\n\n return { ...permission, properties: { ...oldPermissionProperties, locales: allLocalesCode } };\n })\n );\n};\n\nconst syncSuperAdminPermissionsWithLocales = async () => {\n const roleService = strapi.service('admin::role');\n const permissionService = strapi.service('admin::permission');\n\n const superAdminRole = await roleService.getSuperAdmin();\n\n if (!superAdminRole) {\n return;\n }\n\n const superAdminPermissions = await permissionService.findMany({\n where: {\n role: {\n id: superAdminRole.id,\n },\n },\n });\n\n const newSuperAdminPermissions = await addAllLocalesToPermissions(superAdminPermissions);\n\n await roleService.assignPermissions(superAdminRole.id, newSuperAdminPermissions);\n};\n\nconst registerI18nActions = async () => {\n const { actionProvider } = strapi.service('admin::permission');\n\n await actionProvider.registerMany(actions);\n};\n\nconst registerI18nActionsHooks = () => {\n const { actionProvider } = strapi.service('admin::permission');\n const { hooks } = strapi.service('admin::role');\n\n actionProvider.hooks.appliesPropertyToSubject.register(shouldApplyLocalesPropertyToSubject);\n hooks.willResetSuperAdminPermissions.register(addAllLocalesToPermissions);\n};\n\nconst updateActionsProperties = () => {\n const { actionProvider } = strapi.service('admin::permission');\n\n // Register the transformation for every new action\n actionProvider.hooks.willRegister.register(addLocalesPropertyIfNeeded);\n\n // Handle already registered actions\n actionProvider.values().forEach((action: any) => addLocalesPropertyIfNeeded({ value: action }));\n};\n\nexport default {\n actions,\n registerI18nActions,\n registerI18nActionsHooks,\n updateActionsProperties,\n syncSuperAdminPermissionsWithLocales,\n};\n"],"names":["actions","section","category","subCategory","pluginName","displayName","uid","aliases","actionId","subjects","addLocalesPropertyIfNeeded","value","action","options","applyToProperties","isArray","includes","concat","shouldApplyLocalesPropertyToSubject","property","subject","model","strapi","getModel","getService","isLocalizedContentType","addAllLocalesToPermissions","permissions","actionProvider","service","find","findAllLocales","allLocales","allLocalesCode","map","prop","Promise","all","permission","appliesToLocalesProperty","appliesToProperty","oldPermissionProperties","getOr","properties","locales","syncSuperAdminPermissionsWithLocales","roleService","permissionService","superAdminRole","getSuperAdmin","superAdminPermissions","findMany","where","role","id","newSuperAdminPermissions","assignPermissions","registerI18nActions","registerMany","registerI18nActionsHooks","hooks","appliesPropertyToSubject","register","willResetSuperAdminPermissions","updateActionsProperties","willRegister","values","forEach"],"mappings":"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"}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var index = require('../../utils/index.js');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @typedef {object} WillRegisterPermissionContext
|
7
|
+
* @property {Permission} permission
|
8
|
+
* @property {object} user
|
9
|
+
* @property {object} condition
|
10
|
+
*/ /**
|
11
|
+
* Locales property handler for the permission engine
|
12
|
+
* Add the has-locale-access condition if the locales property is defined
|
13
|
+
* @param {WillRegisterPermissionContext} context
|
14
|
+
*/ const willRegisterPermission = (context)=>{
|
15
|
+
const { permission, condition, user } = context;
|
16
|
+
const { subject, properties } = permission;
|
17
|
+
const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);
|
18
|
+
if (isSuperAdmin) {
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
const { locales } = properties || {};
|
22
|
+
const { isLocalizedContentType } = index.getService('content-types');
|
23
|
+
// If there is no subject defined, ignore the permission
|
24
|
+
if (!subject) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
const ct = strapi.contentTypes[subject];
|
28
|
+
// If the subject exists but isn't localized, ignore the permission
|
29
|
+
if (!isLocalizedContentType(ct)) {
|
30
|
+
return;
|
31
|
+
}
|
32
|
+
// If the subject is localized but the locales property is null (access to all locales), ignore the permission
|
33
|
+
if (locales === null) {
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
condition.and({
|
37
|
+
locale: {
|
38
|
+
$in: locales || []
|
39
|
+
}
|
40
|
+
});
|
41
|
+
};
|
42
|
+
const registerI18nPermissionsHandlers = ()=>{
|
43
|
+
const { engine } = strapi.service('admin::permission');
|
44
|
+
engine.hooks['before-register.permission'].register(willRegisterPermission);
|
45
|
+
};
|
46
|
+
var engineService = {
|
47
|
+
willRegisterPermission,
|
48
|
+
registerI18nPermissionsHandlers
|
49
|
+
};
|
50
|
+
|
51
|
+
module.exports = engineService;
|
52
|
+
//# sourceMappingURL=engine.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"engine.js","sources":["../../../../server/src/services/permissions/engine.ts"],"sourcesContent":["import { getService } from '../../utils';\n\n/**\n * @typedef {object} WillRegisterPermissionContext\n * @property {Permission} permission\n * @property {object} user\n * @property {object} condition\n */\n\n/**\n * Locales property handler for the permission engine\n * Add the has-locale-access condition if the locales property is defined\n * @param {WillRegisterPermissionContext} context\n */\nconst willRegisterPermission = (context: any) => {\n const { permission, condition, user } = context;\n const { subject, properties } = permission;\n\n const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);\n\n if (isSuperAdmin) {\n return;\n }\n\n const { locales } = properties || {};\n const { isLocalizedContentType } = getService('content-types');\n\n // If there is no subject defined, ignore the permission\n if (!subject) {\n return;\n }\n\n const ct = strapi.contentTypes[subject];\n\n // If the subject exists but isn't localized, ignore the permission\n if (!isLocalizedContentType(ct)) {\n return;\n }\n\n // If the subject is localized but the locales property is null (access to all locales), ignore the permission\n if (locales === null) {\n return;\n }\n\n condition.and({\n locale: {\n $in: locales || [],\n },\n });\n};\n\nconst registerI18nPermissionsHandlers = () => {\n const { engine } = strapi.service('admin::permission');\n\n engine.hooks['before-register.permission'].register(willRegisterPermission);\n};\n\nexport default {\n willRegisterPermission,\n registerI18nPermissionsHandlers,\n};\n"],"names":["willRegisterPermission","context","permission","condition","user","subject","properties","isSuperAdmin","strapi","service","hasSuperAdminRole","locales","isLocalizedContentType","getService","ct","contentTypes","and","locale","$in","registerI18nPermissionsHandlers","engine","hooks","register"],"mappings":";;;;AAEA;;;;;;;;;IAYA,MAAMA,yBAAyB,CAACC,OAAAA,GAAAA;AAC9B,IAAA,MAAM,EAAEC,UAAU,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGH,OAAAA;AACxC,IAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAGJ,UAAAA;AAEhC,IAAA,MAAMK,eAAeC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,iBAAiB,CAACN,IAAAA,CAAAA;AAErE,IAAA,IAAIG,YAAc,EAAA;AAChB,QAAA;AACF;AAEA,IAAA,MAAM,EAAEI,OAAO,EAAE,GAAGL,cAAc,EAAC;AACnC,IAAA,MAAM,EAAEM,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;;AAG9C,IAAA,IAAI,CAACR,OAAS,EAAA;AACZ,QAAA;AACF;AAEA,IAAA,MAAMS,EAAKN,GAAAA,MAAAA,CAAOO,YAAY,CAACV,OAAQ,CAAA;;IAGvC,IAAI,CAACO,uBAAuBE,EAAK,CAAA,EAAA;AAC/B,QAAA;AACF;;AAGA,IAAA,IAAIH,YAAY,IAAM,EAAA;AACpB,QAAA;AACF;AAEAR,IAAAA,SAAAA,CAAUa,GAAG,CAAC;QACZC,MAAQ,EAAA;AACNC,YAAAA,GAAAA,EAAKP,WAAW;AAClB;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMQ,+BAAkC,GAAA,IAAA;AACtC,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGZ,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAElCW,IAAAA,MAAAA,CAAOC,KAAK,CAAC,4BAA6B,CAAA,CAACC,QAAQ,CAACtB,sBAAAA,CAAAA;AACtD,CAAA;AAEA,oBAAe;AACbA,IAAAA,sBAAAA;AACAmB,IAAAA;AACF,CAAE;;;;"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { getService } from '../../utils/index.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @typedef {object} WillRegisterPermissionContext
|
5
|
+
* @property {Permission} permission
|
6
|
+
* @property {object} user
|
7
|
+
* @property {object} condition
|
8
|
+
*/ /**
|
9
|
+
* Locales property handler for the permission engine
|
10
|
+
* Add the has-locale-access condition if the locales property is defined
|
11
|
+
* @param {WillRegisterPermissionContext} context
|
12
|
+
*/ const willRegisterPermission = (context)=>{
|
13
|
+
const { permission, condition, user } = context;
|
14
|
+
const { subject, properties } = permission;
|
15
|
+
const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);
|
16
|
+
if (isSuperAdmin) {
|
17
|
+
return;
|
18
|
+
}
|
19
|
+
const { locales } = properties || {};
|
20
|
+
const { isLocalizedContentType } = getService('content-types');
|
21
|
+
// If there is no subject defined, ignore the permission
|
22
|
+
if (!subject) {
|
23
|
+
return;
|
24
|
+
}
|
25
|
+
const ct = strapi.contentTypes[subject];
|
26
|
+
// If the subject exists but isn't localized, ignore the permission
|
27
|
+
if (!isLocalizedContentType(ct)) {
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
// If the subject is localized but the locales property is null (access to all locales), ignore the permission
|
31
|
+
if (locales === null) {
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
condition.and({
|
35
|
+
locale: {
|
36
|
+
$in: locales || []
|
37
|
+
}
|
38
|
+
});
|
39
|
+
};
|
40
|
+
const registerI18nPermissionsHandlers = ()=>{
|
41
|
+
const { engine } = strapi.service('admin::permission');
|
42
|
+
engine.hooks['before-register.permission'].register(willRegisterPermission);
|
43
|
+
};
|
44
|
+
var engineService = {
|
45
|
+
willRegisterPermission,
|
46
|
+
registerI18nPermissionsHandlers
|
47
|
+
};
|
48
|
+
|
49
|
+
export { engineService as default };
|
50
|
+
//# sourceMappingURL=engine.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"engine.mjs","sources":["../../../../server/src/services/permissions/engine.ts"],"sourcesContent":["import { getService } from '../../utils';\n\n/**\n * @typedef {object} WillRegisterPermissionContext\n * @property {Permission} permission\n * @property {object} user\n * @property {object} condition\n */\n\n/**\n * Locales property handler for the permission engine\n * Add the has-locale-access condition if the locales property is defined\n * @param {WillRegisterPermissionContext} context\n */\nconst willRegisterPermission = (context: any) => {\n const { permission, condition, user } = context;\n const { subject, properties } = permission;\n\n const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);\n\n if (isSuperAdmin) {\n return;\n }\n\n const { locales } = properties || {};\n const { isLocalizedContentType } = getService('content-types');\n\n // If there is no subject defined, ignore the permission\n if (!subject) {\n return;\n }\n\n const ct = strapi.contentTypes[subject];\n\n // If the subject exists but isn't localized, ignore the permission\n if (!isLocalizedContentType(ct)) {\n return;\n }\n\n // If the subject is localized but the locales property is null (access to all locales), ignore the permission\n if (locales === null) {\n return;\n }\n\n condition.and({\n locale: {\n $in: locales || [],\n },\n });\n};\n\nconst registerI18nPermissionsHandlers = () => {\n const { engine } = strapi.service('admin::permission');\n\n engine.hooks['before-register.permission'].register(willRegisterPermission);\n};\n\nexport default {\n willRegisterPermission,\n registerI18nPermissionsHandlers,\n};\n"],"names":["willRegisterPermission","context","permission","condition","user","subject","properties","isSuperAdmin","strapi","service","hasSuperAdminRole","locales","isLocalizedContentType","getService","ct","contentTypes","and","locale","$in","registerI18nPermissionsHandlers","engine","hooks","register"],"mappings":";;AAEA;;;;;;;;;IAYA,MAAMA,yBAAyB,CAACC,OAAAA,GAAAA;AAC9B,IAAA,MAAM,EAAEC,UAAU,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGH,OAAAA;AACxC,IAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAGJ,UAAAA;AAEhC,IAAA,MAAMK,eAAeC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,iBAAiB,CAACN,IAAAA,CAAAA;AAErE,IAAA,IAAIG,YAAc,EAAA;AAChB,QAAA;AACF;AAEA,IAAA,MAAM,EAAEI,OAAO,EAAE,GAAGL,cAAc,EAAC;AACnC,IAAA,MAAM,EAAEM,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;;AAG9C,IAAA,IAAI,CAACR,OAAS,EAAA;AACZ,QAAA;AACF;AAEA,IAAA,MAAMS,EAAKN,GAAAA,MAAAA,CAAOO,YAAY,CAACV,OAAQ,CAAA;;IAGvC,IAAI,CAACO,uBAAuBE,EAAK,CAAA,EAAA;AAC/B,QAAA;AACF;;AAGA,IAAA,IAAIH,YAAY,IAAM,EAAA;AACpB,QAAA;AACF;AAEAR,IAAAA,SAAAA,CAAUa,GAAG,CAAC;QACZC,MAAQ,EAAA;AACNC,YAAAA,GAAAA,EAAKP,WAAW;AAClB;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMQ,+BAAkC,GAAA,IAAA;AACtC,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGZ,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAElCW,IAAAA,MAAAA,CAAOC,KAAK,CAAC,4BAA6B,CAAA,CAACC,QAAQ,CAACtB,sBAAAA,CAAAA;AACtD,CAAA;AAEA,oBAAe;AACbA,IAAAA,sBAAAA;AACAmB,IAAAA;AACF,CAAE;;;;"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var fp = require('lodash/fp');
|
4
|
+
var index = require('../../utils/index.js');
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Handler for the permissions layout (sections builder)
|
8
|
+
* Adds the locales property to the subjects
|
9
|
+
* @param {Action} action
|
10
|
+
* @param {ContentTypesSection} section
|
11
|
+
* @return {Promise<void>}
|
12
|
+
*/ const localesPropertyHandler = async ({ action, section })=>{
|
13
|
+
const { actionProvider } = strapi.service('admin::permission');
|
14
|
+
const locales = await index.getService('locales').find();
|
15
|
+
// Do not add the locales property if there is none registered
|
16
|
+
if (fp.isEmpty(locales)) {
|
17
|
+
return;
|
18
|
+
}
|
19
|
+
for (const subject of section.subjects){
|
20
|
+
const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);
|
21
|
+
const hasLocalesProperty = subject.properties.find((property)=>property.value === 'locales');
|
22
|
+
if (applies && !hasLocalesProperty) {
|
23
|
+
subject.properties.push({
|
24
|
+
label: 'Locales',
|
25
|
+
value: 'locales',
|
26
|
+
children: locales.map(({ name, code })=>({
|
27
|
+
label: name || code,
|
28
|
+
value: code
|
29
|
+
}))
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
};
|
34
|
+
const registerLocalesPropertyHandler = ()=>{
|
35
|
+
const { sectionsBuilder } = strapi.service('admin::permission');
|
36
|
+
sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);
|
37
|
+
sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);
|
38
|
+
};
|
39
|
+
var sectionsBuilderService = {
|
40
|
+
localesPropertyHandler,
|
41
|
+
registerLocalesPropertyHandler
|
42
|
+
};
|
43
|
+
|
44
|
+
module.exports = sectionsBuilderService;
|
45
|
+
//# sourceMappingURL=sections-builder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sections-builder.js","sources":["../../../../server/src/services/permissions/sections-builder.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\n/**\n * Handler for the permissions layout (sections builder)\n * Adds the locales property to the subjects\n * @param {Action} action\n * @param {ContentTypesSection} section\n * @return {Promise<void>}\n */\nconst localesPropertyHandler = async ({ action, section }: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n\n const locales = await getService('locales').find();\n\n // Do not add the locales property if there is none registered\n if (isEmpty(locales)) {\n return;\n }\n\n for (const subject of section.subjects) {\n const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);\n const hasLocalesProperty = subject.properties.find(\n (property: any) => property.value === 'locales'\n );\n\n if (applies && !hasLocalesProperty) {\n subject.properties.push({\n label: 'Locales',\n value: 'locales',\n children: locales.map(({ name, code }: any) => ({ label: name || code, value: code })),\n });\n }\n }\n};\n\nconst registerLocalesPropertyHandler = () => {\n const { sectionsBuilder } = strapi.service('admin::permission');\n\n sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);\n sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);\n};\n\nexport default {\n localesPropertyHandler,\n registerLocalesPropertyHandler,\n};\n"],"names":["localesPropertyHandler","action","section","actionProvider","strapi","service","locales","getService","find","isEmpty","subject","subjects","applies","appliesToProperty","actionId","uid","hasLocalesProperty","properties","property","value","push","label","children","map","name","code","registerLocalesPropertyHandler","sectionsBuilder","addHandler"],"mappings":";;;;;AAIA;;;;;;AAMC,IACD,MAAMA,sBAAyB,GAAA,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAO,GAAA;AAC5D,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAE1C,IAAA,MAAMC,OAAU,GAAA,MAAMC,gBAAW,CAAA,SAAA,CAAA,CAAWC,IAAI,EAAA;;AAGhD,IAAA,IAAIC,WAAQH,OAAU,CAAA,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,KAAK,MAAMI,OAAAA,IAAWR,OAAQS,CAAAA,QAAQ,CAAE;QACtC,MAAMC,OAAAA,GAAU,MAAMT,cAAAA,CAAeU,iBAAiB,CAAC,WAAWZ,MAAOa,CAAAA,QAAQ,EAAEJ,OAAAA,CAAQK,GAAG,CAAA;QAC9F,MAAMC,kBAAAA,GAAqBN,OAAQO,CAAAA,UAAU,CAACT,IAAI,CAChD,CAACU,QAAAA,GAAkBA,QAASC,CAAAA,KAAK,KAAK,SAAA,CAAA;QAGxC,IAAIP,OAAAA,IAAW,CAACI,kBAAoB,EAAA;YAClCN,OAAQO,CAAAA,UAAU,CAACG,IAAI,CAAC;gBACtBC,KAAO,EAAA,SAAA;gBACPF,KAAO,EAAA,SAAA;gBACPG,QAAUhB,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAO,IAAM;AAAEJ,wBAAAA,KAAAA,EAAOG,IAAQC,IAAAA,IAAAA;wBAAMN,KAAOM,EAAAA;qBAAK,CAAA;AACrF,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMC,8BAAiC,GAAA,IAAA;AACrC,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAGvB,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;IAE3CsB,eAAgBC,CAAAA,UAAU,CAAC,aAAe5B,EAAAA,sBAAAA,CAAAA;IAC1C2B,eAAgBC,CAAAA,UAAU,CAAC,iBAAmB5B,EAAAA,sBAAAA,CAAAA;AAChD,CAAA;AAEA,6BAAe;AACbA,IAAAA,sBAAAA;AACA0B,IAAAA;AACF,CAAE;;;;"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { isEmpty } from 'lodash/fp';
|
2
|
+
import { getService } from '../../utils/index.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Handler for the permissions layout (sections builder)
|
6
|
+
* Adds the locales property to the subjects
|
7
|
+
* @param {Action} action
|
8
|
+
* @param {ContentTypesSection} section
|
9
|
+
* @return {Promise<void>}
|
10
|
+
*/ const localesPropertyHandler = async ({ action, section })=>{
|
11
|
+
const { actionProvider } = strapi.service('admin::permission');
|
12
|
+
const locales = await getService('locales').find();
|
13
|
+
// Do not add the locales property if there is none registered
|
14
|
+
if (isEmpty(locales)) {
|
15
|
+
return;
|
16
|
+
}
|
17
|
+
for (const subject of section.subjects){
|
18
|
+
const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);
|
19
|
+
const hasLocalesProperty = subject.properties.find((property)=>property.value === 'locales');
|
20
|
+
if (applies && !hasLocalesProperty) {
|
21
|
+
subject.properties.push({
|
22
|
+
label: 'Locales',
|
23
|
+
value: 'locales',
|
24
|
+
children: locales.map(({ name, code })=>({
|
25
|
+
label: name || code,
|
26
|
+
value: code
|
27
|
+
}))
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
};
|
32
|
+
const registerLocalesPropertyHandler = ()=>{
|
33
|
+
const { sectionsBuilder } = strapi.service('admin::permission');
|
34
|
+
sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);
|
35
|
+
sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);
|
36
|
+
};
|
37
|
+
var sectionsBuilderService = {
|
38
|
+
localesPropertyHandler,
|
39
|
+
registerLocalesPropertyHandler
|
40
|
+
};
|
41
|
+
|
42
|
+
export { sectionsBuilderService as default };
|
43
|
+
//# sourceMappingURL=sections-builder.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sections-builder.mjs","sources":["../../../../server/src/services/permissions/sections-builder.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\n/**\n * Handler for the permissions layout (sections builder)\n * Adds the locales property to the subjects\n * @param {Action} action\n * @param {ContentTypesSection} section\n * @return {Promise<void>}\n */\nconst localesPropertyHandler = async ({ action, section }: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n\n const locales = await getService('locales').find();\n\n // Do not add the locales property if there is none registered\n if (isEmpty(locales)) {\n return;\n }\n\n for (const subject of section.subjects) {\n const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);\n const hasLocalesProperty = subject.properties.find(\n (property: any) => property.value === 'locales'\n );\n\n if (applies && !hasLocalesProperty) {\n subject.properties.push({\n label: 'Locales',\n value: 'locales',\n children: locales.map(({ name, code }: any) => ({ label: name || code, value: code })),\n });\n }\n }\n};\n\nconst registerLocalesPropertyHandler = () => {\n const { sectionsBuilder } = strapi.service('admin::permission');\n\n sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);\n sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);\n};\n\nexport default {\n localesPropertyHandler,\n registerLocalesPropertyHandler,\n};\n"],"names":["localesPropertyHandler","action","section","actionProvider","strapi","service","locales","getService","find","isEmpty","subject","subjects","applies","appliesToProperty","actionId","uid","hasLocalesProperty","properties","property","value","push","label","children","map","name","code","registerLocalesPropertyHandler","sectionsBuilder","addHandler"],"mappings":";;;AAIA;;;;;;AAMC,IACD,MAAMA,sBAAyB,GAAA,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAO,GAAA;AAC5D,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAE1C,IAAA,MAAMC,OAAU,GAAA,MAAMC,UAAW,CAAA,SAAA,CAAA,CAAWC,IAAI,EAAA;;AAGhD,IAAA,IAAIC,QAAQH,OAAU,CAAA,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,KAAK,MAAMI,OAAAA,IAAWR,OAAQS,CAAAA,QAAQ,CAAE;QACtC,MAAMC,OAAAA,GAAU,MAAMT,cAAAA,CAAeU,iBAAiB,CAAC,WAAWZ,MAAOa,CAAAA,QAAQ,EAAEJ,OAAAA,CAAQK,GAAG,CAAA;QAC9F,MAAMC,kBAAAA,GAAqBN,OAAQO,CAAAA,UAAU,CAACT,IAAI,CAChD,CAACU,QAAAA,GAAkBA,QAASC,CAAAA,KAAK,KAAK,SAAA,CAAA;QAGxC,IAAIP,OAAAA,IAAW,CAACI,kBAAoB,EAAA;YAClCN,OAAQO,CAAAA,UAAU,CAACG,IAAI,CAAC;gBACtBC,KAAO,EAAA,SAAA;gBACPF,KAAO,EAAA,SAAA;gBACPG,QAAUhB,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAO,IAAM;AAAEJ,wBAAAA,KAAAA,EAAOG,IAAQC,IAAAA,IAAAA;wBAAMN,KAAOM,EAAAA;qBAAK,CAAA;AACrF,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMC,8BAAiC,GAAA,IAAA;AACrC,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAGvB,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;IAE3CsB,eAAgBC,CAAAA,UAAU,CAAC,aAAe5B,EAAAA,sBAAAA,CAAAA;IAC1C2B,eAAgBC,CAAAA,UAAU,CAAC,iBAAmB5B,EAAAA,sBAAAA,CAAAA;AAChD,CAAA;AAEA,6BAAe;AACbA,IAAAA,sBAAAA;AACA0B,IAAAA;AACF,CAAE;;;;"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var actions = require('./permissions/actions.js');
|
4
|
+
var sectionsBuilder = require('./permissions/sections-builder.js');
|
5
|
+
var engine = require('./permissions/engine.js');
|
6
|
+
|
7
|
+
const permissions = ()=>({
|
8
|
+
actions: actions,
|
9
|
+
sectionsBuilder: sectionsBuilder,
|
10
|
+
engine: engine
|
11
|
+
});
|
12
|
+
|
13
|
+
module.exports = permissions;
|
14
|
+
//# sourceMappingURL=permissions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"permissions.js","sources":["../../../server/src/services/permissions.ts"],"sourcesContent":["import i18nActionsService from './permissions/actions';\nimport sectionsBuilderService from './permissions/sections-builder';\nimport engineService from './permissions/engine';\n\nconst permissions = () => ({\n actions: i18nActionsService,\n sectionsBuilder: sectionsBuilderService,\n engine: engineService,\n});\n\ntype PermissionsService = typeof permissions;\n\nexport default permissions;\nexport type { PermissionsService };\n"],"names":["permissions","actions","i18nActionsService","sectionsBuilder","sectionsBuilderService","engine","engineService"],"mappings":";;;;;;AAIMA,MAAAA,WAAAA,GAAc,KAAO;QACzBC,OAASC,EAAAA,OAAAA;QACTC,eAAiBC,EAAAA,eAAAA;QACjBC,MAAQC,EAAAA;KACV;;;;"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import i18nActionsService from './permissions/actions.mjs';
|
2
|
+
import sectionsBuilderService from './permissions/sections-builder.mjs';
|
3
|
+
import engineService from './permissions/engine.mjs';
|
4
|
+
|
5
|
+
const permissions = ()=>({
|
6
|
+
actions: i18nActionsService,
|
7
|
+
sectionsBuilder: sectionsBuilderService,
|
8
|
+
engine: engineService
|
9
|
+
});
|
10
|
+
|
11
|
+
export { permissions as default };
|
12
|
+
//# sourceMappingURL=permissions.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"permissions.mjs","sources":["../../../server/src/services/permissions.ts"],"sourcesContent":["import i18nActionsService from './permissions/actions';\nimport sectionsBuilderService from './permissions/sections-builder';\nimport engineService from './permissions/engine';\n\nconst permissions = () => ({\n actions: i18nActionsService,\n sectionsBuilder: sectionsBuilderService,\n engine: engineService,\n});\n\ntype PermissionsService = typeof permissions;\n\nexport default permissions;\nexport type { PermissionsService };\n"],"names":["permissions","actions","i18nActionsService","sectionsBuilder","sectionsBuilderService","engine","engineService"],"mappings":";;;;AAIMA,MAAAA,WAAAA,GAAc,KAAO;QACzBC,OAASC,EAAAA,kBAAAA;QACTC,eAAiBC,EAAAA,sBAAAA;QACjBC,MAAQC,EAAAA;KACV;;;;"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var utils = require('@strapi/utils');
|
4
|
+
var fp = require('lodash/fp');
|
5
|
+
var index = require('../../utils/index.js');
|
6
|
+
|
7
|
+
const LOCALIZATION_FIELDS = [
|
8
|
+
'locale',
|
9
|
+
'localizations'
|
10
|
+
];
|
11
|
+
const sanitize = ({ strapi })=>{
|
12
|
+
const { isLocalizedContentType } = index.getService('content-types');
|
13
|
+
/**
|
14
|
+
* Sanitizes localization fields of a given entity based on its schema.
|
15
|
+
*
|
16
|
+
* Remove localization-related fields that are unnecessary, that is
|
17
|
+
* for schemas that aren't localized.
|
18
|
+
*/ const sanitizeLocalizationFields = fp.curry((schema, entity)=>utils.traverseEntity(({ key, schema }, { remove })=>{
|
19
|
+
const isLocalized = isLocalizedContentType(schema);
|
20
|
+
const isLocalizationField = LOCALIZATION_FIELDS.includes(key);
|
21
|
+
if (!isLocalized && isLocalizationField) {
|
22
|
+
remove(key);
|
23
|
+
}
|
24
|
+
}, {
|
25
|
+
schema,
|
26
|
+
getModel: strapi.getModel.bind(strapi)
|
27
|
+
}, entity));
|
28
|
+
return {
|
29
|
+
sanitizeLocalizationFields
|
30
|
+
};
|
31
|
+
};
|
32
|
+
|
33
|
+
module.exports = sanitize;
|
34
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/services/sanitize/index.ts"],"sourcesContent":["import type { Core, Schema, Data } from '@strapi/types';\n\nimport { traverseEntity } from '@strapi/utils';\nimport { curry } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\nconst LOCALIZATION_FIELDS = ['locale', 'localizations'];\n\nconst sanitize = ({ strapi }: { strapi: Core.Strapi }) => {\n const { isLocalizedContentType } = getService('content-types');\n\n /**\n * Sanitizes localization fields of a given entity based on its schema.\n *\n * Remove localization-related fields that are unnecessary, that is\n * for schemas that aren't localized.\n */\n const sanitizeLocalizationFields = curry((schema: Schema.Schema, entity: Data.Entity) =>\n traverseEntity(\n ({ key, schema }, { remove }) => {\n const isLocalized = isLocalizedContentType(schema);\n const isLocalizationField = LOCALIZATION_FIELDS.includes(key);\n\n if (!isLocalized && isLocalizationField) {\n remove(key);\n }\n },\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n )\n );\n\n return {\n sanitizeLocalizationFields,\n };\n};\n\ntype SanitizeService = typeof sanitize;\n\nexport default sanitize;\nexport type { SanitizeService };\n"],"names":["LOCALIZATION_FIELDS","sanitize","strapi","isLocalizedContentType","getService","sanitizeLocalizationFields","curry","schema","entity","traverseEntity","key","remove","isLocalized","isLocalizationField","includes","getModel","bind"],"mappings":";;;;;;AAOA,MAAMA,mBAAsB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;AAAgB,CAAA;AAEvD,MAAMC,QAAW,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACnD,IAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;AAE9C;;;;;AAKC,MACD,MAAMC,0BAA6BC,GAAAA,QAAAA,CAAM,CAACC,MAAAA,EAAuBC,SAC/DC,oBACE,CAAA,CAAC,EAAEC,GAAG,EAAEH,MAAM,EAAE,EAAE,EAAEI,MAAM,EAAE,GAAA;AAC1B,YAAA,MAAMC,cAAcT,sBAAuBI,CAAAA,MAAAA,CAAAA;YAC3C,MAAMM,mBAAAA,GAAsBb,mBAAoBc,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;YAEzD,IAAI,CAACE,eAAeC,mBAAqB,EAAA;gBACvCF,MAAOD,CAAAA,GAAAA,CAAAA;AACT;SAEF,EAAA;AAAEH,YAAAA,MAAAA;AAAQQ,YAAAA,QAAAA,EAAUb,MAAOa,CAAAA,QAAQ,CAACC,IAAI,CAACd,MAAAA;SACzCM,EAAAA,MAAAA,CAAAA,CAAAA;IAIJ,OAAO;AACLH,QAAAA;AACF,KAAA;AACF;;;;"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { traverseEntity } from '@strapi/utils';
|
2
|
+
import { curry } from 'lodash/fp';
|
3
|
+
import { getService } from '../../utils/index.mjs';
|
4
|
+
|
5
|
+
const LOCALIZATION_FIELDS = [
|
6
|
+
'locale',
|
7
|
+
'localizations'
|
8
|
+
];
|
9
|
+
const sanitize = ({ strapi })=>{
|
10
|
+
const { isLocalizedContentType } = getService('content-types');
|
11
|
+
/**
|
12
|
+
* Sanitizes localization fields of a given entity based on its schema.
|
13
|
+
*
|
14
|
+
* Remove localization-related fields that are unnecessary, that is
|
15
|
+
* for schemas that aren't localized.
|
16
|
+
*/ const sanitizeLocalizationFields = curry((schema, entity)=>traverseEntity(({ key, schema }, { remove })=>{
|
17
|
+
const isLocalized = isLocalizedContentType(schema);
|
18
|
+
const isLocalizationField = LOCALIZATION_FIELDS.includes(key);
|
19
|
+
if (!isLocalized && isLocalizationField) {
|
20
|
+
remove(key);
|
21
|
+
}
|
22
|
+
}, {
|
23
|
+
schema,
|
24
|
+
getModel: strapi.getModel.bind(strapi)
|
25
|
+
}, entity));
|
26
|
+
return {
|
27
|
+
sanitizeLocalizationFields
|
28
|
+
};
|
29
|
+
};
|
30
|
+
|
31
|
+
export { sanitize as default };
|
32
|
+
//# sourceMappingURL=index.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/services/sanitize/index.ts"],"sourcesContent":["import type { Core, Schema, Data } from '@strapi/types';\n\nimport { traverseEntity } from '@strapi/utils';\nimport { curry } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\nconst LOCALIZATION_FIELDS = ['locale', 'localizations'];\n\nconst sanitize = ({ strapi }: { strapi: Core.Strapi }) => {\n const { isLocalizedContentType } = getService('content-types');\n\n /**\n * Sanitizes localization fields of a given entity based on its schema.\n *\n * Remove localization-related fields that are unnecessary, that is\n * for schemas that aren't localized.\n */\n const sanitizeLocalizationFields = curry((schema: Schema.Schema, entity: Data.Entity) =>\n traverseEntity(\n ({ key, schema }, { remove }) => {\n const isLocalized = isLocalizedContentType(schema);\n const isLocalizationField = LOCALIZATION_FIELDS.includes(key);\n\n if (!isLocalized && isLocalizationField) {\n remove(key);\n }\n },\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n )\n );\n\n return {\n sanitizeLocalizationFields,\n };\n};\n\ntype SanitizeService = typeof sanitize;\n\nexport default sanitize;\nexport type { SanitizeService };\n"],"names":["LOCALIZATION_FIELDS","sanitize","strapi","isLocalizedContentType","getService","sanitizeLocalizationFields","curry","schema","entity","traverseEntity","key","remove","isLocalized","isLocalizationField","includes","getModel","bind"],"mappings":";;;;AAOA,MAAMA,mBAAsB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;AAAgB,CAAA;AAEvD,MAAMC,QAAW,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACnD,IAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;AAE9C;;;;;AAKC,MACD,MAAMC,0BAA6BC,GAAAA,KAAAA,CAAM,CAACC,MAAAA,EAAuBC,SAC/DC,cACE,CAAA,CAAC,EAAEC,GAAG,EAAEH,MAAM,EAAE,EAAE,EAAEI,MAAM,EAAE,GAAA;AAC1B,YAAA,MAAMC,cAAcT,sBAAuBI,CAAAA,MAAAA,CAAAA;YAC3C,MAAMM,mBAAAA,GAAsBb,mBAAoBc,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;YAEzD,IAAI,CAACE,eAAeC,mBAAqB,EAAA;gBACvCF,MAAOD,CAAAA,GAAAA,CAAAA;AACT;SAEF,EAAA;AAAEH,YAAAA,MAAAA;AAAQQ,YAAAA,QAAAA,EAAUb,MAAOa,CAAAA,QAAQ,CAACC,IAAI,CAACd,MAAAA;SACzCM,EAAAA,MAAAA,CAAAA,CAAAA;IAIJ,OAAO;AACLH,QAAAA;AACF,KAAA;AACF;;;;"}
|
@@ -22,14 +22,7 @@ declare const _default: () => {
|
|
22
22
|
};
|
23
23
|
}[];
|
24
24
|
};
|
25
|
-
'content-api':
|
26
|
-
type: string;
|
27
|
-
routes: {
|
28
|
-
method: string;
|
29
|
-
path: string;
|
30
|
-
handler: string;
|
31
|
-
}[];
|
32
|
-
};
|
25
|
+
'content-api': () => import("@strapi/types/dist/core").RouterInput;
|
33
26
|
};
|
34
27
|
controllers: {
|
35
28
|
locales: import("@strapi/types/dist/core").Controller;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBAOG"}
|
@@ -1,10 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
routes: {
|
4
|
-
method: string;
|
5
|
-
path: string;
|
6
|
-
handler: string;
|
7
|
-
}[];
|
8
|
-
};
|
1
|
+
import type { Core } from '@strapi/types';
|
2
|
+
declare const _default: () => Core.RouterInput;
|
9
3
|
export default _default;
|
10
4
|
//# sourceMappingURL=content-api.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;8BAGvB,KAAK,WAAW;AAAnC,wBAcE"}
|
@@ -15,14 +15,7 @@ declare const _default: {
|
|
15
15
|
};
|
16
16
|
}[];
|
17
17
|
};
|
18
|
-
'content-api':
|
19
|
-
type: string;
|
20
|
-
routes: {
|
21
|
-
method: string;
|
22
|
-
path: string;
|
23
|
-
handler: string;
|
24
|
-
}[];
|
25
|
-
};
|
18
|
+
'content-api': () => import("@strapi/types/dist/core").RouterInput;
|
26
19
|
};
|
27
20
|
export default _default;
|
28
21
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,wBAGE"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/routes/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import type { Core } from '@strapi/types';
|
2
|
+
import * as z from 'zod/v4';
|
3
|
+
/**
|
4
|
+
* A validator for i18n locale routes.
|
5
|
+
*
|
6
|
+
*/
|
7
|
+
export declare class I18nLocaleRouteValidator {
|
8
|
+
protected readonly _strapi: Core.Strapi;
|
9
|
+
constructor(strapi: Core.Strapi);
|
10
|
+
/**
|
11
|
+
* Generates a validation schema for a single locale.
|
12
|
+
*
|
13
|
+
* @returns A schema for validating locale objects
|
14
|
+
*/
|
15
|
+
get locale(): z.ZodObject<{
|
16
|
+
id: z.ZodNumber;
|
17
|
+
documentId: z.ZodString;
|
18
|
+
name: z.ZodString;
|
19
|
+
code: z.ZodString;
|
20
|
+
createdAt: z.ZodString;
|
21
|
+
updatedAt: z.ZodString;
|
22
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
23
|
+
isDefault: z.ZodBoolean;
|
24
|
+
}, z.core.$strip>;
|
25
|
+
/**
|
26
|
+
* Generates a validation schema for an array of locales
|
27
|
+
*
|
28
|
+
* @returns A schema for validating arrays of locales
|
29
|
+
*/
|
30
|
+
get locales(): z.ZodArray<z.ZodObject<{
|
31
|
+
id: z.ZodNumber;
|
32
|
+
documentId: z.ZodString;
|
33
|
+
name: z.ZodString;
|
34
|
+
code: z.ZodString;
|
35
|
+
createdAt: z.ZodString;
|
36
|
+
updatedAt: z.ZodString;
|
37
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
38
|
+
isDefault: z.ZodBoolean;
|
39
|
+
}, z.core.$strip>>;
|
40
|
+
}
|
41
|
+
//# sourceMappingURL=locale.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../../../server/src/routes/validation/locale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,qBAAa,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;gBAErB,MAAM,EAAE,IAAI,CAAC,MAAM;IAItC;;;;OAIG;IACH,IAAI,MAAM;;;;;;;;;sBAWT;IAED;;;;OAIG;IACH,IAAI,OAAO;;;;;;;;;uBAEV;CACF"}
|