@strapi/i18n 0.0.0-experimental.8ba06b448e7b82ad8505f461edf528901aea9e1e → 0.0.0-experimental.8bf99b7c43ed372264c198d347a2ada9dfed174d
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 +220 -16
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +202 -15
- 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 +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/utils/schemas.d.ts +424 -16
- package/dist/admin/{chunks/de-nEMWvIiY.js → translations/de.json.js} +2 -2
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-Cm8mYdaO.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-CYATLPVe.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-BeUFOegB.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-CG5cUCbD.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-eWSaCeOb.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-CWsogTGm.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-DqF_IdAc.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-CC7UFcYd.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-CyARbZ3c.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-XwGmfhoq.js → translations/ko.json.js} +2 -2
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-Ax4NSedM.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-B_vzY_ZB.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-B-aqvMqL.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-WzHcJV1f.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-VkPjQ-Sk.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-CcWp6u3w.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-DcTR88c9.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-CO6JHYRC.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-CMz6iPag.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DnU2bhri.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-L3wsRegj.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-C9So4SGq.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-RZyMiPIs.mjs → translations/zh.json.mjs} +1 -1
- 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 +10 -3712
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +7 -3691
- 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/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/package.json +8 -8
- package/dist/admin/chunks/SettingsPage-BOEeBbiM.mjs +0 -797
- package/dist/admin/chunks/SettingsPage-BOEeBbiM.mjs.map +0 -1
- package/dist/admin/chunks/SettingsPage-Mg2Ygywx.js +0 -820
- package/dist/admin/chunks/SettingsPage-Mg2Ygywx.js.map +0 -1
- package/dist/admin/chunks/de-Cm8mYdaO.mjs.map +0 -1
- package/dist/admin/chunks/de-nEMWvIiY.js.map +0 -1
- package/dist/admin/chunks/dk-BeUFOegB.mjs.map +0 -1
- package/dist/admin/chunks/dk-CYATLPVe.js.map +0 -1
- package/dist/admin/chunks/en-CG5cUCbD.js.map +0 -1
- package/dist/admin/chunks/en-eWSaCeOb.mjs.map +0 -1
- package/dist/admin/chunks/es-CWsogTGm.js.map +0 -1
- package/dist/admin/chunks/es-DqF_IdAc.mjs.map +0 -1
- package/dist/admin/chunks/fr-CC7UFcYd.js.map +0 -1
- package/dist/admin/chunks/fr-CyARbZ3c.mjs.map +0 -1
- package/dist/admin/chunks/index--VTS8j_L.mjs +0 -2008
- package/dist/admin/chunks/index--VTS8j_L.mjs.map +0 -1
- package/dist/admin/chunks/index-hJ67XV0K.js +0 -2037
- package/dist/admin/chunks/index-hJ67XV0K.js.map +0 -1
- package/dist/admin/chunks/ko-Ax4NSedM.mjs.map +0 -1
- package/dist/admin/chunks/ko-XwGmfhoq.js.map +0 -1
- package/dist/admin/chunks/pl-B-aqvMqL.mjs.map +0 -1
- package/dist/admin/chunks/pl-B_vzY_ZB.js.map +0 -1
- package/dist/admin/chunks/ru-VkPjQ-Sk.mjs.map +0 -1
- package/dist/admin/chunks/ru-WzHcJV1f.js.map +0 -1
- package/dist/admin/chunks/tr-CcWp6u3w.js.map +0 -1
- package/dist/admin/chunks/tr-DcTR88c9.mjs.map +0 -1
- package/dist/admin/chunks/uk-CMz6iPag.mjs.map +0 -1
- package/dist/admin/chunks/uk-CO6JHYRC.js.map +0 -1
- package/dist/admin/chunks/zh-C9So4SGq.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-DnU2bhri.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-L3wsRegj.mjs.map +0 -1
- package/dist/admin/chunks/zh-RZyMiPIs.mjs.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schemas.js","sources":["../../../admin/src/utils/schemas.ts"],"sourcesContent":["import omit from 'lodash/omit';\n\nimport { LOCALIZED_FIELDS, doesPluginOptionsHaveI18nLocalized } from './fields';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * mutateCTBContentTypeSchema\n * -----------------------------------------------------------------------------------------------*/\n\n// TODO: refactor for CTB refactors\nconst mutateCTBContentTypeSchema = (\n nextSchema: {\n pluginOptions: Schema.ContentType['pluginOptions'];\n attributes: Schema.Attribute.AnyAttribute[];\n uid?: string;\n },\n prevSchema?: {\n pluginOptions: Schema.ContentType['pluginOptions'];\n attributes: Schema.Attribute.AnyAttribute[];\n uid?: string;\n }\n) => {\n if (!prevSchema) {\n return nextSchema;\n }\n\n // Don't perform mutations components\n if (!doesPluginOptionsHaveI18nLocalized(nextSchema.pluginOptions)) {\n return nextSchema;\n }\n\n const isNextSchemaLocalized = nextSchema.pluginOptions.i18n.localized;\n const isPrevSchemaLocalized = doesPluginOptionsHaveI18nLocalized(prevSchema?.pluginOptions)\n ? prevSchema?.pluginOptions.i18n.localized\n : false;\n\n // No need to perform modification on the schema, if the i18n feature was not changed\n // at the ct level\n if (isNextSchemaLocalized && isPrevSchemaLocalized) {\n return nextSchema;\n }\n\n if (isNextSchemaLocalized) {\n const attributes = addLocalisationToFields(nextSchema.attributes);\n\n return {\n ...nextSchema,\n attributes,\n };\n }\n\n // Remove the i18n object from the pluginOptions\n if (!isNextSchemaLocalized) {\n const pluginOptions = omit(nextSchema.pluginOptions, 'i18n');\n const attributes = disableAttributesLocalisation(nextSchema.attributes);\n\n return {\n ...nextSchema,\n pluginOptions,\n attributes,\n };\n }\n\n return nextSchema;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * addLocalisationToFields\n * -----------------------------------------------------------------------------------------------*/\n\nconst addLocalisationToFields = (attributes: Schema.Attribute.AnyAttribute[]) => {\n return attributes.map((currentAttribute) => {\n if (LOCALIZED_FIELDS.includes(currentAttribute.type)) {\n const i18n = { localized: true };\n\n const pluginOptions = currentAttribute.pluginOptions\n ? { ...currentAttribute.pluginOptions, i18n }\n : { i18n };\n\n return { ...currentAttribute, pluginOptions };\n }\n\n return currentAttribute;\n });\n};\n\n/* -------------------------------------------------------------------------------------------------\n * disableAttributesLocalisation\n * -----------------------------------------------------------------------------------------------*/\n\nconst disableAttributesLocalisation = (attributes: Schema.Attribute.AnyAttribute[]) => {\n return attributes.map((currentAttribute) => {\n return omit(currentAttribute, 'pluginOptions.i18n');\n });\n};\n\nexport { mutateCTBContentTypeSchema };\n"],"names":["mutateCTBContentTypeSchema","nextSchema","prevSchema","doesPluginOptionsHaveI18nLocalized","pluginOptions","isNextSchemaLocalized","i18n","localized","isPrevSchemaLocalized","attributes","addLocalisationToFields","omit","disableAttributesLocalisation","map","currentAttribute","LOCALIZED_FIELDS","includes","type"],"mappings":";;;;;AAMA;;AAEkG;AAG5FA,MAAAA,0BAAAA,GAA6B,CACjCC,UAKAC,EAAAA,UAAAA,GAAAA;AAMA,IAAA,IAAI,CAACA,UAAY,EAAA;QACf,OAAOD,UAAAA;AACT;;AAGA,IAAA,IAAI,CAACE,yCAAAA,CAAmCF,UAAWG,CAAAA,aAAa,CAAG,EAAA;QACjE,OAAOH,UAAAA;AACT;AAEA,IAAA,MAAMI,wBAAwBJ,UAAWG,CAAAA,aAAa,CAACE,IAAI,CAACC,SAAS;AACrE,IAAA,MAAMC,wBAAwBL,yCAAmCD,CAAAA,UAAAA,EAAYE,iBACzEF,UAAYE,EAAAA,aAAAA,CAAcE,KAAKC,SAC/B,GAAA,KAAA;;;AAIJ,IAAA,IAAIF,yBAAyBG,qBAAuB,EAAA;QAClD,OAAOP,UAAAA;AACT;AAEA,IAAA,IAAII,qBAAuB,EAAA;QACzB,MAAMI,UAAAA,GAAaC,uBAAwBT,CAAAA,UAAAA,CAAWQ,UAAU,CAAA;QAEhE,OAAO;AACL,YAAA,GAAGR,UAAU;AACbQ,YAAAA;AACF,SAAA;AACF;;AAGA,IAAA,IAAI,CAACJ,qBAAuB,EAAA;AAC1B,QAAA,MAAMD,aAAgBO,GAAAA,IAAAA,CAAKV,UAAWG,CAAAA,aAAa,EAAE,MAAA,CAAA;QACrD,MAAMK,UAAAA,GAAaG,6BAA8BX,CAAAA,UAAAA,CAAWQ,UAAU,CAAA;QAEtE,OAAO;AACL,YAAA,GAAGR,UAAU;AACbG,YAAAA,aAAAA;AACAK,YAAAA;AACF,SAAA;AACF;IAEA,OAAOR,UAAAA;AACT;AAEA;;qGAIA,MAAMS,0BAA0B,CAACD,UAAAA,GAAAA;IAC/B,OAAOA,UAAAA,CAAWI,GAAG,CAAC,CAACC,gBAAAA,GAAAA;AACrB,QAAA,IAAIC,uBAAiBC,CAAAA,QAAQ,CAACF,gBAAAA,CAAiBG,IAAI,CAAG,EAAA;AACpD,YAAA,MAAMX,IAAO,GAAA;gBAAEC,SAAW,EAAA;AAAK,aAAA;YAE/B,MAAMH,aAAAA,GAAgBU,gBAAiBV,CAAAA,aAAa,GAChD;AAAE,gBAAA,GAAGU,iBAAiBV,aAAa;AAAEE,gBAAAA;aACrC,GAAA;AAAEA,gBAAAA;AAAK,aAAA;YAEX,OAAO;AAAE,gBAAA,GAAGQ,gBAAgB;AAAEV,gBAAAA;AAAc,aAAA;AAC9C;QAEA,OAAOU,gBAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAEA;;qGAIA,MAAMF,gCAAgC,CAACH,UAAAA,GAAAA;IACrC,OAAOA,UAAAA,CAAWI,GAAG,CAAC,CAACC,gBAAAA,GAAAA;AACrB,QAAA,OAAOH,KAAKG,gBAAkB,EAAA,oBAAA,CAAA;AAChC,KAAA,CAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import omit from 'lodash/omit';
|
2
|
+
import { doesPluginOptionsHaveI18nLocalized, LOCALIZED_FIELDS } from './fields.mjs';
|
3
|
+
|
4
|
+
/* -------------------------------------------------------------------------------------------------
|
5
|
+
* mutateCTBContentTypeSchema
|
6
|
+
* -----------------------------------------------------------------------------------------------*/ // TODO: refactor for CTB refactors
|
7
|
+
const mutateCTBContentTypeSchema = (nextSchema, prevSchema)=>{
|
8
|
+
if (!prevSchema) {
|
9
|
+
return nextSchema;
|
10
|
+
}
|
11
|
+
// Don't perform mutations components
|
12
|
+
if (!doesPluginOptionsHaveI18nLocalized(nextSchema.pluginOptions)) {
|
13
|
+
return nextSchema;
|
14
|
+
}
|
15
|
+
const isNextSchemaLocalized = nextSchema.pluginOptions.i18n.localized;
|
16
|
+
const isPrevSchemaLocalized = doesPluginOptionsHaveI18nLocalized(prevSchema?.pluginOptions) ? prevSchema?.pluginOptions.i18n.localized : false;
|
17
|
+
// No need to perform modification on the schema, if the i18n feature was not changed
|
18
|
+
// at the ct level
|
19
|
+
if (isNextSchemaLocalized && isPrevSchemaLocalized) {
|
20
|
+
return nextSchema;
|
21
|
+
}
|
22
|
+
if (isNextSchemaLocalized) {
|
23
|
+
const attributes = addLocalisationToFields(nextSchema.attributes);
|
24
|
+
return {
|
25
|
+
...nextSchema,
|
26
|
+
attributes
|
27
|
+
};
|
28
|
+
}
|
29
|
+
// Remove the i18n object from the pluginOptions
|
30
|
+
if (!isNextSchemaLocalized) {
|
31
|
+
const pluginOptions = omit(nextSchema.pluginOptions, 'i18n');
|
32
|
+
const attributes = disableAttributesLocalisation(nextSchema.attributes);
|
33
|
+
return {
|
34
|
+
...nextSchema,
|
35
|
+
pluginOptions,
|
36
|
+
attributes
|
37
|
+
};
|
38
|
+
}
|
39
|
+
return nextSchema;
|
40
|
+
};
|
41
|
+
/* -------------------------------------------------------------------------------------------------
|
42
|
+
* addLocalisationToFields
|
43
|
+
* -----------------------------------------------------------------------------------------------*/ const addLocalisationToFields = (attributes)=>{
|
44
|
+
return attributes.map((currentAttribute)=>{
|
45
|
+
if (LOCALIZED_FIELDS.includes(currentAttribute.type)) {
|
46
|
+
const i18n = {
|
47
|
+
localized: true
|
48
|
+
};
|
49
|
+
const pluginOptions = currentAttribute.pluginOptions ? {
|
50
|
+
...currentAttribute.pluginOptions,
|
51
|
+
i18n
|
52
|
+
} : {
|
53
|
+
i18n
|
54
|
+
};
|
55
|
+
return {
|
56
|
+
...currentAttribute,
|
57
|
+
pluginOptions
|
58
|
+
};
|
59
|
+
}
|
60
|
+
return currentAttribute;
|
61
|
+
});
|
62
|
+
};
|
63
|
+
/* -------------------------------------------------------------------------------------------------
|
64
|
+
* disableAttributesLocalisation
|
65
|
+
* -----------------------------------------------------------------------------------------------*/ const disableAttributesLocalisation = (attributes)=>{
|
66
|
+
return attributes.map((currentAttribute)=>{
|
67
|
+
return omit(currentAttribute, 'pluginOptions.i18n');
|
68
|
+
});
|
69
|
+
};
|
70
|
+
|
71
|
+
export { mutateCTBContentTypeSchema };
|
72
|
+
//# sourceMappingURL=schemas.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schemas.mjs","sources":["../../../admin/src/utils/schemas.ts"],"sourcesContent":["import omit from 'lodash/omit';\n\nimport { LOCALIZED_FIELDS, doesPluginOptionsHaveI18nLocalized } from './fields';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * mutateCTBContentTypeSchema\n * -----------------------------------------------------------------------------------------------*/\n\n// TODO: refactor for CTB refactors\nconst mutateCTBContentTypeSchema = (\n nextSchema: {\n pluginOptions: Schema.ContentType['pluginOptions'];\n attributes: Schema.Attribute.AnyAttribute[];\n uid?: string;\n },\n prevSchema?: {\n pluginOptions: Schema.ContentType['pluginOptions'];\n attributes: Schema.Attribute.AnyAttribute[];\n uid?: string;\n }\n) => {\n if (!prevSchema) {\n return nextSchema;\n }\n\n // Don't perform mutations components\n if (!doesPluginOptionsHaveI18nLocalized(nextSchema.pluginOptions)) {\n return nextSchema;\n }\n\n const isNextSchemaLocalized = nextSchema.pluginOptions.i18n.localized;\n const isPrevSchemaLocalized = doesPluginOptionsHaveI18nLocalized(prevSchema?.pluginOptions)\n ? prevSchema?.pluginOptions.i18n.localized\n : false;\n\n // No need to perform modification on the schema, if the i18n feature was not changed\n // at the ct level\n if (isNextSchemaLocalized && isPrevSchemaLocalized) {\n return nextSchema;\n }\n\n if (isNextSchemaLocalized) {\n const attributes = addLocalisationToFields(nextSchema.attributes);\n\n return {\n ...nextSchema,\n attributes,\n };\n }\n\n // Remove the i18n object from the pluginOptions\n if (!isNextSchemaLocalized) {\n const pluginOptions = omit(nextSchema.pluginOptions, 'i18n');\n const attributes = disableAttributesLocalisation(nextSchema.attributes);\n\n return {\n ...nextSchema,\n pluginOptions,\n attributes,\n };\n }\n\n return nextSchema;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * addLocalisationToFields\n * -----------------------------------------------------------------------------------------------*/\n\nconst addLocalisationToFields = (attributes: Schema.Attribute.AnyAttribute[]) => {\n return attributes.map((currentAttribute) => {\n if (LOCALIZED_FIELDS.includes(currentAttribute.type)) {\n const i18n = { localized: true };\n\n const pluginOptions = currentAttribute.pluginOptions\n ? { ...currentAttribute.pluginOptions, i18n }\n : { i18n };\n\n return { ...currentAttribute, pluginOptions };\n }\n\n return currentAttribute;\n });\n};\n\n/* -------------------------------------------------------------------------------------------------\n * disableAttributesLocalisation\n * -----------------------------------------------------------------------------------------------*/\n\nconst disableAttributesLocalisation = (attributes: Schema.Attribute.AnyAttribute[]) => {\n return attributes.map((currentAttribute) => {\n return omit(currentAttribute, 'pluginOptions.i18n');\n });\n};\n\nexport { mutateCTBContentTypeSchema };\n"],"names":["mutateCTBContentTypeSchema","nextSchema","prevSchema","doesPluginOptionsHaveI18nLocalized","pluginOptions","isNextSchemaLocalized","i18n","localized","isPrevSchemaLocalized","attributes","addLocalisationToFields","omit","disableAttributesLocalisation","map","currentAttribute","LOCALIZED_FIELDS","includes","type"],"mappings":";;;AAMA;;AAEkG;AAG5FA,MAAAA,0BAAAA,GAA6B,CACjCC,UAKAC,EAAAA,UAAAA,GAAAA;AAMA,IAAA,IAAI,CAACA,UAAY,EAAA;QACf,OAAOD,UAAAA;AACT;;AAGA,IAAA,IAAI,CAACE,kCAAAA,CAAmCF,UAAWG,CAAAA,aAAa,CAAG,EAAA;QACjE,OAAOH,UAAAA;AACT;AAEA,IAAA,MAAMI,wBAAwBJ,UAAWG,CAAAA,aAAa,CAACE,IAAI,CAACC,SAAS;AACrE,IAAA,MAAMC,wBAAwBL,kCAAmCD,CAAAA,UAAAA,EAAYE,iBACzEF,UAAYE,EAAAA,aAAAA,CAAcE,KAAKC,SAC/B,GAAA,KAAA;;;AAIJ,IAAA,IAAIF,yBAAyBG,qBAAuB,EAAA;QAClD,OAAOP,UAAAA;AACT;AAEA,IAAA,IAAII,qBAAuB,EAAA;QACzB,MAAMI,UAAAA,GAAaC,uBAAwBT,CAAAA,UAAAA,CAAWQ,UAAU,CAAA;QAEhE,OAAO;AACL,YAAA,GAAGR,UAAU;AACbQ,YAAAA;AACF,SAAA;AACF;;AAGA,IAAA,IAAI,CAACJ,qBAAuB,EAAA;AAC1B,QAAA,MAAMD,aAAgBO,GAAAA,IAAAA,CAAKV,UAAWG,CAAAA,aAAa,EAAE,MAAA,CAAA;QACrD,MAAMK,UAAAA,GAAaG,6BAA8BX,CAAAA,UAAAA,CAAWQ,UAAU,CAAA;QAEtE,OAAO;AACL,YAAA,GAAGR,UAAU;AACbG,YAAAA,aAAAA;AACAK,YAAAA;AACF,SAAA;AACF;IAEA,OAAOR,UAAAA;AACT;AAEA;;qGAIA,MAAMS,0BAA0B,CAACD,UAAAA,GAAAA;IAC/B,OAAOA,UAAAA,CAAWI,GAAG,CAAC,CAACC,gBAAAA,GAAAA;AACrB,QAAA,IAAIC,gBAAiBC,CAAAA,QAAQ,CAACF,gBAAAA,CAAiBG,IAAI,CAAG,EAAA;AACpD,YAAA,MAAMX,IAAO,GAAA;gBAAEC,SAAW,EAAA;AAAK,aAAA;YAE/B,MAAMH,aAAAA,GAAgBU,gBAAiBV,CAAAA,aAAa,GAChD;AAAE,gBAAA,GAAGU,iBAAiBV,aAAa;AAAEE,gBAAAA;aACrC,GAAA;AAAEA,gBAAAA;AAAK,aAAA;YAEX,OAAO;AAAE,gBAAA,GAAGQ,gBAAgB;AAAEV,gBAAAA;AAAc,aAAA;AAC9C;QAEA,OAAOU,gBAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAEA;;qGAIA,MAAMF,gCAAgC,CAACH,UAAAA,GAAAA;IACrC,OAAOA,UAAAA,CAAWI,GAAG,CAAC,CAACC,gBAAAA,GAAAA;AACrB,QAAA,OAAOH,KAAKG,gBAAkB,EAAA,oBAAA,CAAA;AAChC,KAAA,CAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"strings.js","sources":["../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { capitalize };\n"],"names":["capitalize","str","charAt","toUpperCase","slice"],"mappings":";;AAAMA,MAAAA,UAAAA,GAAa,CAACC,GAAAA,GAAgBA,GAAIC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAIG,CAAAA,KAAK,CAAC,CAAA;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"strings.mjs","sources":["../../../admin/src/utils/strings.ts"],"sourcesContent":["const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { capitalize };\n"],"names":["capitalize","str","charAt","toUpperCase","slice"],"mappings":"AAAMA,MAAAA,UAAAA,GAAa,CAACC,GAAAA,GAAgBA,GAAIC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAIG,CAAAA,KAAK,CAAC,CAAA;;;;"}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var index = require('./utils/index.js');
|
4
|
+
|
5
|
+
const registerModelsHooks = ()=>{
|
6
|
+
strapi.db.lifecycles.subscribe({
|
7
|
+
models: [
|
8
|
+
'plugin::i18n.locale'
|
9
|
+
],
|
10
|
+
async afterCreate () {
|
11
|
+
await index.getService('permissions').actions.syncSuperAdminPermissionsWithLocales();
|
12
|
+
},
|
13
|
+
async afterDelete () {
|
14
|
+
await index.getService('permissions').actions.syncSuperAdminPermissionsWithLocales();
|
15
|
+
}
|
16
|
+
});
|
17
|
+
strapi.documents.use(async (context, next)=>{
|
18
|
+
const schema = context.contentType;
|
19
|
+
if (![
|
20
|
+
'create',
|
21
|
+
'update',
|
22
|
+
'discardDraft',
|
23
|
+
'publish'
|
24
|
+
].includes(context.action)) {
|
25
|
+
return next();
|
26
|
+
}
|
27
|
+
if (!index.getService('content-types').isLocalizedContentType(schema)) {
|
28
|
+
return next();
|
29
|
+
}
|
30
|
+
// Build a populate array for all non localized fields within the schema
|
31
|
+
const { getNestedPopulateOfNonLocalizedAttributes } = index.getService('content-types');
|
32
|
+
const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);
|
33
|
+
// Get the result of the document service action
|
34
|
+
const result = await next();
|
35
|
+
// We may not have received a result with everything populated that we need
|
36
|
+
// Use the id and populate built from non localized fields to get the full
|
37
|
+
// result
|
38
|
+
let resultID;
|
39
|
+
// TODO: fix bug where an empty array can be returned
|
40
|
+
if (Array.isArray(result?.entries) && result.entries[0]?.id) {
|
41
|
+
resultID = result.entries[0].id;
|
42
|
+
} else if (result?.id) {
|
43
|
+
resultID = result.id;
|
44
|
+
} else {
|
45
|
+
return result;
|
46
|
+
}
|
47
|
+
if (attributesToPopulate.length > 0) {
|
48
|
+
const populatedResult = await strapi.db.query(schema.uid).findOne({
|
49
|
+
where: {
|
50
|
+
id: resultID
|
51
|
+
},
|
52
|
+
populate: attributesToPopulate
|
53
|
+
});
|
54
|
+
await index.getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);
|
55
|
+
}
|
56
|
+
return result;
|
57
|
+
});
|
58
|
+
};
|
59
|
+
var bootstrap = (async ()=>{
|
60
|
+
const { sendDidInitializeEvent } = index.getService('metrics');
|
61
|
+
const { initDefaultLocale } = index.getService('locales');
|
62
|
+
const { sectionsBuilder, actions, engine } = index.getService('permissions');
|
63
|
+
// Data
|
64
|
+
await initDefaultLocale();
|
65
|
+
// Sections Builder
|
66
|
+
sectionsBuilder.registerLocalesPropertyHandler();
|
67
|
+
// Actions
|
68
|
+
await actions.registerI18nActions();
|
69
|
+
actions.registerI18nActionsHooks();
|
70
|
+
actions.updateActionsProperties();
|
71
|
+
// Engine/Permissions
|
72
|
+
engine.registerI18nPermissionsHandlers();
|
73
|
+
// Hooks & Models
|
74
|
+
registerModelsHooks();
|
75
|
+
sendDidInitializeEvent();
|
76
|
+
});
|
77
|
+
|
78
|
+
module.exports = bootstrap;
|
79
|
+
//# sourceMappingURL=bootstrap.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes } = getService('content-types');\n\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);\n\n // Get the result of the document service action\n const result = (await next()) as any;\n\n // We may not have received a result with everything populated that we need\n // Use the id and populate built from non localized fields to get the full\n // result\n let resultID;\n // TODO: fix bug where an empty array can be returned\n if (Array.isArray(result?.entries) && result.entries[0]?.id) {\n resultID = result.entries[0].id;\n } else if (result?.id) {\n resultID = result.id;\n } else {\n return result;\n }\n\n if (attributesToPopulate.length > 0) {\n const populatedResult = await strapi.db\n .query(schema.uid)\n .findOne({ where: { id: resultID }, populate: attributesToPopulate });\n\n await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);\n }\n\n return result;\n });\n};\n\nexport default async () => {\n const { sendDidInitializeEvent } = getService('metrics');\n const { initDefaultLocale } = getService('locales');\n const { sectionsBuilder, actions, engine } = getService('permissions');\n\n // Data\n await initDefaultLocale();\n\n // Sections Builder\n sectionsBuilder.registerLocalesPropertyHandler();\n\n // Actions\n await actions.registerI18nActions();\n actions.registerI18nActionsHooks();\n actions.updateActionsProperties();\n\n // Engine/Permissions\n engine.registerI18nPermissionsHandlers();\n\n // Hooks & Models\n registerModelsHooks();\n\n sendDidInitializeEvent();\n};\n"],"names":["registerModelsHooks","strapi","db","lifecycles","subscribe","models","afterCreate","getService","actions","syncSuperAdminPermissionsWithLocales","afterDelete","documents","use","context","next","schema","contentType","includes","action","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","attributesToPopulate","uid","result","resultID","Array","isArray","entries","id","length","populatedResult","query","findOne","where","populate","syncNonLocalizedAttributes","sendDidInitializeEvent","initDefaultLocale","sectionsBuilder","engine","registerLocalesPropertyHandler","registerI18nActions","registerI18nActionsHooks","updateActionsProperties","registerI18nPermissionsHandlers"],"mappings":"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"}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { getService } from './utils/index.mjs';
|
2
|
+
|
3
|
+
const registerModelsHooks = ()=>{
|
4
|
+
strapi.db.lifecycles.subscribe({
|
5
|
+
models: [
|
6
|
+
'plugin::i18n.locale'
|
7
|
+
],
|
8
|
+
async afterCreate () {
|
9
|
+
await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();
|
10
|
+
},
|
11
|
+
async afterDelete () {
|
12
|
+
await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();
|
13
|
+
}
|
14
|
+
});
|
15
|
+
strapi.documents.use(async (context, next)=>{
|
16
|
+
const schema = context.contentType;
|
17
|
+
if (![
|
18
|
+
'create',
|
19
|
+
'update',
|
20
|
+
'discardDraft',
|
21
|
+
'publish'
|
22
|
+
].includes(context.action)) {
|
23
|
+
return next();
|
24
|
+
}
|
25
|
+
if (!getService('content-types').isLocalizedContentType(schema)) {
|
26
|
+
return next();
|
27
|
+
}
|
28
|
+
// Build a populate array for all non localized fields within the schema
|
29
|
+
const { getNestedPopulateOfNonLocalizedAttributes } = getService('content-types');
|
30
|
+
const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);
|
31
|
+
// Get the result of the document service action
|
32
|
+
const result = await next();
|
33
|
+
// We may not have received a result with everything populated that we need
|
34
|
+
// Use the id and populate built from non localized fields to get the full
|
35
|
+
// result
|
36
|
+
let resultID;
|
37
|
+
// TODO: fix bug where an empty array can be returned
|
38
|
+
if (Array.isArray(result?.entries) && result.entries[0]?.id) {
|
39
|
+
resultID = result.entries[0].id;
|
40
|
+
} else if (result?.id) {
|
41
|
+
resultID = result.id;
|
42
|
+
} else {
|
43
|
+
return result;
|
44
|
+
}
|
45
|
+
if (attributesToPopulate.length > 0) {
|
46
|
+
const populatedResult = await strapi.db.query(schema.uid).findOne({
|
47
|
+
where: {
|
48
|
+
id: resultID
|
49
|
+
},
|
50
|
+
populate: attributesToPopulate
|
51
|
+
});
|
52
|
+
await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);
|
53
|
+
}
|
54
|
+
return result;
|
55
|
+
});
|
56
|
+
};
|
57
|
+
var bootstrap = (async ()=>{
|
58
|
+
const { sendDidInitializeEvent } = getService('metrics');
|
59
|
+
const { initDefaultLocale } = getService('locales');
|
60
|
+
const { sectionsBuilder, actions, engine } = getService('permissions');
|
61
|
+
// Data
|
62
|
+
await initDefaultLocale();
|
63
|
+
// Sections Builder
|
64
|
+
sectionsBuilder.registerLocalesPropertyHandler();
|
65
|
+
// Actions
|
66
|
+
await actions.registerI18nActions();
|
67
|
+
actions.registerI18nActionsHooks();
|
68
|
+
actions.updateActionsProperties();
|
69
|
+
// Engine/Permissions
|
70
|
+
engine.registerI18nPermissionsHandlers();
|
71
|
+
// Hooks & Models
|
72
|
+
registerModelsHooks();
|
73
|
+
sendDidInitializeEvent();
|
74
|
+
});
|
75
|
+
|
76
|
+
export { bootstrap as default };
|
77
|
+
//# sourceMappingURL=bootstrap.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes } = getService('content-types');\n\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);\n\n // Get the result of the document service action\n const result = (await next()) as any;\n\n // We may not have received a result with everything populated that we need\n // Use the id and populate built from non localized fields to get the full\n // result\n let resultID;\n // TODO: fix bug where an empty array can be returned\n if (Array.isArray(result?.entries) && result.entries[0]?.id) {\n resultID = result.entries[0].id;\n } else if (result?.id) {\n resultID = result.id;\n } else {\n return result;\n }\n\n if (attributesToPopulate.length > 0) {\n const populatedResult = await strapi.db\n .query(schema.uid)\n .findOne({ where: { id: resultID }, populate: attributesToPopulate });\n\n await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);\n }\n\n return result;\n });\n};\n\nexport default async () => {\n const { sendDidInitializeEvent } = getService('metrics');\n const { initDefaultLocale } = getService('locales');\n const { sectionsBuilder, actions, engine } = getService('permissions');\n\n // Data\n await initDefaultLocale();\n\n // Sections Builder\n sectionsBuilder.registerLocalesPropertyHandler();\n\n // Actions\n await actions.registerI18nActions();\n actions.registerI18nActionsHooks();\n actions.updateActionsProperties();\n\n // Engine/Permissions\n engine.registerI18nPermissionsHandlers();\n\n // Hooks & Models\n registerModelsHooks();\n\n sendDidInitializeEvent();\n};\n"],"names":["registerModelsHooks","strapi","db","lifecycles","subscribe","models","afterCreate","getService","actions","syncSuperAdminPermissionsWithLocales","afterDelete","documents","use","context","next","schema","contentType","includes","action","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","attributesToPopulate","uid","result","resultID","Array","isArray","entries","id","length","populatedResult","query","findOne","where","populate","syncNonLocalizedAttributes","sendDidInitializeEvent","initDefaultLocale","sectionsBuilder","engine","registerLocalesPropertyHandler","registerI18nActions","registerI18nActionsHooks","updateActionsProperties","registerI18nPermissionsHandlers"],"mappings":"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"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var isoLocales = require('./iso-locales.json.js');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Returns the default locale based either on env var or english
|
7
|
+
* @returns {string}
|
8
|
+
*/ const getInitLocale = ()=>{
|
9
|
+
const envLocaleCode = process.env.STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE;
|
10
|
+
if (envLocaleCode) {
|
11
|
+
const matchingLocale = isoLocales.find(({ code })=>code === envLocaleCode);
|
12
|
+
if (!matchingLocale) {
|
13
|
+
throw new Error('Unknown locale code provided in the environment variable STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE');
|
14
|
+
}
|
15
|
+
return {
|
16
|
+
...matchingLocale
|
17
|
+
};
|
18
|
+
}
|
19
|
+
return {
|
20
|
+
code: 'en',
|
21
|
+
name: 'English (en)'
|
22
|
+
};
|
23
|
+
};
|
24
|
+
const DEFAULT_LOCALE = getInitLocale();
|
25
|
+
|
26
|
+
exports.isoLocales = isoLocales;
|
27
|
+
exports.DEFAULT_LOCALE = DEFAULT_LOCALE;
|
28
|
+
exports.getInitLocale = getInitLocale;
|
29
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/constants/index.ts"],"sourcesContent":["import isoLocales from './iso-locales.json';\n\n/**\n * Returns the default locale based either on env var or english\n * @returns {string}\n */\nconst getInitLocale = () => {\n const envLocaleCode = process.env.STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE;\n\n if (envLocaleCode) {\n const matchingLocale = isoLocales.find(({ code }) => code === envLocaleCode);\n\n if (!matchingLocale) {\n throw new Error(\n 'Unknown locale code provided in the environment variable STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE'\n );\n }\n\n return { ...matchingLocale };\n }\n\n return {\n code: 'en',\n name: 'English (en)',\n };\n};\n\nconst DEFAULT_LOCALE = getInitLocale();\n\nexport { isoLocales, DEFAULT_LOCALE, getInitLocale };\n"],"names":["getInitLocale","envLocaleCode","process","env","STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE","matchingLocale","isoLocales","find","code","Error","name","DEFAULT_LOCALE"],"mappings":";;;;AAEA;;;AAGC,UACKA,aAAgB,GAAA,IAAA;AACpB,IAAA,MAAMC,aAAgBC,GAAAA,OAAAA,CAAQC,GAAG,CAACC,mCAAmC;AAErE,IAAA,IAAIH,aAAe,EAAA;QACjB,MAAMI,cAAAA,GAAiBC,WAAWC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,IAASP,KAAAA,aAAAA,CAAAA;AAE9D,QAAA,IAAI,CAACI,cAAgB,EAAA;AACnB,YAAA,MAAM,IAAII,KACR,CAAA,8FAAA,CAAA;AAEJ;QAEA,OAAO;AAAE,YAAA,GAAGJ;AAAe,SAAA;AAC7B;IAEA,OAAO;QACLG,IAAM,EAAA,IAAA;QACNE,IAAM,EAAA;AACR,KAAA;AACF;AAEA,MAAMC,cAAiBX,GAAAA,aAAAA;;;;;;"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import isoLocales from './iso-locales.json.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Returns the default locale based either on env var or english
|
5
|
+
* @returns {string}
|
6
|
+
*/ const getInitLocale = ()=>{
|
7
|
+
const envLocaleCode = process.env.STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE;
|
8
|
+
if (envLocaleCode) {
|
9
|
+
const matchingLocale = isoLocales.find(({ code })=>code === envLocaleCode);
|
10
|
+
if (!matchingLocale) {
|
11
|
+
throw new Error('Unknown locale code provided in the environment variable STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE');
|
12
|
+
}
|
13
|
+
return {
|
14
|
+
...matchingLocale
|
15
|
+
};
|
16
|
+
}
|
17
|
+
return {
|
18
|
+
code: 'en',
|
19
|
+
name: 'English (en)'
|
20
|
+
};
|
21
|
+
};
|
22
|
+
const DEFAULT_LOCALE = getInitLocale();
|
23
|
+
|
24
|
+
export { DEFAULT_LOCALE, getInitLocale, isoLocales };
|
25
|
+
//# sourceMappingURL=index.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/constants/index.ts"],"sourcesContent":["import isoLocales from './iso-locales.json';\n\n/**\n * Returns the default locale based either on env var or english\n * @returns {string}\n */\nconst getInitLocale = () => {\n const envLocaleCode = process.env.STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE;\n\n if (envLocaleCode) {\n const matchingLocale = isoLocales.find(({ code }) => code === envLocaleCode);\n\n if (!matchingLocale) {\n throw new Error(\n 'Unknown locale code provided in the environment variable STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE'\n );\n }\n\n return { ...matchingLocale };\n }\n\n return {\n code: 'en',\n name: 'English (en)',\n };\n};\n\nconst DEFAULT_LOCALE = getInitLocale();\n\nexport { isoLocales, DEFAULT_LOCALE, getInitLocale };\n"],"names":["getInitLocale","envLocaleCode","process","env","STRAPI_PLUGIN_I18N_INIT_LOCALE_CODE","matchingLocale","isoLocales","find","code","Error","name","DEFAULT_LOCALE"],"mappings":";;AAEA;;;AAGC,UACKA,aAAgB,GAAA,IAAA;AACpB,IAAA,MAAMC,aAAgBC,GAAAA,OAAAA,CAAQC,GAAG,CAACC,mCAAmC;AAErE,IAAA,IAAIH,aAAe,EAAA;QACjB,MAAMI,cAAAA,GAAiBC,WAAWC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,IAASP,KAAAA,aAAAA,CAAAA;AAE9D,QAAA,IAAI,CAACI,cAAgB,EAAA;AACnB,YAAA,MAAM,IAAII,KACR,CAAA,8FAAA,CAAA;AAEJ;QAEA,OAAO;AAAE,YAAA,GAAGJ;AAAe,SAAA;AAC7B;IAEA,OAAO;QACLG,IAAM,EAAA,IAAA;QACNE,IAAM,EAAA;AACR,KAAA;AACF;AAEA,MAAMC,cAAiBX,GAAAA,aAAAA;;;;"}
|