@strapi/i18n 0.0.0-experimental.c222e1c4de12dd05c26938a605a1128fb3481d1d → 0.0.0-experimental.c23f51fc41b3ef5de081f427d07e87af93cdcb2c
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 +226 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +202 -5
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/middlewares/extendCTBAttributeInitialData.js +61 -0
- package/dist/admin/middlewares/extendCTBAttributeInitialData.js.map +1 -0
- package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs +59 -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 +12 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +10 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/services/locales.js +70 -0
- package/dist/admin/services/locales.js.map +1 -0
- package/dist/admin/services/locales.mjs +64 -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/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 +29 -0
- package/dist/admin/utils/fields.js.map +1 -0
- package/dist/admin/utils/fields.mjs +26 -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 +68 -0
- package/dist/admin/utils/schemas.js.map +1 -0
- package/dist/admin/utils/schemas.mjs +66 -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 +15 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +13 -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/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/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 +17 -15
- package/dist/_chunks/SettingsPage-BHvunuIF.mjs +0 -554
- package/dist/_chunks/SettingsPage-BHvunuIF.mjs.map +0 -1
- package/dist/_chunks/SettingsPage-Bcj7380u.js +0 -574
- package/dist/_chunks/SettingsPage-Bcj7380u.js.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-BKZbxhpm.js +0 -1637
- package/dist/_chunks/index-BKZbxhpm.js.map +0 -1
- package/dist/_chunks/index-DUdrr5PR.mjs +0 -1615
- package/dist/_chunks/index-DUdrr5PR.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 @@
|
|
1
|
+
{"version":3,"file":"locales.mjs","sources":["../../../server/src/controllers/locales.ts"],"sourcesContent":["import * as utils from '@strapi/utils';\nimport { pick } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport { validateCreateLocaleInput, validateUpdateLocaleInput } from '../validation/locales';\nimport { formatLocale } from '../domain/locale';\n\nconst { setCreatorFields } = utils;\nconst { ApplicationError } = utils.errors;\n\nconst sanitizeLocale = (locale: any) => {\n const model = strapi.getModel('plugin::i18n.locale');\n\n return strapi.contentAPI.sanitize.output(locale, model);\n};\n\nconst controller: Core.Controller = {\n async listLocales(ctx) {\n const localesService = getService('locales');\n\n const locales = await localesService.find();\n const sanitizedLocales = await sanitizeLocale(locales);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocales);\n },\n\n async createLocale(ctx) {\n const { user } = ctx.state;\n const body = ctx.request.body as any;\n const { isDefault, ...localeToCreate } = body;\n\n await validateCreateLocaleInput(body);\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findByCode(body.code);\n if (existingLocale) {\n throw new ApplicationError('This locale already exists');\n }\n\n const localeToPersist = setCreatorFields({ user })(formatLocale(localeToCreate));\n\n const locale = await localesService.create(localeToPersist);\n\n if (isDefault) {\n await localesService.setDefaultLocale(locale);\n }\n\n const sanitizedLocale = await sanitizeLocale(locale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n\n async updateLocale(ctx) {\n const { user } = ctx.state;\n const { id } = ctx.params;\n const body = ctx.request.body as any;\n const { isDefault, ...updates } = body;\n\n await validateUpdateLocaleInput(body);\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findById(id);\n if (!existingLocale) {\n return ctx.notFound('locale.notFound');\n }\n\n const allowedParams = ['name'];\n const cleanUpdates = setCreatorFields({ user, isEdition: true })(pick(allowedParams, updates));\n\n const updatedLocale = await localesService.update({ id }, cleanUpdates);\n\n if (isDefault) {\n await localesService.setDefaultLocale(updatedLocale);\n }\n\n const sanitizedLocale = await sanitizeLocale(updatedLocale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n\n async deleteLocale(ctx) {\n const { id } = ctx.params;\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findById(id);\n if (!existingLocale) {\n return ctx.notFound('locale.notFound');\n }\n\n const defaultLocaleCode = await localesService.getDefaultLocale();\n if (existingLocale.code === defaultLocaleCode) {\n throw new ApplicationError('Cannot delete the default locale');\n }\n\n await localesService.delete({ id });\n\n const sanitizedLocale = await sanitizeLocale(existingLocale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n};\n\nexport default controller;\n"],"names":["setCreatorFields","utils","ApplicationError","errors","sanitizeLocale","locale","model","strapi","getModel","contentAPI","sanitize","output","controller","listLocales","ctx","localesService","getService","locales","find","sanitizedLocales","body","setIsDefault","createLocale","user","state","request","isDefault","localeToCreate","validateCreateLocaleInput","existingLocale","findByCode","code","localeToPersist","formatLocale","create","setDefaultLocale","sanitizedLocale","updateLocale","id","params","updates","validateUpdateLocaleInput","findById","notFound","allowedParams","cleanUpdates","isEdition","pick","updatedLocale","update","deleteLocale","defaultLocaleCode","getDefaultLocale","delete"],"mappings":"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"}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var fp = require('lodash/fp');
|
4
|
+
var utils = require('@strapi/utils');
|
5
|
+
var index = require('../utils/index.js');
|
6
|
+
|
7
|
+
const { ApplicationError } = utils.errors;
|
8
|
+
// TODO: v5 if implemented in the CM => delete this middleware
|
9
|
+
const validateLocaleCreation = async (ctx, next)=>{
|
10
|
+
const { model } = ctx.params;
|
11
|
+
const { query } = ctx.request;
|
12
|
+
// Prevent empty body
|
13
|
+
if (!ctx.request.body) {
|
14
|
+
ctx.request.body = {};
|
15
|
+
}
|
16
|
+
const body = ctx.request.body;
|
17
|
+
const { getValidLocale, isLocalizedContentType } = index.getService('content-types');
|
18
|
+
const modelDef = strapi.getModel(model);
|
19
|
+
if (!isLocalizedContentType(modelDef)) {
|
20
|
+
return next();
|
21
|
+
}
|
22
|
+
// Prevent empty string locale
|
23
|
+
const locale = fp.get('locale', query) || fp.get('locale', body) || undefined;
|
24
|
+
// cleanup to avoid creating duplicates in single types
|
25
|
+
ctx.request.query = {};
|
26
|
+
let entityLocale;
|
27
|
+
try {
|
28
|
+
entityLocale = await getValidLocale(locale);
|
29
|
+
} catch (e) {
|
30
|
+
throw new ApplicationError("This locale doesn't exist");
|
31
|
+
}
|
32
|
+
body.locale = entityLocale;
|
33
|
+
if (modelDef.kind === 'singleType') {
|
34
|
+
const entity = await strapi.entityService.findMany(modelDef.uid, {
|
35
|
+
locale: entityLocale
|
36
|
+
}); // TODO: add this type to entityService
|
37
|
+
ctx.request.query.locale = body.locale;
|
38
|
+
// updating
|
39
|
+
if (entity) {
|
40
|
+
return next();
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return next();
|
44
|
+
};
|
45
|
+
|
46
|
+
module.exports = validateLocaleCreation;
|
47
|
+
//# sourceMappingURL=validate-locale-creation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validate-locale-creation.js","sources":["../../../server/src/controllers/validate-locale-creation.ts"],"sourcesContent":["import { get } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst { ApplicationError } = errors;\n\n// TODO: v5 if implemented in the CM => delete this middleware\nconst validateLocaleCreation: Core.MiddlewareHandler = async (ctx, next) => {\n const { model } = ctx.params;\n const { query } = ctx.request;\n\n // Prevent empty body\n if (!ctx.request.body) {\n ctx.request.body = {};\n }\n\n const body = ctx.request.body as any;\n\n const { getValidLocale, isLocalizedContentType } = getService('content-types');\n\n const modelDef = strapi.getModel(model) as Struct.ContentTypeSchema;\n\n if (!isLocalizedContentType(modelDef)) {\n return next();\n }\n\n // Prevent empty string locale\n const locale = get('locale', query) || get('locale', body) || undefined;\n\n // cleanup to avoid creating duplicates in single types\n ctx.request.query = {};\n\n let entityLocale;\n try {\n entityLocale = await getValidLocale(locale);\n } catch (e) {\n throw new ApplicationError(\"This locale doesn't exist\");\n }\n\n body.locale = entityLocale;\n\n if (modelDef.kind === 'singleType') {\n const entity = await strapi.entityService.findMany(modelDef.uid, {\n locale: entityLocale,\n } as any); // TODO: add this type to entityService\n\n ctx.request.query.locale = body.locale;\n\n // updating\n if (entity) {\n return next();\n }\n }\n\n return next();\n};\n\nexport default validateLocaleCreation;\n"],"names":["ApplicationError","errors","validateLocaleCreation","ctx","next","model","params","query","request","body","getValidLocale","isLocalizedContentType","getService","modelDef","strapi","getModel","locale","get","undefined","entityLocale","e","kind","entity","entityService","findMany","uid"],"mappings":";;;;;;AAKA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAE7B;AACMC,MAAAA,sBAAAA,GAAiD,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACjE,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGF,IAAIG,MAAM;AAC5B,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGJ,IAAIK,OAAO;;AAG7B,IAAA,IAAI,CAACL,GAAAA,CAAIK,OAAO,CAACC,IAAI,EAAE;AACrBN,QAAAA,GAAAA,CAAIK,OAAO,CAACC,IAAI,GAAG,EAAC;AACtB;AAEA,IAAA,MAAMA,IAAON,GAAAA,GAAAA,CAAIK,OAAO,CAACC,IAAI;AAE7B,IAAA,MAAM,EAAEC,cAAc,EAAEC,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;IAE9D,MAAMC,QAAAA,GAAWC,MAAOC,CAAAA,QAAQ,CAACV,KAAAA,CAAAA;IAEjC,IAAI,CAACM,uBAAuBE,QAAW,CAAA,EAAA;QACrC,OAAOT,IAAAA,EAAAA;AACT;;AAGA,IAAA,MAAMY,SAASC,MAAI,CAAA,QAAA,EAAUV,KAAUU,CAAAA,IAAAA,MAAAA,CAAI,UAAUR,IAASS,CAAAA,IAAAA,SAAAA;;AAG9Df,IAAAA,GAAAA,CAAIK,OAAO,CAACD,KAAK,GAAG,EAAC;IAErB,IAAIY,YAAAA;IACJ,IAAI;AACFA,QAAAA,YAAAA,GAAe,MAAMT,cAAeM,CAAAA,MAAAA,CAAAA;AACtC,KAAA,CAAE,OAAOI,CAAG,EAAA;AACV,QAAA,MAAM,IAAIpB,gBAAiB,CAAA,2BAAA,CAAA;AAC7B;AAEAS,IAAAA,IAAAA,CAAKO,MAAM,GAAGG,YAAAA;IAEd,IAAIN,QAAAA,CAASQ,IAAI,KAAK,YAAc,EAAA;QAClC,MAAMC,MAAAA,GAAS,MAAMR,MAAOS,CAAAA,aAAa,CAACC,QAAQ,CAACX,QAASY,CAAAA,GAAG,EAAE;YAC/DT,MAAQG,EAAAA;AACV,SAAA,CAAA,CAAA;AAEAhB,QAAAA,GAAAA,CAAIK,OAAO,CAACD,KAAK,CAACS,MAAM,GAAGP,KAAKO,MAAM;;AAGtC,QAAA,IAAIM,MAAQ,EAAA;YACV,OAAOlB,IAAAA,EAAAA;AACT;AACF;IAEA,OAAOA,IAAAA,EAAAA;AACT;;;;"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { get } from 'lodash/fp';
|
2
|
+
import { errors } from '@strapi/utils';
|
3
|
+
import { getService } from '../utils/index.mjs';
|
4
|
+
|
5
|
+
const { ApplicationError } = errors;
|
6
|
+
// TODO: v5 if implemented in the CM => delete this middleware
|
7
|
+
const validateLocaleCreation = async (ctx, next)=>{
|
8
|
+
const { model } = ctx.params;
|
9
|
+
const { query } = ctx.request;
|
10
|
+
// Prevent empty body
|
11
|
+
if (!ctx.request.body) {
|
12
|
+
ctx.request.body = {};
|
13
|
+
}
|
14
|
+
const body = ctx.request.body;
|
15
|
+
const { getValidLocale, isLocalizedContentType } = getService('content-types');
|
16
|
+
const modelDef = strapi.getModel(model);
|
17
|
+
if (!isLocalizedContentType(modelDef)) {
|
18
|
+
return next();
|
19
|
+
}
|
20
|
+
// Prevent empty string locale
|
21
|
+
const locale = get('locale', query) || get('locale', body) || undefined;
|
22
|
+
// cleanup to avoid creating duplicates in single types
|
23
|
+
ctx.request.query = {};
|
24
|
+
let entityLocale;
|
25
|
+
try {
|
26
|
+
entityLocale = await getValidLocale(locale);
|
27
|
+
} catch (e) {
|
28
|
+
throw new ApplicationError("This locale doesn't exist");
|
29
|
+
}
|
30
|
+
body.locale = entityLocale;
|
31
|
+
if (modelDef.kind === 'singleType') {
|
32
|
+
const entity = await strapi.entityService.findMany(modelDef.uid, {
|
33
|
+
locale: entityLocale
|
34
|
+
}); // TODO: add this type to entityService
|
35
|
+
ctx.request.query.locale = body.locale;
|
36
|
+
// updating
|
37
|
+
if (entity) {
|
38
|
+
return next();
|
39
|
+
}
|
40
|
+
}
|
41
|
+
return next();
|
42
|
+
};
|
43
|
+
|
44
|
+
export { validateLocaleCreation as default };
|
45
|
+
//# sourceMappingURL=validate-locale-creation.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validate-locale-creation.mjs","sources":["../../../server/src/controllers/validate-locale-creation.ts"],"sourcesContent":["import { get } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst { ApplicationError } = errors;\n\n// TODO: v5 if implemented in the CM => delete this middleware\nconst validateLocaleCreation: Core.MiddlewareHandler = async (ctx, next) => {\n const { model } = ctx.params;\n const { query } = ctx.request;\n\n // Prevent empty body\n if (!ctx.request.body) {\n ctx.request.body = {};\n }\n\n const body = ctx.request.body as any;\n\n const { getValidLocale, isLocalizedContentType } = getService('content-types');\n\n const modelDef = strapi.getModel(model) as Struct.ContentTypeSchema;\n\n if (!isLocalizedContentType(modelDef)) {\n return next();\n }\n\n // Prevent empty string locale\n const locale = get('locale', query) || get('locale', body) || undefined;\n\n // cleanup to avoid creating duplicates in single types\n ctx.request.query = {};\n\n let entityLocale;\n try {\n entityLocale = await getValidLocale(locale);\n } catch (e) {\n throw new ApplicationError(\"This locale doesn't exist\");\n }\n\n body.locale = entityLocale;\n\n if (modelDef.kind === 'singleType') {\n const entity = await strapi.entityService.findMany(modelDef.uid, {\n locale: entityLocale,\n } as any); // TODO: add this type to entityService\n\n ctx.request.query.locale = body.locale;\n\n // updating\n if (entity) {\n return next();\n }\n }\n\n return next();\n};\n\nexport default validateLocaleCreation;\n"],"names":["ApplicationError","errors","validateLocaleCreation","ctx","next","model","params","query","request","body","getValidLocale","isLocalizedContentType","getService","modelDef","strapi","getModel","locale","get","undefined","entityLocale","e","kind","entity","entityService","findMany","uid"],"mappings":";;;;AAKA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B;AACMC,MAAAA,sBAAAA,GAAiD,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACjE,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGF,IAAIG,MAAM;AAC5B,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGJ,IAAIK,OAAO;;AAG7B,IAAA,IAAI,CAACL,GAAAA,CAAIK,OAAO,CAACC,IAAI,EAAE;AACrBN,QAAAA,GAAAA,CAAIK,OAAO,CAACC,IAAI,GAAG,EAAC;AACtB;AAEA,IAAA,MAAMA,IAAON,GAAAA,GAAAA,CAAIK,OAAO,CAACC,IAAI;AAE7B,IAAA,MAAM,EAAEC,cAAc,EAAEC,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;IAE9D,MAAMC,QAAAA,GAAWC,MAAOC,CAAAA,QAAQ,CAACV,KAAAA,CAAAA;IAEjC,IAAI,CAACM,uBAAuBE,QAAW,CAAA,EAAA;QACrC,OAAOT,IAAAA,EAAAA;AACT;;AAGA,IAAA,MAAMY,SAASC,GAAI,CAAA,QAAA,EAAUV,KAAUU,CAAAA,IAAAA,GAAAA,CAAI,UAAUR,IAASS,CAAAA,IAAAA,SAAAA;;AAG9Df,IAAAA,GAAAA,CAAIK,OAAO,CAACD,KAAK,GAAG,EAAC;IAErB,IAAIY,YAAAA;IACJ,IAAI;AACFA,QAAAA,YAAAA,GAAe,MAAMT,cAAeM,CAAAA,MAAAA,CAAAA;AACtC,KAAA,CAAE,OAAOI,CAAG,EAAA;AACV,QAAA,MAAM,IAAIpB,gBAAiB,CAAA,2BAAA,CAAA;AAC7B;AAEAS,IAAAA,IAAAA,CAAKO,MAAM,GAAGG,YAAAA;IAEd,IAAIN,QAAAA,CAASQ,IAAI,KAAK,YAAc,EAAA;QAClC,MAAMC,MAAAA,GAAS,MAAMR,MAAOS,CAAAA,aAAa,CAACC,QAAQ,CAACX,QAASY,CAAAA,GAAG,EAAE;YAC/DT,MAAQG,EAAAA;AACV,SAAA,CAAA,CAAA;AAEAhB,QAAAA,GAAAA,CAAIK,OAAO,CAACD,KAAK,CAACS,MAAM,GAAGP,KAAKO,MAAM;;AAGtC,QAAA,IAAIM,MAAQ,EAAA;YACV,OAAOlB,IAAAA,EAAAA;AACT;AACF;IAEA,OAAOA,IAAAA,EAAAA;AACT;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"locale.js","sources":["../../../server/src/domain/locale.ts"],"sourcesContent":["const formatLocale = (locale: { name: string; code: string; isDefault: boolean }) => {\n return {\n ...locale,\n name: locale.name || null,\n };\n};\n\nexport { formatLocale };\n"],"names":["formatLocale","locale","name"],"mappings":";;AAAA,MAAMA,eAAe,CAACC,MAAAA,GAAAA;IACpB,OAAO;AACL,QAAA,GAAGA,MAAM;QACTC,IAAMD,EAAAA,MAAAA,CAAOC,IAAI,IAAI;AACvB,KAAA;AACF;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"locale.mjs","sources":["../../../server/src/domain/locale.ts"],"sourcesContent":["const formatLocale = (locale: { name: string; code: string; isDefault: boolean }) => {\n return {\n ...locale,\n name: locale.name || null,\n };\n};\n\nexport { formatLocale };\n"],"names":["formatLocale","locale","name"],"mappings":"AAAA,MAAMA,eAAe,CAACC,MAAAA,GAAAA;IACpB,OAAO;AACL,QAAA,GAAGA,MAAM;QACTC,IAAMD,EAAAA,MAAAA,CAAOC,IAAI,IAAI;AACvB,KAAA;AACF;;;;"}
|
@@ -0,0 +1,115 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var fp = require('lodash/fp');
|
4
|
+
var utils = require('@strapi/utils');
|
5
|
+
|
6
|
+
const { ValidationError } = utils.errors;
|
7
|
+
const LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';
|
8
|
+
const LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';
|
9
|
+
var graphqlProvider = (({ strapi: strapi1 })=>({
|
10
|
+
register () {
|
11
|
+
const { service: getGraphQLService } = strapi1.plugin('graphql');
|
12
|
+
const { service: getI18NService } = strapi1.plugin('i18n');
|
13
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
14
|
+
const extensionService = getGraphQLService('extension');
|
15
|
+
extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();
|
16
|
+
// Disable unwanted fields for localized content types
|
17
|
+
Object.entries(strapi1.contentTypes).forEach(([uid, ct])=>{
|
18
|
+
if (isLocalizedContentType(ct)) {
|
19
|
+
// Disable locale field in localized inputs
|
20
|
+
extensionService.shadowCRUD(uid).field('locale').disableInput();
|
21
|
+
// Disable localizations field in localized inputs
|
22
|
+
extensionService.shadowCRUD(uid).field('localizations').disableInput();
|
23
|
+
}
|
24
|
+
});
|
25
|
+
extensionService.use(({ nexus, typeRegistry })=>{
|
26
|
+
const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({
|
27
|
+
nexus,
|
28
|
+
typeRegistry
|
29
|
+
});
|
30
|
+
const i18nLocaleScalar = getLocaleScalar({
|
31
|
+
nexus
|
32
|
+
});
|
33
|
+
return {
|
34
|
+
plugins: [
|
35
|
+
i18nLocaleArgPlugin
|
36
|
+
],
|
37
|
+
types: [
|
38
|
+
i18nLocaleScalar
|
39
|
+
],
|
40
|
+
resolversConfig: {
|
41
|
+
// Modify the default scope associated to find and findOne locale queries to match the actual action name
|
42
|
+
'Query.i18NLocale': {
|
43
|
+
auth: {
|
44
|
+
scope: 'plugin::i18n.locales.listLocales'
|
45
|
+
}
|
46
|
+
},
|
47
|
+
'Query.i18NLocales': {
|
48
|
+
auth: {
|
49
|
+
scope: 'plugin::i18n.locales.listLocales'
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
};
|
54
|
+
});
|
55
|
+
}
|
56
|
+
}));
|
57
|
+
const getLocaleScalar = ({ nexus })=>{
|
58
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
59
|
+
const locales = getI18NService('iso-locales').getIsoLocales();
|
60
|
+
return nexus.scalarType({
|
61
|
+
name: LOCALE_SCALAR_TYPENAME,
|
62
|
+
description: 'A string used to identify an i18n locale',
|
63
|
+
serialize: fp.identity,
|
64
|
+
parseValue: fp.identity,
|
65
|
+
parseLiteral (ast) {
|
66
|
+
if (ast.kind !== 'StringValue') {
|
67
|
+
throw new ValidationError('Locale cannot represent non string type');
|
68
|
+
}
|
69
|
+
const isValidLocale = ast.value === '*' || locales.find(fp.propEq('code', ast.value));
|
70
|
+
if (!isValidLocale) {
|
71
|
+
throw new ValidationError('Unknown locale supplied');
|
72
|
+
}
|
73
|
+
return ast.value;
|
74
|
+
}
|
75
|
+
});
|
76
|
+
};
|
77
|
+
const getI18nLocaleArgPlugin = ({ nexus, typeRegistry })=>{
|
78
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
79
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
80
|
+
return nexus.plugin({
|
81
|
+
name: LOCALE_ARG_PLUGIN_NAME,
|
82
|
+
onAddOutputField (config) {
|
83
|
+
// Add the locale arg to the queries on localized CTs
|
84
|
+
const { parentType } = config;
|
85
|
+
// Only target queries or mutations
|
86
|
+
if (parentType !== 'Query' && parentType !== 'Mutation') {
|
87
|
+
return;
|
88
|
+
}
|
89
|
+
let contentType;
|
90
|
+
if (config?.extensions?.strapi?.contentType) {
|
91
|
+
contentType = config.extensions.strapi.contentType;
|
92
|
+
} else {
|
93
|
+
const registryType = typeRegistry.get(config.type);
|
94
|
+
if (!registryType) {
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
contentType = registryType.config.contentType;
|
98
|
+
}
|
99
|
+
// Ignore non-localized content types
|
100
|
+
if (!isLocalizedContentType(contentType)) {
|
101
|
+
return;
|
102
|
+
}
|
103
|
+
if (!config.args) {
|
104
|
+
config.args = {};
|
105
|
+
}
|
106
|
+
config.args.locale = nexus.arg({
|
107
|
+
type: LOCALE_SCALAR_TYPENAME,
|
108
|
+
description: 'The locale to use for the query'
|
109
|
+
});
|
110
|
+
}
|
111
|
+
});
|
112
|
+
};
|
113
|
+
|
114
|
+
module.exports = graphqlProvider;
|
115
|
+
//# sourceMappingURL=graphql.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"graphql.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import { propEq, identity } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';\nconst LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n register() {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n const extensionService = getGraphQLService('extension');\n\n extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();\n\n // Disable unwanted fields for localized content types\n Object.entries(strapi.contentTypes).forEach(([uid, ct]) => {\n if (isLocalizedContentType(ct)) {\n // Disable locale field in localized inputs\n extensionService.shadowCRUD(uid).field('locale').disableInput();\n\n // Disable localizations field in localized inputs\n extensionService.shadowCRUD(uid).field('localizations').disableInput();\n }\n });\n\n extensionService.use(({ nexus, typeRegistry }: any) => {\n const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({ nexus, typeRegistry });\n const i18nLocaleScalar = getLocaleScalar({ nexus });\n return {\n plugins: [i18nLocaleArgPlugin],\n types: [i18nLocaleScalar],\n\n resolversConfig: {\n // Modify the default scope associated to find and findOne locale queries to match the actual action name\n 'Query.i18NLocale': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n 'Query.i18NLocales': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n },\n };\n });\n },\n});\n\nconst getLocaleScalar = ({ nexus }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const locales = getI18NService('iso-locales').getIsoLocales();\n\n return nexus.scalarType({\n name: LOCALE_SCALAR_TYPENAME,\n\n description: 'A string used to identify an i18n locale',\n\n serialize: identity,\n parseValue: identity,\n\n parseLiteral(ast: any) {\n if (ast.kind !== 'StringValue') {\n throw new ValidationError('Locale cannot represent non string type');\n }\n\n const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));\n\n if (!isValidLocale) {\n throw new ValidationError('Unknown locale supplied');\n }\n\n return ast.value;\n },\n });\n};\n\nconst getI18nLocaleArgPlugin = ({ nexus, typeRegistry }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n return nexus.plugin({\n name: LOCALE_ARG_PLUGIN_NAME,\n\n onAddOutputField(config: any) {\n // Add the locale arg to the queries on localized CTs\n\n const { parentType } = config;\n\n // Only target queries or mutations\n if (parentType !== 'Query' && parentType !== 'Mutation') {\n return;\n }\n\n let contentType;\n\n if (config?.extensions?.strapi?.contentType) {\n contentType = config.extensions.strapi.contentType;\n } else {\n const registryType = typeRegistry.get(config.type);\n\n if (!registryType) {\n return;\n }\n\n contentType = registryType.config.contentType;\n }\n\n // Ignore non-localized content types\n if (!isLocalizedContentType(contentType)) {\n return;\n }\n\n if (!config.args) {\n config.args = {};\n }\n\n config.args.locale = nexus.arg({\n type: LOCALE_SCALAR_TYPENAME,\n description: 'The locale to use for the query',\n });\n },\n });\n};\n"],"names":["ValidationError","errors","LOCALE_SCALAR_TYPENAME","LOCALE_ARG_PLUGIN_NAME","strapi","register","service","getGraphQLService","plugin","getI18NService","isLocalizedContentType","extensionService","shadowCRUD","disableMutations","Object","entries","contentTypes","forEach","uid","ct","field","disableInput","use","nexus","typeRegistry","i18nLocaleArgPlugin","getI18nLocaleArgPlugin","i18nLocaleScalar","getLocaleScalar","plugins","types","resolversConfig","auth","scope","locales","getIsoLocales","scalarType","name","description","serialize","identity","parseValue","parseLiteral","ast","kind","isValidLocale","value","find","propEq","onAddOutputField","config","parentType","contentType","extensions","registryType","get","type","args","locale","arg"],"mappings":"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"}
|
@@ -0,0 +1,113 @@
|
|
1
|
+
import { identity, propEq } from 'lodash/fp';
|
2
|
+
import { errors } from '@strapi/utils';
|
3
|
+
|
4
|
+
const { ValidationError } = errors;
|
5
|
+
const LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';
|
6
|
+
const LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';
|
7
|
+
var graphqlProvider = (({ strapi: strapi1 })=>({
|
8
|
+
register () {
|
9
|
+
const { service: getGraphQLService } = strapi1.plugin('graphql');
|
10
|
+
const { service: getI18NService } = strapi1.plugin('i18n');
|
11
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
12
|
+
const extensionService = getGraphQLService('extension');
|
13
|
+
extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();
|
14
|
+
// Disable unwanted fields for localized content types
|
15
|
+
Object.entries(strapi1.contentTypes).forEach(([uid, ct])=>{
|
16
|
+
if (isLocalizedContentType(ct)) {
|
17
|
+
// Disable locale field in localized inputs
|
18
|
+
extensionService.shadowCRUD(uid).field('locale').disableInput();
|
19
|
+
// Disable localizations field in localized inputs
|
20
|
+
extensionService.shadowCRUD(uid).field('localizations').disableInput();
|
21
|
+
}
|
22
|
+
});
|
23
|
+
extensionService.use(({ nexus, typeRegistry })=>{
|
24
|
+
const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({
|
25
|
+
nexus,
|
26
|
+
typeRegistry
|
27
|
+
});
|
28
|
+
const i18nLocaleScalar = getLocaleScalar({
|
29
|
+
nexus
|
30
|
+
});
|
31
|
+
return {
|
32
|
+
plugins: [
|
33
|
+
i18nLocaleArgPlugin
|
34
|
+
],
|
35
|
+
types: [
|
36
|
+
i18nLocaleScalar
|
37
|
+
],
|
38
|
+
resolversConfig: {
|
39
|
+
// Modify the default scope associated to find and findOne locale queries to match the actual action name
|
40
|
+
'Query.i18NLocale': {
|
41
|
+
auth: {
|
42
|
+
scope: 'plugin::i18n.locales.listLocales'
|
43
|
+
}
|
44
|
+
},
|
45
|
+
'Query.i18NLocales': {
|
46
|
+
auth: {
|
47
|
+
scope: 'plugin::i18n.locales.listLocales'
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
};
|
52
|
+
});
|
53
|
+
}
|
54
|
+
}));
|
55
|
+
const getLocaleScalar = ({ nexus })=>{
|
56
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
57
|
+
const locales = getI18NService('iso-locales').getIsoLocales();
|
58
|
+
return nexus.scalarType({
|
59
|
+
name: LOCALE_SCALAR_TYPENAME,
|
60
|
+
description: 'A string used to identify an i18n locale',
|
61
|
+
serialize: identity,
|
62
|
+
parseValue: identity,
|
63
|
+
parseLiteral (ast) {
|
64
|
+
if (ast.kind !== 'StringValue') {
|
65
|
+
throw new ValidationError('Locale cannot represent non string type');
|
66
|
+
}
|
67
|
+
const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));
|
68
|
+
if (!isValidLocale) {
|
69
|
+
throw new ValidationError('Unknown locale supplied');
|
70
|
+
}
|
71
|
+
return ast.value;
|
72
|
+
}
|
73
|
+
});
|
74
|
+
};
|
75
|
+
const getI18nLocaleArgPlugin = ({ nexus, typeRegistry })=>{
|
76
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
77
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
78
|
+
return nexus.plugin({
|
79
|
+
name: LOCALE_ARG_PLUGIN_NAME,
|
80
|
+
onAddOutputField (config) {
|
81
|
+
// Add the locale arg to the queries on localized CTs
|
82
|
+
const { parentType } = config;
|
83
|
+
// Only target queries or mutations
|
84
|
+
if (parentType !== 'Query' && parentType !== 'Mutation') {
|
85
|
+
return;
|
86
|
+
}
|
87
|
+
let contentType;
|
88
|
+
if (config?.extensions?.strapi?.contentType) {
|
89
|
+
contentType = config.extensions.strapi.contentType;
|
90
|
+
} else {
|
91
|
+
const registryType = typeRegistry.get(config.type);
|
92
|
+
if (!registryType) {
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
contentType = registryType.config.contentType;
|
96
|
+
}
|
97
|
+
// Ignore non-localized content types
|
98
|
+
if (!isLocalizedContentType(contentType)) {
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
if (!config.args) {
|
102
|
+
config.args = {};
|
103
|
+
}
|
104
|
+
config.args.locale = nexus.arg({
|
105
|
+
type: LOCALE_SCALAR_TYPENAME,
|
106
|
+
description: 'The locale to use for the query'
|
107
|
+
});
|
108
|
+
}
|
109
|
+
});
|
110
|
+
};
|
111
|
+
|
112
|
+
export { graphqlProvider as default };
|
113
|
+
//# sourceMappingURL=graphql.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"graphql.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import { propEq, identity } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';\nconst LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n register() {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n const extensionService = getGraphQLService('extension');\n\n extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();\n\n // Disable unwanted fields for localized content types\n Object.entries(strapi.contentTypes).forEach(([uid, ct]) => {\n if (isLocalizedContentType(ct)) {\n // Disable locale field in localized inputs\n extensionService.shadowCRUD(uid).field('locale').disableInput();\n\n // Disable localizations field in localized inputs\n extensionService.shadowCRUD(uid).field('localizations').disableInput();\n }\n });\n\n extensionService.use(({ nexus, typeRegistry }: any) => {\n const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({ nexus, typeRegistry });\n const i18nLocaleScalar = getLocaleScalar({ nexus });\n return {\n plugins: [i18nLocaleArgPlugin],\n types: [i18nLocaleScalar],\n\n resolversConfig: {\n // Modify the default scope associated to find and findOne locale queries to match the actual action name\n 'Query.i18NLocale': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n 'Query.i18NLocales': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n },\n };\n });\n },\n});\n\nconst getLocaleScalar = ({ nexus }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const locales = getI18NService('iso-locales').getIsoLocales();\n\n return nexus.scalarType({\n name: LOCALE_SCALAR_TYPENAME,\n\n description: 'A string used to identify an i18n locale',\n\n serialize: identity,\n parseValue: identity,\n\n parseLiteral(ast: any) {\n if (ast.kind !== 'StringValue') {\n throw new ValidationError('Locale cannot represent non string type');\n }\n\n const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));\n\n if (!isValidLocale) {\n throw new ValidationError('Unknown locale supplied');\n }\n\n return ast.value;\n },\n });\n};\n\nconst getI18nLocaleArgPlugin = ({ nexus, typeRegistry }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n return nexus.plugin({\n name: LOCALE_ARG_PLUGIN_NAME,\n\n onAddOutputField(config: any) {\n // Add the locale arg to the queries on localized CTs\n\n const { parentType } = config;\n\n // Only target queries or mutations\n if (parentType !== 'Query' && parentType !== 'Mutation') {\n return;\n }\n\n let contentType;\n\n if (config?.extensions?.strapi?.contentType) {\n contentType = config.extensions.strapi.contentType;\n } else {\n const registryType = typeRegistry.get(config.type);\n\n if (!registryType) {\n return;\n }\n\n contentType = registryType.config.contentType;\n }\n\n // Ignore non-localized content types\n if (!isLocalizedContentType(contentType)) {\n return;\n }\n\n if (!config.args) {\n config.args = {};\n }\n\n config.args.locale = nexus.arg({\n type: LOCALE_SCALAR_TYPENAME,\n description: 'The locale to use for the query',\n });\n },\n });\n};\n"],"names":["ValidationError","errors","LOCALE_SCALAR_TYPENAME","LOCALE_ARG_PLUGIN_NAME","strapi","register","service","getGraphQLService","plugin","getI18NService","isLocalizedContentType","extensionService","shadowCRUD","disableMutations","Object","entries","contentTypes","forEach","uid","ct","field","disableInput","use","nexus","typeRegistry","i18nLocaleArgPlugin","getI18nLocaleArgPlugin","i18nLocaleScalar","getLocaleScalar","plugins","types","resolversConfig","auth","scope","locales","getIsoLocales","scalarType","name","description","serialize","identity","parseValue","parseLiteral","ast","kind","isValidLocale","value","find","propEq","onAddOutputField","config","parentType","contentType","extensions","registryType","get","type","args","locale","arg"],"mappings":"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"}
|