@strapi/i18n 0.0.0-experimental.008123965da692a55d02a1df63facc54077c6bde
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/LICENSE +37 -0
- package/README.md +17 -0
- 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 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +203 -0
- package/dist/admin/index.mjs.map +1 -0
- 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/components/BulkLocaleActionModal.d.ts +16 -0
- package/dist/admin/src/components/CMHeaderActions.d.ts +36 -0
- package/dist/admin/src/components/CMListViewModalsAdditionalInformation.d.ts +4 -0
- package/dist/admin/src/components/CheckboxConfirmation.d.ts +20 -0
- package/dist/admin/src/components/CreateLocale.d.ts +29 -0
- package/dist/admin/src/components/DeleteLocale.d.ts +5 -0
- package/dist/admin/src/components/EditLocale.d.ts +14 -0
- package/dist/admin/src/components/LocaleListCell.d.ts +9 -0
- package/dist/admin/src/components/LocalePicker.d.ts +2 -0
- package/dist/admin/src/components/LocaleTable.d.ts +11 -0
- 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/constants.d.ts +22 -0
- package/dist/admin/src/contentManagerHooks/editView.d.ts +6 -0
- package/dist/admin/src/contentManagerHooks/listView.d.ts +22 -0
- package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +40 -0
- package/dist/admin/src/hooks/useI18n.d.ts +16 -0
- package/dist/admin/src/index.d.ts +16 -0
- package/dist/admin/src/middlewares/extendCTBAttributeInitialData.d.ts +4 -0
- package/dist/admin/src/middlewares/extendCTBInitialData.d.ts +4 -0
- package/dist/admin/src/middlewares/rbac-middleware.d.ts +3 -0
- package/dist/admin/src/pages/SettingsPage.d.ts +3 -0
- package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +2 -0
- package/dist/admin/src/services/locales.d.ts +4 -0
- package/dist/admin/src/services/relations.d.ts +7 -0
- package/dist/admin/src/types.d.ts +9 -0
- package/dist/admin/src/utils/baseQuery.d.ts +5 -0
- package/dist/admin/src/utils/clean.d.ts +4 -0
- package/dist/admin/src/utils/fields.d.ts +7 -0
- package/dist/admin/src/utils/getTranslation.d.ts +2 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/admin/src/utils/schemas.d.ts +434 -0
- package/dist/admin/src/utils/strings.d.ts +2 -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 +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 +20 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +18 -0
- package/dist/server/index.mjs.map +1 -0
- 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/bootstrap.d.ts +3 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/constants/index.d.ts +15 -0
- package/dist/server/src/constants/index.d.ts.map +1 -0
- package/dist/server/src/content-types/index.d.ts +37 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -0
- package/dist/server/src/content-types/locale/index.d.ts +35 -0
- package/dist/server/src/content-types/locale/index.d.ts.map +1 -0
- package/dist/server/src/controllers/content-types.d.ts +6 -0
- package/dist/server/src/controllers/content-types.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +10 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/iso-locales.d.ts +4 -0
- package/dist/server/src/controllers/iso-locales.d.ts.map +1 -0
- package/dist/server/src/controllers/locales.d.ts +4 -0
- package/dist/server/src/controllers/locales.d.ts.map +1 -0
- package/dist/server/src/controllers/validate-locale-creation.d.ts +4 -0
- package/dist/server/src/controllers/validate-locale-creation.d.ts.map +1 -0
- package/dist/server/src/domain/locale.d.ts +11 -0
- package/dist/server/src/domain/locale.d.ts.map +1 -0
- package/dist/server/src/graphql.d.ts +8 -0
- package/dist/server/src/graphql.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +156 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +6 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/admin.d.ts +18 -0
- package/dist/server/src/routes/admin.d.ts.map +1 -0
- package/dist/server/src/routes/content-api.d.ts +10 -0
- package/dist/server/src/routes/content-api.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +28 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/content-types.d.ts +13 -0
- package/dist/server/src/services/content-types.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +81 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/iso-locales.d.ts +10 -0
- package/dist/server/src/services/iso-locales.d.ts.map +1 -0
- package/dist/server/src/services/locales.d.ts +17 -0
- package/dist/server/src/services/locales.d.ts.map +1 -0
- package/dist/server/src/services/localizations.d.ts +8 -0
- package/dist/server/src/services/localizations.d.ts.map +1 -0
- package/dist/server/src/services/metrics.d.ts +8 -0
- package/dist/server/src/services/metrics.d.ts.map +1 -0
- package/dist/server/src/services/permissions/actions.d.ts +28 -0
- package/dist/server/src/services/permissions/actions.d.ts.map +1 -0
- package/dist/server/src/services/permissions/conditions.d.ts +15 -0
- package/dist/server/src/services/permissions/conditions.d.ts.map +1 -0
- package/dist/server/src/services/permissions/engine.d.ts +6 -0
- package/dist/server/src/services/permissions/engine.d.ts.map +1 -0
- package/dist/server/src/services/permissions/sections-builder.d.ts +6 -0
- package/dist/server/src/services/permissions/sections-builder.d.ts.map +1 -0
- package/dist/server/src/services/permissions.d.ts +40 -0
- package/dist/server/src/services/permissions.d.ts.map +1 -0
- package/dist/server/src/services/sanitize/index.d.ts +11 -0
- package/dist/server/src/services/sanitize/index.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +43 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/src/validation/content-types.d.ts +3 -0
- package/dist/server/src/validation/content-types.d.ts.map +1 -0
- package/dist/server/src/validation/locales.d.ts +12 -0
- package/dist/server/src/validation/locales.d.ts.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/dist/shared/contracts/content-manager.d.ts +46 -0
- package/dist/shared/contracts/iso-locales.d.ts +21 -0
- package/dist/shared/contracts/locales.d.ts +77 -0
- package/dist/shared/contracts/shared.d.ts +6 -0
- package/package.json +102 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
import _ from 'lodash';
|
2
|
+
import validateLocaleCreation from './controllers/validate-locale-creation.mjs';
|
3
|
+
import graphqlProvider from './graphql.mjs';
|
4
|
+
import { getService } from './utils/index.mjs';
|
5
|
+
|
6
|
+
var register = (({ strapi })=>{
|
7
|
+
extendContentTypes(strapi);
|
8
|
+
addContentManagerLocaleMiddleware(strapi);
|
9
|
+
});
|
10
|
+
// TODO: v5 if implemented in the CM => delete this middleware
|
11
|
+
/**
|
12
|
+
* Adds middleware on CM creation routes to use i18n locale passed in a specific param
|
13
|
+
* @param {Strapi} strapi
|
14
|
+
*/ const addContentManagerLocaleMiddleware = (strapi)=>{
|
15
|
+
strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next)=>{
|
16
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
17
|
+
return validateLocaleCreation(ctx, next);
|
18
|
+
}
|
19
|
+
return next();
|
20
|
+
});
|
21
|
+
strapi.server.router.use('/content-manager/single-types/:model', (ctx, next)=>{
|
22
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
23
|
+
return validateLocaleCreation(ctx, next);
|
24
|
+
}
|
25
|
+
return next();
|
26
|
+
});
|
27
|
+
};
|
28
|
+
/**
|
29
|
+
* Adds locale and localization fields to all content types
|
30
|
+
* Even if content type is not localized, it will have these fields
|
31
|
+
* @param {Strapi} strapi
|
32
|
+
*/ const extendContentTypes = (strapi)=>{
|
33
|
+
const { isLocalizedContentType } = getService('content-types');
|
34
|
+
Object.values(strapi.contentTypes).forEach((contentType)=>{
|
35
|
+
const { attributes } = contentType;
|
36
|
+
const isLocalized = isLocalizedContentType(contentType);
|
37
|
+
_.set(attributes, 'locale', {
|
38
|
+
writable: true,
|
39
|
+
private: !isLocalized,
|
40
|
+
configurable: false,
|
41
|
+
visible: false,
|
42
|
+
type: 'string'
|
43
|
+
});
|
44
|
+
_.set(attributes, 'localizations', {
|
45
|
+
type: 'relation',
|
46
|
+
relation: 'oneToMany',
|
47
|
+
target: contentType.uid,
|
48
|
+
writable: false,
|
49
|
+
private: !isLocalized,
|
50
|
+
configurable: false,
|
51
|
+
visible: false,
|
52
|
+
unstable_virtual: true,
|
53
|
+
joinColumn: {
|
54
|
+
name: 'document_id',
|
55
|
+
referencedColumn: 'document_id',
|
56
|
+
referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName),
|
57
|
+
// ensure the population will not include the results we already loaded
|
58
|
+
on ({ results }) {
|
59
|
+
return {
|
60
|
+
id: {
|
61
|
+
$notIn: results.map((r)=>r.id)
|
62
|
+
}
|
63
|
+
};
|
64
|
+
}
|
65
|
+
}
|
66
|
+
});
|
67
|
+
});
|
68
|
+
if (strapi.plugin('graphql')) {
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
70
|
+
graphqlProvider({
|
71
|
+
strapi
|
72
|
+
}).register();
|
73
|
+
}
|
74
|
+
};
|
75
|
+
|
76
|
+
export { register as default };
|
77
|
+
//# sourceMappingURL=register.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nimport validateLocaleCreation from './controllers/validate-locale-creation';\nimport graphqlProvider from './graphql';\nimport { getService } from './utils';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n extendContentTypes(strapi);\n addContentManagerLocaleMiddleware(strapi);\n};\n\n// TODO: v5 if implemented in the CM => delete this middleware\n/**\n * Adds middleware on CM creation routes to use i18n locale passed in a specific param\n * @param {Strapi} strapi\n */\nconst addContentManagerLocaleMiddleware = (strapi: Core.Strapi) => {\n strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n\n strapi.server.router.use('/content-manager/single-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n};\n\n/**\n * Adds locale and localization fields to all content types\n * Even if content type is not localized, it will have these fields\n * @param {Strapi} strapi\n */\nconst extendContentTypes = (strapi: Core.Strapi) => {\n const { isLocalizedContentType } = getService('content-types');\n\n Object.values(strapi.contentTypes).forEach((contentType) => {\n const { attributes } = contentType;\n\n const isLocalized = isLocalizedContentType(contentType);\n\n _.set(attributes, 'locale', {\n writable: true,\n private: !isLocalized,\n configurable: false,\n visible: false,\n type: 'string',\n });\n\n _.set(attributes, 'localizations', {\n type: 'relation',\n relation: 'oneToMany',\n target: contentType.uid,\n writable: false,\n private: !isLocalized,\n configurable: false,\n visible: false,\n unstable_virtual: true,\n joinColumn: {\n name: 'document_id',\n referencedColumn: 'document_id',\n referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName!),\n // ensure the population will not include the results we already loaded\n on({ results }: { results: any[] }) {\n return {\n id: {\n $notIn: results.map((r) => r.id),\n },\n };\n },\n },\n });\n });\n\n if (strapi.plugin('graphql')) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n graphqlProvider({ strapi }).register();\n }\n};\n"],"names":["strapi","extendContentTypes","addContentManagerLocaleMiddleware","server","router","use","ctx","next","method","validateLocaleCreation","isLocalizedContentType","getService","Object","values","contentTypes","forEach","contentType","attributes","isLocalized","_","set","writable","private","configurable","visible","type","relation","target","uid","unstable_virtual","joinColumn","name","referencedColumn","referencedTable","db","metadata","identifiers","getTableName","collectionName","on","results","id","$notIn","map","r","plugin","graphqlProvider","register"],"mappings":";;;;;AAOA,eAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;IACjDC,kBAAmBD,CAAAA,MAAAA,CAAAA;IACnBE,iCAAkCF,CAAAA,MAAAA,CAAAA;AACpC,CAAA;AAEA;AACA;;;IAIA,MAAME,oCAAoC,CAACF,MAAAA,GAAAA;IACzCA,MAAOG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAC,0CAAA,EAA4C,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;AACzE,QAAA,IAAID,IAAIE,MAAM,KAAK,UAAUF,GAAIE,CAAAA,MAAM,KAAK,KAAO,EAAA;AACjD,YAAA,OAAOC,uBAAuBH,GAAKC,EAAAA,IAAAA,CAAAA;AACrC;QAEA,OAAOA,IAAAA,EAAAA;AACT,KAAA,CAAA;IAEAP,MAAOG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAC,sCAAA,EAAwC,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;AACrE,QAAA,IAAID,IAAIE,MAAM,KAAK,UAAUF,GAAIE,CAAAA,MAAM,KAAK,KAAO,EAAA;AACjD,YAAA,OAAOC,uBAAuBH,GAAKC,EAAAA,IAAAA,CAAAA;AACrC;QAEA,OAAOA,IAAAA,EAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAEA;;;;IAKA,MAAMN,qBAAqB,CAACD,MAAAA,GAAAA;AAC1B,IAAA,MAAM,EAAEU,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;AAE9CC,IAAAA,MAAAA,CAAOC,MAAM,CAACb,MAAAA,CAAOc,YAAY,CAAEC,CAAAA,OAAO,CAAC,CAACC,WAAAA,GAAAA;QAC1C,MAAM,EAAEC,UAAU,EAAE,GAAGD,WAAAA;AAEvB,QAAA,MAAME,cAAcR,sBAAuBM,CAAAA,WAAAA,CAAAA;QAE3CG,CAAEC,CAAAA,GAAG,CAACH,UAAAA,EAAY,QAAU,EAAA;YAC1BI,QAAU,EAAA,IAAA;AACVC,YAAAA,OAAAA,EAAS,CAACJ,WAAAA;YACVK,YAAc,EAAA,KAAA;YACdC,OAAS,EAAA,KAAA;YACTC,IAAM,EAAA;AACR,SAAA,CAAA;QAEAN,CAAEC,CAAAA,GAAG,CAACH,UAAAA,EAAY,eAAiB,EAAA;YACjCQ,IAAM,EAAA,UAAA;YACNC,QAAU,EAAA,WAAA;AACVC,YAAAA,MAAAA,EAAQX,YAAYY,GAAG;YACvBP,QAAU,EAAA,KAAA;AACVC,YAAAA,OAAAA,EAAS,CAACJ,WAAAA;YACVK,YAAc,EAAA,KAAA;YACdC,OAAS,EAAA,KAAA;YACTK,gBAAkB,EAAA,IAAA;YAClBC,UAAY,EAAA;gBACVC,IAAM,EAAA,aAAA;gBACNC,gBAAkB,EAAA,aAAA;gBAClBC,eAAiBjC,EAAAA,MAAAA,CAAOkC,EAAE,CAACC,QAAQ,CAACC,WAAW,CAACC,YAAY,CAACrB,WAAAA,CAAYsB,cAAc,CAAA;;gBAEvFC,EAAG,CAAA,CAAA,EAAEC,OAAO,EAAsB,EAAA;oBAChC,OAAO;wBACLC,EAAI,EAAA;AACFC,4BAAAA,MAAAA,EAAQF,QAAQG,GAAG,CAAC,CAACC,CAAAA,GAAMA,EAAEH,EAAE;AACjC;AACF,qBAAA;AACF;AACF;AACF,SAAA,CAAA;AACF,KAAA,CAAA;IAEA,IAAIzC,MAAAA,CAAO6C,MAAM,CAAC,SAAY,CAAA,EAAA;;QAE5BC,eAAgB,CAAA;AAAE9C,YAAAA;AAAO,SAAA,CAAA,CAAG+C,QAAQ,EAAA;AACtC;AACF,CAAA;;;;"}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var admin = {
|
4
|
+
type: 'admin',
|
5
|
+
routes: [
|
6
|
+
{
|
7
|
+
method: 'GET',
|
8
|
+
path: '/iso-locales',
|
9
|
+
handler: 'iso-locales.listIsoLocales',
|
10
|
+
config: {
|
11
|
+
policies: [
|
12
|
+
'admin::isAuthenticatedAdmin',
|
13
|
+
{
|
14
|
+
name: 'plugin::content-manager.hasPermissions',
|
15
|
+
config: {
|
16
|
+
actions: [
|
17
|
+
'plugin::i18n.locale.read'
|
18
|
+
]
|
19
|
+
}
|
20
|
+
}
|
21
|
+
]
|
22
|
+
}
|
23
|
+
},
|
24
|
+
{
|
25
|
+
method: 'GET',
|
26
|
+
path: '/locales',
|
27
|
+
handler: 'locales.listLocales',
|
28
|
+
config: {
|
29
|
+
policies: [
|
30
|
+
'admin::isAuthenticatedAdmin'
|
31
|
+
]
|
32
|
+
}
|
33
|
+
},
|
34
|
+
{
|
35
|
+
method: 'POST',
|
36
|
+
path: '/locales',
|
37
|
+
handler: 'locales.createLocale',
|
38
|
+
config: {
|
39
|
+
policies: [
|
40
|
+
'admin::isAuthenticatedAdmin',
|
41
|
+
{
|
42
|
+
name: 'plugin::content-manager.hasPermissions',
|
43
|
+
config: {
|
44
|
+
actions: [
|
45
|
+
'plugin::i18n.locale.create'
|
46
|
+
]
|
47
|
+
}
|
48
|
+
}
|
49
|
+
]
|
50
|
+
}
|
51
|
+
},
|
52
|
+
{
|
53
|
+
method: 'PUT',
|
54
|
+
path: '/locales/:id',
|
55
|
+
handler: 'locales.updateLocale',
|
56
|
+
config: {
|
57
|
+
policies: [
|
58
|
+
'admin::isAuthenticatedAdmin',
|
59
|
+
{
|
60
|
+
name: 'plugin::content-manager.hasPermissions',
|
61
|
+
config: {
|
62
|
+
actions: [
|
63
|
+
'plugin::i18n.locale.update'
|
64
|
+
]
|
65
|
+
}
|
66
|
+
}
|
67
|
+
]
|
68
|
+
}
|
69
|
+
},
|
70
|
+
{
|
71
|
+
method: 'DELETE',
|
72
|
+
path: '/locales/:id',
|
73
|
+
handler: 'locales.deleteLocale',
|
74
|
+
config: {
|
75
|
+
policies: [
|
76
|
+
'admin::isAuthenticatedAdmin',
|
77
|
+
{
|
78
|
+
name: 'plugin::content-manager.hasPermissions',
|
79
|
+
config: {
|
80
|
+
actions: [
|
81
|
+
'plugin::i18n.locale.delete'
|
82
|
+
]
|
83
|
+
}
|
84
|
+
}
|
85
|
+
]
|
86
|
+
}
|
87
|
+
},
|
88
|
+
{
|
89
|
+
method: 'POST',
|
90
|
+
path: '/content-manager/actions/get-non-localized-fields',
|
91
|
+
handler: 'content-types.getNonLocalizedAttributes',
|
92
|
+
config: {
|
93
|
+
policies: [
|
94
|
+
'admin::isAuthenticatedAdmin'
|
95
|
+
]
|
96
|
+
}
|
97
|
+
}
|
98
|
+
]
|
99
|
+
};
|
100
|
+
|
101
|
+
module.exports = admin;
|
102
|
+
//# sourceMappingURL=admin.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/iso-locales',\n handler: 'iso-locales.listIsoLocales',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/locales',\n handler: 'locales.listLocales',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/locales',\n handler: 'locales.createLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.create'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/locales/:id',\n handler: 'locales.updateLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/locales/:id',\n handler: 'locales.deleteLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-manager/actions/get-non-localized-fields',\n handler: 'content-types.getNonLocalizedAttributes',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":";;AAAA,YAAe;IACbA,IAAM,EAAA,OAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA2B;AAAC;AAClD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA,qBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,mDAAA;YACNC,OAAS,EAAA,yCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF;AACD;AACH,CAAE;;;;"}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
var admin = {
|
2
|
+
type: 'admin',
|
3
|
+
routes: [
|
4
|
+
{
|
5
|
+
method: 'GET',
|
6
|
+
path: '/iso-locales',
|
7
|
+
handler: 'iso-locales.listIsoLocales',
|
8
|
+
config: {
|
9
|
+
policies: [
|
10
|
+
'admin::isAuthenticatedAdmin',
|
11
|
+
{
|
12
|
+
name: 'plugin::content-manager.hasPermissions',
|
13
|
+
config: {
|
14
|
+
actions: [
|
15
|
+
'plugin::i18n.locale.read'
|
16
|
+
]
|
17
|
+
}
|
18
|
+
}
|
19
|
+
]
|
20
|
+
}
|
21
|
+
},
|
22
|
+
{
|
23
|
+
method: 'GET',
|
24
|
+
path: '/locales',
|
25
|
+
handler: 'locales.listLocales',
|
26
|
+
config: {
|
27
|
+
policies: [
|
28
|
+
'admin::isAuthenticatedAdmin'
|
29
|
+
]
|
30
|
+
}
|
31
|
+
},
|
32
|
+
{
|
33
|
+
method: 'POST',
|
34
|
+
path: '/locales',
|
35
|
+
handler: 'locales.createLocale',
|
36
|
+
config: {
|
37
|
+
policies: [
|
38
|
+
'admin::isAuthenticatedAdmin',
|
39
|
+
{
|
40
|
+
name: 'plugin::content-manager.hasPermissions',
|
41
|
+
config: {
|
42
|
+
actions: [
|
43
|
+
'plugin::i18n.locale.create'
|
44
|
+
]
|
45
|
+
}
|
46
|
+
}
|
47
|
+
]
|
48
|
+
}
|
49
|
+
},
|
50
|
+
{
|
51
|
+
method: 'PUT',
|
52
|
+
path: '/locales/:id',
|
53
|
+
handler: 'locales.updateLocale',
|
54
|
+
config: {
|
55
|
+
policies: [
|
56
|
+
'admin::isAuthenticatedAdmin',
|
57
|
+
{
|
58
|
+
name: 'plugin::content-manager.hasPermissions',
|
59
|
+
config: {
|
60
|
+
actions: [
|
61
|
+
'plugin::i18n.locale.update'
|
62
|
+
]
|
63
|
+
}
|
64
|
+
}
|
65
|
+
]
|
66
|
+
}
|
67
|
+
},
|
68
|
+
{
|
69
|
+
method: 'DELETE',
|
70
|
+
path: '/locales/:id',
|
71
|
+
handler: 'locales.deleteLocale',
|
72
|
+
config: {
|
73
|
+
policies: [
|
74
|
+
'admin::isAuthenticatedAdmin',
|
75
|
+
{
|
76
|
+
name: 'plugin::content-manager.hasPermissions',
|
77
|
+
config: {
|
78
|
+
actions: [
|
79
|
+
'plugin::i18n.locale.delete'
|
80
|
+
]
|
81
|
+
}
|
82
|
+
}
|
83
|
+
]
|
84
|
+
}
|
85
|
+
},
|
86
|
+
{
|
87
|
+
method: 'POST',
|
88
|
+
path: '/content-manager/actions/get-non-localized-fields',
|
89
|
+
handler: 'content-types.getNonLocalizedAttributes',
|
90
|
+
config: {
|
91
|
+
policies: [
|
92
|
+
'admin::isAuthenticatedAdmin'
|
93
|
+
]
|
94
|
+
}
|
95
|
+
}
|
96
|
+
]
|
97
|
+
};
|
98
|
+
|
99
|
+
export { admin as default };
|
100
|
+
//# sourceMappingURL=admin.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/iso-locales',\n handler: 'iso-locales.listIsoLocales',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.read'] },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/locales',\n handler: 'locales.listLocales',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/locales',\n handler: 'locales.createLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.create'] },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/locales/:id',\n handler: 'locales.updateLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.update'] },\n },\n ],\n },\n },\n {\n method: 'DELETE',\n path: '/locales/:id',\n handler: 'locales.deleteLocale',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'plugin::content-manager.hasPermissions',\n config: { actions: ['plugin::i18n.locale.delete'] },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/content-manager/actions/get-non-localized-fields',\n handler: 'content-types.getNonLocalizedAttributes',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":"AAAA,YAAe;IACbA,IAAM,EAAA,OAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA2B;AAAC;AAClD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA,qBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,sBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBACEC,IAAM,EAAA,wCAAA;wBACNF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA6B;AAAC;AACpD;AACD;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,mDAAA;YACNC,OAAS,EAAA,yCAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF;AACD;AACH,CAAE;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["export default {\n type: 'content-api',\n routes: [\n {\n method: 'GET',\n path: '/locales',\n handler: 'locales.listLocales',\n },\n ],\n};\n"],"names":["type","routes","method","path","handler"],"mappings":";;AAAA,iBAAe;IACbA,IAAM,EAAA,aAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA;AACX;AACD;AACH,CAAE;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["export default {\n type: 'content-api',\n routes: [\n {\n method: 'GET',\n path: '/locales',\n handler: 'locales.listLocales',\n },\n ],\n};\n"],"names":["type","routes","method","path","handler"],"mappings":"AAAA,iBAAe;IACbA,IAAM,EAAA,aAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,UAAA;YACNC,OAAS,EAAA;AACX;AACD;AACH,CAAE;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,aAAeC,EAAAA;AACjB,CAAE;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport default {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["admin","contentApi"],"mappings":";;;AAGA,aAAe;AACbA,IAAAA,KAAAA;IACA,aAAeC,EAAAA;AACjB,CAAE;;;;"}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var _ = require('lodash');
|
4
|
+
var fp = require('lodash/fp');
|
5
|
+
var utils = require('@strapi/utils');
|
6
|
+
var index = require('../utils/index.js');
|
7
|
+
|
8
|
+
const { isRelationalAttribute, getVisibleAttributes, isTypedAttribute, getScalarAttributes, getRelationalAttributes } = utils.contentTypes;
|
9
|
+
const { ApplicationError } = utils.errors;
|
10
|
+
const hasLocalizedOption = (modelOrAttribute)=>{
|
11
|
+
return fp.prop('pluginOptions.i18n.localized', modelOrAttribute) === true;
|
12
|
+
};
|
13
|
+
const getValidLocale = async (locale)=>{
|
14
|
+
const localesService = index.getService('locales');
|
15
|
+
if (fp.isNil(locale)) {
|
16
|
+
return localesService.getDefaultLocale();
|
17
|
+
}
|
18
|
+
const foundLocale = await localesService.findByCode(locale);
|
19
|
+
if (!foundLocale) {
|
20
|
+
throw new ApplicationError('Locale not found');
|
21
|
+
}
|
22
|
+
return locale;
|
23
|
+
};
|
24
|
+
/**
|
25
|
+
* Returns whether an attribute is localized or not
|
26
|
+
* @param {*} attribute
|
27
|
+
* @returns
|
28
|
+
*/ const isLocalizedAttribute = (attribute)=>{
|
29
|
+
return hasLocalizedOption(attribute) || isRelationalAttribute(attribute) || isTypedAttribute(attribute, 'uid');
|
30
|
+
};
|
31
|
+
/**
|
32
|
+
* Returns whether a model is localized or not
|
33
|
+
* @param {*} model
|
34
|
+
* @returns
|
35
|
+
*/ const isLocalizedContentType = (model)=>{
|
36
|
+
return hasLocalizedOption(model);
|
37
|
+
};
|
38
|
+
/**
|
39
|
+
* Returns the list of attribute names that are not localized
|
40
|
+
* @param {object} model
|
41
|
+
* @returns {string[]}
|
42
|
+
*/ const getNonLocalizedAttributes = (model)=>{
|
43
|
+
return getVisibleAttributes(model).filter((attrName)=>!isLocalizedAttribute(model.attributes[attrName]));
|
44
|
+
};
|
45
|
+
const removeId = (value)=>{
|
46
|
+
if (typeof value === 'object' && fp.has('id', value)) {
|
47
|
+
delete value.id;
|
48
|
+
}
|
49
|
+
};
|
50
|
+
const removeIds = (model)=>(entry)=>removeIdsMut(model, fp.cloneDeep(entry));
|
51
|
+
const removeIdsMut = (model, entry)=>{
|
52
|
+
if (fp.isNil(entry)) {
|
53
|
+
return entry;
|
54
|
+
}
|
55
|
+
removeId(entry);
|
56
|
+
_.forEach(model.attributes, (attr, attrName)=>{
|
57
|
+
const value = entry[attrName];
|
58
|
+
if (attr.type === 'dynamiczone' && fp.isArray(value)) {
|
59
|
+
value.forEach((compo)=>{
|
60
|
+
if (fp.has('__component', compo)) {
|
61
|
+
const model = strapi.components[compo.__component];
|
62
|
+
removeIdsMut(model, compo);
|
63
|
+
}
|
64
|
+
});
|
65
|
+
} else if (attr.type === 'component') {
|
66
|
+
const model = strapi.components[attr.component];
|
67
|
+
if (fp.isArray(value)) {
|
68
|
+
value.forEach((compo)=>removeIdsMut(model, compo));
|
69
|
+
} else {
|
70
|
+
removeIdsMut(model, value);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
});
|
74
|
+
return entry;
|
75
|
+
};
|
76
|
+
/**
|
77
|
+
* Returns a copy of an entry picking only its non localized attributes
|
78
|
+
* @param {object} model
|
79
|
+
* @param {object} entry
|
80
|
+
* @returns {object}
|
81
|
+
*/ const copyNonLocalizedAttributes = (model, entry)=>{
|
82
|
+
const nonLocalizedAttributes = getNonLocalizedAttributes(model);
|
83
|
+
return fp.pipe(fp.pick(nonLocalizedAttributes), removeIds(model))(entry);
|
84
|
+
};
|
85
|
+
/**
|
86
|
+
* Returns the list of attribute names that are localized
|
87
|
+
* @param {object} model
|
88
|
+
* @returns {string[]}
|
89
|
+
*/ const getLocalizedAttributes = (model)=>{
|
90
|
+
return getVisibleAttributes(model).filter((attrName)=>isLocalizedAttribute(model.attributes[attrName]));
|
91
|
+
};
|
92
|
+
/**
|
93
|
+
* Fill non localized fields of an entry if there are nil
|
94
|
+
* @param {Object} entry entry to fill
|
95
|
+
* @param {Object} relatedEntry values used to fill
|
96
|
+
* @param {Object} options
|
97
|
+
* @param {Object} options.model corresponding model
|
98
|
+
*/ const fillNonLocalizedAttributes = (entry, relatedEntry, { model })=>{
|
99
|
+
if (fp.isNil(relatedEntry)) {
|
100
|
+
return;
|
101
|
+
}
|
102
|
+
const modelDef = strapi.getModel(model);
|
103
|
+
const relatedEntryCopy = copyNonLocalizedAttributes(modelDef, relatedEntry);
|
104
|
+
_.forEach(relatedEntryCopy, (value, field)=>{
|
105
|
+
if (fp.isNil(entry[field])) {
|
106
|
+
entry[field] = value;
|
107
|
+
}
|
108
|
+
});
|
109
|
+
};
|
110
|
+
/**
|
111
|
+
* build the populate param to
|
112
|
+
* @param {String} modelUID uid of the model, could be of a content-type or a component
|
113
|
+
*/ const getNestedPopulateOfNonLocalizedAttributes = (modelUID)=>{
|
114
|
+
const schema = strapi.getModel(modelUID);
|
115
|
+
const scalarAttributes = getScalarAttributes(schema);
|
116
|
+
const nonLocalizedAttributes = getNonLocalizedAttributes(schema);
|
117
|
+
const allAttributes = [
|
118
|
+
...scalarAttributes,
|
119
|
+
...nonLocalizedAttributes
|
120
|
+
];
|
121
|
+
if (schema.modelType === 'component') {
|
122
|
+
// When called recursively on a non localized component we
|
123
|
+
// need to explicitly populate that components relations
|
124
|
+
allAttributes.push(...getRelationalAttributes(schema));
|
125
|
+
}
|
126
|
+
const currentAttributesToPopulate = allAttributes.filter((value, index, self)=>{
|
127
|
+
return self.indexOf(value) === index && self.lastIndexOf(value) === index;
|
128
|
+
});
|
129
|
+
const attributesToPopulate = [
|
130
|
+
...currentAttributesToPopulate
|
131
|
+
];
|
132
|
+
for (const attrName of currentAttributesToPopulate){
|
133
|
+
const attr = schema.attributes[attrName];
|
134
|
+
if (attr.type === 'component') {
|
135
|
+
const nestedPopulate = getNestedPopulateOfNonLocalizedAttributes(attr.component).map((nestedAttr)=>`${attrName}.${nestedAttr}`);
|
136
|
+
attributesToPopulate.push(...nestedPopulate);
|
137
|
+
} else if (attr.type === 'dynamiczone') {
|
138
|
+
attr.components.forEach((componentName)=>{
|
139
|
+
const nestedPopulate = getNestedPopulateOfNonLocalizedAttributes(componentName).map((nestedAttr)=>`${attrName}.${nestedAttr}`);
|
140
|
+
attributesToPopulate.push(...nestedPopulate);
|
141
|
+
});
|
142
|
+
}
|
143
|
+
}
|
144
|
+
return attributesToPopulate;
|
145
|
+
};
|
146
|
+
const contentTypes = ()=>({
|
147
|
+
isLocalizedContentType,
|
148
|
+
getValidLocale,
|
149
|
+
getLocalizedAttributes,
|
150
|
+
getNonLocalizedAttributes,
|
151
|
+
copyNonLocalizedAttributes,
|
152
|
+
fillNonLocalizedAttributes,
|
153
|
+
getNestedPopulateOfNonLocalizedAttributes
|
154
|
+
});
|
155
|
+
|
156
|
+
module.exports = contentTypes;
|
157
|
+
//# sourceMappingURL=content-types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"content-types.js","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { pick, pipe, has, prop, isNil, cloneDeep, isArray } from 'lodash/fp';\nimport { errors, contentTypes as contentTypeUtils } from '@strapi/utils';\nimport { getService } from '../utils';\n\nconst {\n isRelationalAttribute,\n getVisibleAttributes,\n isTypedAttribute,\n getScalarAttributes,\n getRelationalAttributes,\n} = contentTypeUtils;\nconst { ApplicationError } = errors;\n\nconst hasLocalizedOption = (modelOrAttribute: any) => {\n return prop('pluginOptions.i18n.localized', modelOrAttribute) === true;\n};\n\nconst getValidLocale = async (locale: any) => {\n const localesService = getService('locales');\n\n if (isNil(locale)) {\n return localesService.getDefaultLocale();\n }\n\n const foundLocale = await localesService.findByCode(locale);\n if (!foundLocale) {\n throw new ApplicationError('Locale not found');\n }\n\n return locale;\n};\n\n/**\n * Returns whether an attribute is localized or not\n * @param {*} attribute\n * @returns\n */\nconst isLocalizedAttribute = (attribute: any) => {\n return (\n hasLocalizedOption(attribute) ||\n isRelationalAttribute(attribute) ||\n isTypedAttribute(attribute, 'uid')\n );\n};\n\n/**\n * Returns whether a model is localized or not\n * @param {*} model\n * @returns\n */\nconst isLocalizedContentType = (model: any) => {\n return hasLocalizedOption(model);\n};\n\n/**\n * Returns the list of attribute names that are not localized\n * @param {object} model\n * @returns {string[]}\n */\nconst getNonLocalizedAttributes = (model: any) => {\n return getVisibleAttributes(model).filter(\n (attrName) => !isLocalizedAttribute(model.attributes[attrName])\n );\n};\n\nconst removeId = (value: any) => {\n if (typeof value === 'object' && has('id', value)) {\n delete value.id;\n }\n};\n\nconst removeIds = (model: any) => (entry: any) => removeIdsMut(model, cloneDeep(entry));\n\nconst removeIdsMut = (model: any, entry: any) => {\n if (isNil(entry)) {\n return entry;\n }\n\n removeId(entry);\n\n _.forEach(model.attributes, (attr, attrName) => {\n const value = entry[attrName];\n if (attr.type === 'dynamiczone' && isArray(value)) {\n value.forEach((compo) => {\n if (has('__component', compo)) {\n const model = strapi.components[compo.__component];\n removeIdsMut(model, compo);\n }\n });\n } else if (attr.type === 'component') {\n const model = strapi.components[attr.component];\n if (isArray(value)) {\n value.forEach((compo) => removeIdsMut(model, compo));\n } else {\n removeIdsMut(model, value);\n }\n }\n });\n\n return entry;\n};\n\n/**\n * Returns a copy of an entry picking only its non localized attributes\n * @param {object} model\n * @param {object} entry\n * @returns {object}\n */\nconst copyNonLocalizedAttributes = (model: any, entry: any) => {\n const nonLocalizedAttributes = getNonLocalizedAttributes(model);\n\n return pipe(pick(nonLocalizedAttributes), removeIds(model))(entry);\n};\n\n/**\n * Returns the list of attribute names that are localized\n * @param {object} model\n * @returns {string[]}\n */\nconst getLocalizedAttributes = (model: any) => {\n return getVisibleAttributes(model).filter((attrName) =>\n isLocalizedAttribute(model.attributes[attrName])\n );\n};\n\n/**\n * Fill non localized fields of an entry if there are nil\n * @param {Object} entry entry to fill\n * @param {Object} relatedEntry values used to fill\n * @param {Object} options\n * @param {Object} options.model corresponding model\n */\nconst fillNonLocalizedAttributes = (entry: any, relatedEntry: any, { model }: any) => {\n if (isNil(relatedEntry)) {\n return;\n }\n\n const modelDef = strapi.getModel(model);\n const relatedEntryCopy = copyNonLocalizedAttributes(modelDef, relatedEntry);\n\n _.forEach(relatedEntryCopy, (value, field) => {\n if (isNil(entry[field])) {\n entry[field] = value;\n }\n });\n};\n\n/**\n * build the populate param to\n * @param {String} modelUID uid of the model, could be of a content-type or a component\n */\nconst getNestedPopulateOfNonLocalizedAttributes = (modelUID: any) => {\n const schema = strapi.getModel(modelUID);\n const scalarAttributes = getScalarAttributes(schema);\n const nonLocalizedAttributes = getNonLocalizedAttributes(schema);\n\n const allAttributes = [...scalarAttributes, ...nonLocalizedAttributes];\n if (schema.modelType === 'component') {\n // When called recursively on a non localized component we\n // need to explicitly populate that components relations\n allAttributes.push(...getRelationalAttributes(schema));\n }\n\n const currentAttributesToPopulate = allAttributes.filter((value, index, self) => {\n return self.indexOf(value) === index && self.lastIndexOf(value) === index;\n });\n\n const attributesToPopulate = [...currentAttributesToPopulate];\n for (const attrName of currentAttributesToPopulate) {\n const attr = schema.attributes[attrName];\n if (attr.type === 'component') {\n const nestedPopulate = getNestedPopulateOfNonLocalizedAttributes(attr.component).map(\n (nestedAttr) => `${attrName}.${nestedAttr}`\n );\n attributesToPopulate.push(...nestedPopulate);\n } else if (attr.type === 'dynamiczone') {\n attr.components.forEach((componentName) => {\n const nestedPopulate = getNestedPopulateOfNonLocalizedAttributes(componentName).map(\n (nestedAttr) => `${attrName}.${nestedAttr}`\n );\n attributesToPopulate.push(...nestedPopulate);\n });\n }\n }\n\n return attributesToPopulate;\n};\n\nconst contentTypes = () => ({\n isLocalizedContentType,\n getValidLocale,\n getLocalizedAttributes,\n getNonLocalizedAttributes,\n copyNonLocalizedAttributes,\n fillNonLocalizedAttributes,\n getNestedPopulateOfNonLocalizedAttributes,\n});\n\ntype ContentTypesService = typeof contentTypes;\n\nexport default contentTypes;\nexport { ContentTypesService };\n"],"names":["isRelationalAttribute","getVisibleAttributes","isTypedAttribute","getScalarAttributes","getRelationalAttributes","contentTypeUtils","ApplicationError","errors","hasLocalizedOption","modelOrAttribute","prop","getValidLocale","locale","localesService","getService","isNil","getDefaultLocale","foundLocale","findByCode","isLocalizedAttribute","attribute","isLocalizedContentType","model","getNonLocalizedAttributes","filter","attrName","attributes","removeId","value","has","id","removeIds","entry","removeIdsMut","cloneDeep","_","forEach","attr","type","isArray","compo","strapi","components","__component","component","copyNonLocalizedAttributes","nonLocalizedAttributes","pipe","pick","getLocalizedAttributes","fillNonLocalizedAttributes","relatedEntry","modelDef","getModel","relatedEntryCopy","field","getNestedPopulateOfNonLocalizedAttributes","modelUID","schema","scalarAttributes","allAttributes","modelType","push","currentAttributesToPopulate","index","self","indexOf","lastIndexOf","attributesToPopulate","nestedPopulate","map","nestedAttr","componentName","contentTypes"],"mappings":";;;;;;;AAKA,MAAM,EACJA,qBAAqB,EACrBC,oBAAoB,EACpBC,gBAAgB,EAChBC,mBAAmB,EACnBC,uBAAuB,EACxB,GAAGC,kBAAAA;AACJ,MAAM,EAAEC,gBAAgB,EAAE,GAAGC,YAAAA;AAE7B,MAAMC,qBAAqB,CAACC,gBAAAA,GAAAA;IAC1B,OAAOC,OAAAA,CAAK,gCAAgCD,gBAAsB,CAAA,KAAA,IAAA;AACpE,CAAA;AAEA,MAAME,iBAAiB,OAAOC,MAAAA,GAAAA;AAC5B,IAAA,MAAMC,iBAAiBC,gBAAW,CAAA,SAAA,CAAA;AAElC,IAAA,IAAIC,SAAMH,MAAS,CAAA,EAAA;AACjB,QAAA,OAAOC,eAAeG,gBAAgB,EAAA;AACxC;AAEA,IAAA,MAAMC,WAAc,GAAA,MAAMJ,cAAeK,CAAAA,UAAU,CAACN,MAAAA,CAAAA;AACpD,IAAA,IAAI,CAACK,WAAa,EAAA;AAChB,QAAA,MAAM,IAAIX,gBAAiB,CAAA,kBAAA,CAAA;AAC7B;IAEA,OAAOM,MAAAA;AACT,CAAA;AAEA;;;;IAKA,MAAMO,uBAAuB,CAACC,SAAAA,GAAAA;AAC5B,IAAA,OACEZ,kBAAmBY,CAAAA,SAAAA,CAAAA,IACnBpB,qBAAsBoB,CAAAA,SAAAA,CAAAA,IACtBlB,iBAAiBkB,SAAW,EAAA,KAAA,CAAA;AAEhC,CAAA;AAEA;;;;IAKA,MAAMC,yBAAyB,CAACC,KAAAA,GAAAA;AAC9B,IAAA,OAAOd,kBAAmBc,CAAAA,KAAAA,CAAAA;AAC5B,CAAA;AAEA;;;;IAKA,MAAMC,4BAA4B,CAACD,KAAAA,GAAAA;IACjC,OAAOrB,oBAAAA,CAAqBqB,KAAOE,CAAAA,CAAAA,MAAM,CACvC,CAACC,QAAa,GAAA,CAACN,oBAAqBG,CAAAA,KAAAA,CAAMI,UAAU,CAACD,QAAS,CAAA,CAAA,CAAA;AAElE,CAAA;AAEA,MAAME,WAAW,CAACC,KAAAA,GAAAA;AAChB,IAAA,IAAI,OAAOA,KAAAA,KAAU,QAAYC,IAAAA,MAAAA,CAAI,MAAMD,KAAQ,CAAA,EAAA;AACjD,QAAA,OAAOA,MAAME,EAAE;AACjB;AACF,CAAA;AAEA,MAAMC,YAAY,CAACT,KAAAA,GAAe,CAACU,KAAeC,GAAAA,YAAAA,CAAaX,OAAOY,YAAUF,CAAAA,KAAAA,CAAAA,CAAAA;AAEhF,MAAMC,YAAAA,GAAe,CAACX,KAAYU,EAAAA,KAAAA,GAAAA;AAChC,IAAA,IAAIjB,SAAMiB,KAAQ,CAAA,EAAA;QAChB,OAAOA,KAAAA;AACT;IAEAL,QAASK,CAAAA,KAAAA,CAAAA;AAETG,IAAAA,CAAAA,CAAEC,OAAO,CAACd,KAAAA,CAAMI,UAAU,EAAE,CAACW,IAAMZ,EAAAA,QAAAA,GAAAA;QACjC,MAAMG,KAAAA,GAAQI,KAAK,CAACP,QAAS,CAAA;AAC7B,QAAA,IAAIY,IAAKC,CAAAA,IAAI,KAAK,aAAA,IAAiBC,WAAQX,KAAQ,CAAA,EAAA;YACjDA,KAAMQ,CAAAA,OAAO,CAAC,CAACI,KAAAA,GAAAA;gBACb,IAAIX,MAAAA,CAAI,eAAeW,KAAQ,CAAA,EAAA;AAC7B,oBAAA,MAAMlB,QAAQmB,MAAOC,CAAAA,UAAU,CAACF,KAAAA,CAAMG,WAAW,CAAC;AAClDV,oBAAAA,YAAAA,CAAaX,KAAOkB,EAAAA,KAAAA,CAAAA;AACtB;AACF,aAAA,CAAA;AACF,SAAA,MAAO,IAAIH,IAAAA,CAAKC,IAAI,KAAK,WAAa,EAAA;AACpC,YAAA,MAAMhB,QAAQmB,MAAOC,CAAAA,UAAU,CAACL,IAAAA,CAAKO,SAAS,CAAC;AAC/C,YAAA,IAAIL,WAAQX,KAAQ,CAAA,EAAA;AAClBA,gBAAAA,KAAAA,CAAMQ,OAAO,CAAC,CAACI,KAAAA,GAAUP,aAAaX,KAAOkB,EAAAA,KAAAA,CAAAA,CAAAA;aACxC,MAAA;AACLP,gBAAAA,YAAAA,CAAaX,KAAOM,EAAAA,KAAAA,CAAAA;AACtB;AACF;AACF,KAAA,CAAA;IAEA,OAAOI,KAAAA;AACT,CAAA;AAEA;;;;;IAMA,MAAMa,0BAA6B,GAAA,CAACvB,KAAYU,EAAAA,KAAAA,GAAAA;AAC9C,IAAA,MAAMc,yBAAyBvB,yBAA0BD,CAAAA,KAAAA,CAAAA;AAEzD,IAAA,OAAOyB,OAAKC,CAAAA,OAAAA,CAAKF,sBAAyBf,CAAAA,EAAAA,SAAAA,CAAUT,KAAQU,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA;AAC9D,CAAA;AAEA;;;;IAKA,MAAMiB,yBAAyB,CAAC3B,KAAAA,GAAAA;IAC9B,OAAOrB,oBAAAA,CAAqBqB,KAAOE,CAAAA,CAAAA,MAAM,CAAC,CAACC,WACzCN,oBAAqBG,CAAAA,KAAAA,CAAMI,UAAU,CAACD,QAAS,CAAA,CAAA,CAAA;AAEnD,CAAA;AAEA;;;;;;AAMC,IACD,MAAMyB,0BAA6B,GAAA,CAAClB,OAAYmB,YAAmB,EAAA,EAAE7B,KAAK,EAAO,GAAA;AAC/E,IAAA,IAAIP,SAAMoC,YAAe,CAAA,EAAA;AACvB,QAAA;AACF;IAEA,MAAMC,QAAAA,GAAWX,MAAOY,CAAAA,QAAQ,CAAC/B,KAAAA,CAAAA;IACjC,MAAMgC,gBAAAA,GAAmBT,2BAA2BO,QAAUD,EAAAA,YAAAA,CAAAA;AAE9DhB,IAAAA,CAAAA,CAAEC,OAAO,CAACkB,gBAAkB,EAAA,CAAC1B,KAAO2B,EAAAA,KAAAA,GAAAA;AAClC,QAAA,IAAIxC,QAAMiB,CAAAA,KAAK,CAACuB,KAAAA,CAAM,CAAG,EAAA;YACvBvB,KAAK,CAACuB,MAAM,GAAG3B,KAAAA;AACjB;AACF,KAAA,CAAA;AACF,CAAA;AAEA;;;IAIA,MAAM4B,4CAA4C,CAACC,QAAAA,GAAAA;IACjD,MAAMC,MAAAA,GAASjB,MAAOY,CAAAA,QAAQ,CAACI,QAAAA,CAAAA;AAC/B,IAAA,MAAME,mBAAmBxD,mBAAoBuD,CAAAA,MAAAA,CAAAA;AAC7C,IAAA,MAAMZ,yBAAyBvB,yBAA0BmC,CAAAA,MAAAA,CAAAA;AAEzD,IAAA,MAAME,aAAgB,GAAA;AAAID,QAAAA,GAAAA,gBAAAA;AAAqBb,QAAAA,GAAAA;AAAuB,KAAA;IACtE,IAAIY,MAAAA,CAAOG,SAAS,KAAK,WAAa,EAAA;;;QAGpCD,aAAcE,CAAAA,IAAI,IAAI1D,uBAAwBsD,CAAAA,MAAAA,CAAAA,CAAAA;AAChD;AAEA,IAAA,MAAMK,8BAA8BH,aAAcpC,CAAAA,MAAM,CAAC,CAACI,OAAOoC,KAAOC,EAAAA,IAAAA,GAAAA;QACtE,OAAOA,IAAAA,CAAKC,OAAO,CAACtC,KAAAA,CAAAA,KAAWoC,SAASC,IAAKE,CAAAA,WAAW,CAACvC,KAAWoC,CAAAA,KAAAA,KAAAA;AACtE,KAAA,CAAA;AAEA,IAAA,MAAMI,oBAAuB,GAAA;AAAIL,QAAAA,GAAAA;AAA4B,KAAA;IAC7D,KAAK,MAAMtC,YAAYsC,2BAA6B,CAAA;AAClD,QAAA,MAAM1B,IAAOqB,GAAAA,MAAAA,CAAOhC,UAAU,CAACD,QAAS,CAAA;QACxC,IAAIY,IAAAA,CAAKC,IAAI,KAAK,WAAa,EAAA;AAC7B,YAAA,MAAM+B,cAAiBb,GAAAA,yCAAAA,CAA0CnB,IAAKO,CAAAA,SAAS,EAAE0B,GAAG,CAClF,CAACC,UAAAA,GAAe,CAAC,EAAE9C,QAAAA,CAAS,CAAC,EAAE8C,WAAW,CAAC,CAAA;AAE7CH,YAAAA,oBAAAA,CAAqBN,IAAI,CAAIO,GAAAA,cAAAA,CAAAA;AAC/B,SAAA,MAAO,IAAIhC,IAAAA,CAAKC,IAAI,KAAK,aAAe,EAAA;AACtCD,YAAAA,IAAAA,CAAKK,UAAU,CAACN,OAAO,CAAC,CAACoC,aAAAA,GAAAA;AACvB,gBAAA,MAAMH,cAAiBb,GAAAA,yCAAAA,CAA0CgB,aAAeF,CAAAA,CAAAA,GAAG,CACjF,CAACC,UAAe,GAAA,CAAC,EAAE9C,QAAAA,CAAS,CAAC,EAAE8C,WAAW,CAAC,CAAA;AAE7CH,gBAAAA,oBAAAA,CAAqBN,IAAI,CAAIO,GAAAA,cAAAA,CAAAA;AAC/B,aAAA,CAAA;AACF;AACF;IAEA,OAAOD,oBAAAA;AACT,CAAA;AAEMK,MAAAA,YAAAA,GAAe,KAAO;AAC1BpD,QAAAA,sBAAAA;AACAV,QAAAA,cAAAA;AACAsC,QAAAA,sBAAAA;AACA1B,QAAAA,yBAAAA;AACAsB,QAAAA,0BAAAA;AACAK,QAAAA,0BAAAA;AACAM,QAAAA;KACF;;;;"}
|