@strapi/i18n 0.0.0-experimental.00380841fe1b29f71fe755bb387fa1f75073621b
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 +911 -0
- package/dist/admin/components/CMHeaderActions.js.map +1 -0
- package/dist/admin/components/CMHeaderActions.mjs +885 -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 +102 -0
- package/dist/admin/components/LocaleListCell.js.map +1 -0
- package/dist/admin/components/LocaleListCell.mjs +100 -0
- package/dist/admin/components/LocaleListCell.mjs.map +1 -0
- package/dist/admin/components/LocalePicker.js +105 -0
- package/dist/admin/components/LocalePicker.js.map +1 -0
- package/dist/admin/components/LocalePicker.mjs +84 -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 +109 -0
- package/dist/admin/contentManagerHooks/editView.js.map +1 -0
- package/dist/admin/contentManagerHooks/editView.mjs +88 -0
- package/dist/admin/contentManagerHooks/editView.mjs.map +1 -0
- package/dist/admin/contentManagerHooks/listView.js +44 -0
- package/dist/admin/contentManagerHooks/listView.js.map +1 -0
- package/dist/admin/contentManagerHooks/listView.mjs +42 -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/useAILocalizationJobsPolling.js +110 -0
- package/dist/admin/hooks/useAILocalizationJobsPolling.js.map +1 -0
- package/dist/admin/hooks/useAILocalizationJobsPolling.mjs +89 -0
- package/dist/admin/hooks/useAILocalizationJobsPolling.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 +227 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +204 -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 +182 -0
- package/dist/admin/pages/SettingsPage.js.map +1 -0
- package/dist/admin/pages/SettingsPage.mjs +179 -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/aiLocalizationJobs.js +26 -0
- package/dist/admin/services/aiLocalizationJobs.js.map +1 -0
- package/dist/admin/services/aiLocalizationJobs.mjs +24 -0
- package/dist/admin/services/aiLocalizationJobs.mjs.map +1 -0
- package/dist/admin/services/api.js +15 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +13 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/services/locales.js +72 -0
- package/dist/admin/services/locales.js.map +1 -0
- package/dist/admin/services/locales.mjs +66 -0
- package/dist/admin/services/locales.mjs.map +1 -0
- package/dist/admin/services/relations.js +23 -0
- package/dist/admin/services/relations.js.map +1 -0
- package/dist/admin/services/relations.mjs +21 -0
- package/dist/admin/services/relations.mjs.map +1 -0
- package/dist/admin/services/settings.js +29 -0
- package/dist/admin/services/settings.js.map +1 -0
- package/dist/admin/services/settings.mjs +26 -0
- package/dist/admin/services/settings.mjs.map +1 -0
- package/dist/admin/src/components/BulkLocaleActionModal.d.ts +16 -0
- package/dist/admin/src/components/CMHeaderActions.d.ts +49 -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 +10 -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/useAILocalizationJobsPolling.d.ts +9 -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/aiLocalizationJobs.d.ts +6 -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/services/settings.d.ts +5 -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 +651 -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 +91 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +89 -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 +81 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +79 -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 +2427 -0
- package/dist/server/constants/iso-locales.json.js.map +1 -0
- package/dist/server/constants/iso-locales.json.mjs +2425 -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/ai-localization-jobs.js +47 -0
- package/dist/server/controllers/ai-localization-jobs.js.map +1 -0
- package/dist/server/controllers/ai-localization-jobs.mjs +45 -0
- package/dist/server/controllers/ai-localization-jobs.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 +18 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +16 -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/settings.js +24 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +22 -0
- package/dist/server/controllers/settings.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/models/ai-localization-job.js +60 -0
- package/dist/server/models/ai-localization-job.js.map +1 -0
- package/dist/server/models/ai-localization-job.mjs +57 -0
- package/dist/server/models/ai-localization-job.mjs.map +1 -0
- package/dist/server/register.js +81 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +79 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin.js +142 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +140 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +19 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +17 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/validation/locale.js +57 -0
- package/dist/server/routes/validation/locale.js.map +1 -0
- package/dist/server/routes/validation/locale.mjs +36 -0
- package/dist/server/routes/validation/locale.mjs.map +1 -0
- package/dist/server/services/ai-localization-jobs.js +64 -0
- package/dist/server/services/ai-localization-jobs.js.map +1 -0
- package/dist/server/services/ai-localization-jobs.mjs +62 -0
- package/dist/server/services/ai-localization-jobs.mjs.map +1 -0
- package/dist/server/services/ai-localizations.js +272 -0
- package/dist/server/services/ai-localizations.js.map +1 -0
- package/dist/server/services/ai-localizations.mjs +270 -0
- package/dist/server/services/ai-localizations.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 +28 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +26 -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/services/settings.js +25 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +23 -0
- package/dist/server/services/settings.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/ai-localization-jobs.d.ts +17 -0
- package/dist/server/src/controllers/ai-localization-jobs.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 +20 -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/settings.d.ts +7 -0
- package/dist/server/src/controllers/settings.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 +195 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/models/ai-localization-job.d.ts +5 -0
- package/dist/server/src/models/ai-localization-job.d.ts.map +1 -0
- package/dist/server/src/models/index.d.ts +5 -0
- package/dist/server/src/models/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 +7 -0
- package/dist/server/src/routes/content-api.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +24 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/routes/validation/index.d.ts +2 -0
- package/dist/server/src/routes/validation/index.d.ts.map +1 -0
- package/dist/server/src/routes/validation/locale.d.ts +41 -0
- package/dist/server/src/routes/validation/locale.d.ts.map +1 -0
- package/dist/server/src/services/ai-localization-jobs.d.ts +26 -0
- package/dist/server/src/services/ai-localization-jobs.d.ts.map +1 -0
- package/dist/server/src/services/ai-localizations.d.ts +18 -0
- package/dist/server/src/services/ai-localizations.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 +114 -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/services/settings.d.ts +13 -0
- package/dist/server/src/services/settings.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +49 -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/src/validation/settings.d.ts +12 -0
- package/dist/server/src/validation/settings.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/server/validation/settings.js +11 -0
- package/dist/server/validation/settings.js.map +1 -0
- package/dist/server/validation/settings.mjs +9 -0
- package/dist/server/validation/settings.mjs.map +1 -0
- package/dist/shared/contracts/ai-localization-jobs.d.ts +27 -0
- package/dist/shared/contracts/ai-localization-jobs.d.ts.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/settings.d.ts +40 -0
- package/dist/shared/contracts/shared.d.ts +6 -0
- package/dist/shared/contracts/shared.d.ts.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { identity, propEq } from 'lodash/fp';
|
|
2
|
+
import { errors } from '@strapi/utils';
|
|
3
|
+
|
|
4
|
+
const { ValidationError } = errors;
|
|
5
|
+
const LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';
|
|
6
|
+
const LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';
|
|
7
|
+
var graphqlProvider = (({ strapi: strapi1 })=>({
|
|
8
|
+
register () {
|
|
9
|
+
const { service: getGraphQLService } = strapi1.plugin('graphql');
|
|
10
|
+
const { service: getI18NService } = strapi1.plugin('i18n');
|
|
11
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
|
12
|
+
const extensionService = getGraphQLService('extension');
|
|
13
|
+
extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();
|
|
14
|
+
// Disable unwanted fields for localized content types
|
|
15
|
+
Object.entries(strapi1.contentTypes).forEach(([uid, ct])=>{
|
|
16
|
+
if (isLocalizedContentType(ct)) {
|
|
17
|
+
// Disable locale field in localized inputs
|
|
18
|
+
extensionService.shadowCRUD(uid).field('locale').disableInput();
|
|
19
|
+
// Disable localizations field in localized inputs
|
|
20
|
+
extensionService.shadowCRUD(uid).field('localizations').disableInput();
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
extensionService.use(({ nexus, typeRegistry })=>{
|
|
24
|
+
const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({
|
|
25
|
+
nexus,
|
|
26
|
+
typeRegistry
|
|
27
|
+
});
|
|
28
|
+
const i18nLocaleScalar = getLocaleScalar({
|
|
29
|
+
nexus
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
plugins: [
|
|
33
|
+
i18nLocaleArgPlugin
|
|
34
|
+
],
|
|
35
|
+
types: [
|
|
36
|
+
i18nLocaleScalar
|
|
37
|
+
],
|
|
38
|
+
resolversConfig: {
|
|
39
|
+
// Modify the default scope associated to find and findOne locale queries to match the actual action name
|
|
40
|
+
'Query.i18NLocale': {
|
|
41
|
+
auth: {
|
|
42
|
+
scope: 'plugin::i18n.locales.listLocales'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
'Query.i18NLocales': {
|
|
46
|
+
auth: {
|
|
47
|
+
scope: 'plugin::i18n.locales.listLocales'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
const getLocaleScalar = ({ nexus })=>{
|
|
56
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
|
57
|
+
const locales = getI18NService('iso-locales').getIsoLocales();
|
|
58
|
+
return nexus.scalarType({
|
|
59
|
+
name: LOCALE_SCALAR_TYPENAME,
|
|
60
|
+
description: 'A string used to identify an i18n locale',
|
|
61
|
+
serialize: identity,
|
|
62
|
+
parseValue: identity,
|
|
63
|
+
parseLiteral (ast) {
|
|
64
|
+
if (ast.kind !== 'StringValue') {
|
|
65
|
+
throw new ValidationError('Locale cannot represent non string type');
|
|
66
|
+
}
|
|
67
|
+
const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));
|
|
68
|
+
if (!isValidLocale) {
|
|
69
|
+
throw new ValidationError('Unknown locale supplied');
|
|
70
|
+
}
|
|
71
|
+
return ast.value;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
const getI18nLocaleArgPlugin = ({ nexus, typeRegistry })=>{
|
|
76
|
+
const { service: getI18NService } = strapi.plugin('i18n');
|
|
77
|
+
const { isLocalizedContentType } = getI18NService('content-types');
|
|
78
|
+
return nexus.plugin({
|
|
79
|
+
name: LOCALE_ARG_PLUGIN_NAME,
|
|
80
|
+
onAddOutputField (config) {
|
|
81
|
+
// Add the locale arg to the queries on localized CTs
|
|
82
|
+
const { parentType } = config;
|
|
83
|
+
// Only target queries or mutations
|
|
84
|
+
if (parentType !== 'Query' && parentType !== 'Mutation') {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
let contentType;
|
|
88
|
+
if (config?.extensions?.strapi?.contentType) {
|
|
89
|
+
contentType = config.extensions.strapi.contentType;
|
|
90
|
+
} else {
|
|
91
|
+
const registryType = typeRegistry.get(config.type);
|
|
92
|
+
if (!registryType) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
contentType = registryType.config.contentType;
|
|
96
|
+
}
|
|
97
|
+
// Ignore non-localized content types
|
|
98
|
+
if (!isLocalizedContentType(contentType)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (!config.args) {
|
|
102
|
+
config.args = {};
|
|
103
|
+
}
|
|
104
|
+
config.args.locale = nexus.arg({
|
|
105
|
+
type: LOCALE_SCALAR_TYPENAME,
|
|
106
|
+
description: 'The locale to use for the query'
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export { graphqlProvider as default };
|
|
113
|
+
//# sourceMappingURL=graphql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import { propEq, identity } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';\nconst LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n register() {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n const extensionService = getGraphQLService('extension');\n\n extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();\n\n // Disable unwanted fields for localized content types\n Object.entries(strapi.contentTypes).forEach(([uid, ct]) => {\n if (isLocalizedContentType(ct)) {\n // Disable locale field in localized inputs\n extensionService.shadowCRUD(uid).field('locale').disableInput();\n\n // Disable localizations field in localized inputs\n extensionService.shadowCRUD(uid).field('localizations').disableInput();\n }\n });\n\n extensionService.use(({ nexus, typeRegistry }: any) => {\n const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({ nexus, typeRegistry });\n const i18nLocaleScalar = getLocaleScalar({ nexus });\n return {\n plugins: [i18nLocaleArgPlugin],\n types: [i18nLocaleScalar],\n\n resolversConfig: {\n // Modify the default scope associated to find and findOne locale queries to match the actual action name\n 'Query.i18NLocale': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n 'Query.i18NLocales': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n },\n };\n });\n },\n});\n\nconst getLocaleScalar = ({ nexus }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const locales = getI18NService('iso-locales').getIsoLocales();\n\n return nexus.scalarType({\n name: LOCALE_SCALAR_TYPENAME,\n\n description: 'A string used to identify an i18n locale',\n\n serialize: identity,\n parseValue: identity,\n\n parseLiteral(ast: any) {\n if (ast.kind !== 'StringValue') {\n throw new ValidationError('Locale cannot represent non string type');\n }\n\n const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));\n\n if (!isValidLocale) {\n throw new ValidationError('Unknown locale supplied');\n }\n\n return ast.value;\n },\n });\n};\n\nconst getI18nLocaleArgPlugin = ({ nexus, typeRegistry }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n return nexus.plugin({\n name: LOCALE_ARG_PLUGIN_NAME,\n\n onAddOutputField(config: any) {\n // Add the locale arg to the queries on localized CTs\n\n const { parentType } = config;\n\n // Only target queries or mutations\n if (parentType !== 'Query' && parentType !== 'Mutation') {\n return;\n }\n\n let contentType;\n\n if (config?.extensions?.strapi?.contentType) {\n contentType = config.extensions.strapi.contentType;\n } else {\n const registryType = typeRegistry.get(config.type);\n\n if (!registryType) {\n return;\n }\n\n contentType = registryType.config.contentType;\n }\n\n // Ignore non-localized content types\n if (!isLocalizedContentType(contentType)) {\n return;\n }\n\n if (!config.args) {\n config.args = {};\n }\n\n config.args.locale = nexus.arg({\n type: LOCALE_SCALAR_TYPENAME,\n description: 'The locale to use for the query',\n });\n },\n });\n};\n"],"names":["ValidationError","errors","LOCALE_SCALAR_TYPENAME","LOCALE_ARG_PLUGIN_NAME","strapi","register","service","getGraphQLService","plugin","getI18NService","isLocalizedContentType","extensionService","shadowCRUD","disableMutations","Object","entries","contentTypes","forEach","uid","ct","field","disableInput","use","nexus","typeRegistry","i18nLocaleArgPlugin","getI18nLocaleArgPlugin","i18nLocaleScalar","getLocaleScalar","plugins","types","resolversConfig","auth","scope","locales","getIsoLocales","scalarType","name","description","serialize","identity","parseValue","parseLiteral","ast","kind","isValidLocale","value","find","propEq","onAddOutputField","config","parentType","contentType","extensions","registryType","get","type","args","locale","arg"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var bootstrap = require('./bootstrap.js');
|
|
4
|
+
var register = require('./register.js');
|
|
5
|
+
var index$3 = require('./content-types/index.js');
|
|
6
|
+
var index$4 = require('./services/index.js');
|
|
7
|
+
var index$1 = require('./routes/index.js');
|
|
8
|
+
var index$2 = require('./controllers/index.js');
|
|
9
|
+
|
|
10
|
+
var index = (()=>({
|
|
11
|
+
register,
|
|
12
|
+
bootstrap,
|
|
13
|
+
routes: index$1,
|
|
14
|
+
controllers: index$2,
|
|
15
|
+
contentTypes: index$3,
|
|
16
|
+
services: index$4
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
module.exports = index;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import bootstrap from './bootstrap';\nimport register from './register';\nimport contentTypes from './content-types';\nimport services from './services';\nimport routes from './routes';\nimport controllers from './controllers';\n\nexport default () => ({\n register,\n bootstrap,\n routes,\n controllers,\n contentTypes,\n services,\n});\n"],"names":["register","bootstrap","routes","controllers","contentTypes","services"],"mappings":";;;;;;;;;AAOA,YAAe,CAAA,KAAO;AACpBA,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,gBAAAA,OAAAA;AACAC,qBAAAA,OAAAA;AACAC,sBAAAA,OAAAA;AACAC,kBAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import bootstrap from './bootstrap.mjs';
|
|
2
|
+
import register from './register.mjs';
|
|
3
|
+
import contentTypes from './content-types/index.mjs';
|
|
4
|
+
import services from './services/index.mjs';
|
|
5
|
+
import routes from './routes/index.mjs';
|
|
6
|
+
import controllers from './controllers/index.mjs';
|
|
7
|
+
|
|
8
|
+
var index = (()=>({
|
|
9
|
+
register,
|
|
10
|
+
bootstrap,
|
|
11
|
+
routes,
|
|
12
|
+
controllers,
|
|
13
|
+
contentTypes,
|
|
14
|
+
services
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
export { index as default };
|
|
18
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import bootstrap from './bootstrap';\nimport register from './register';\nimport contentTypes from './content-types';\nimport services from './services';\nimport routes from './routes';\nimport controllers from './controllers';\n\nexport default () => ({\n register,\n bootstrap,\n routes,\n controllers,\n contentTypes,\n services,\n});\n"],"names":["register","bootstrap","routes","controllers","contentTypes","services"],"mappings":";;;;;;;AAOA,YAAe,CAAA,KAAO;AACpBA,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,MAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA,YAAAA;AACAC,QAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const AI_LOCALIZATION_JOB_UID = 'plugin::i18n.ai-localization-job';
|
|
4
|
+
const aiLocalizationJob = {
|
|
5
|
+
uid: AI_LOCALIZATION_JOB_UID,
|
|
6
|
+
tableName: 'strapi_ai_localization_jobs',
|
|
7
|
+
singularName: 'ai-localization-job',
|
|
8
|
+
attributes: {
|
|
9
|
+
id: {
|
|
10
|
+
type: 'increments'
|
|
11
|
+
},
|
|
12
|
+
contentType: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
column: {
|
|
15
|
+
notNullable: true
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
relatedDocumentId: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
column: {
|
|
21
|
+
notNullable: true
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
sourceLocale: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
column: {
|
|
27
|
+
notNullable: true
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
targetLocales: {
|
|
31
|
+
type: 'json',
|
|
32
|
+
column: {
|
|
33
|
+
notNullable: true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
status: {
|
|
37
|
+
type: 'enumeration',
|
|
38
|
+
enum: [
|
|
39
|
+
'processing',
|
|
40
|
+
'completed',
|
|
41
|
+
'failed'
|
|
42
|
+
],
|
|
43
|
+
column: {
|
|
44
|
+
notNullable: true
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
createdAt: {
|
|
48
|
+
type: 'datetime',
|
|
49
|
+
default: ()=>new Date()
|
|
50
|
+
},
|
|
51
|
+
updatedAt: {
|
|
52
|
+
type: 'datetime',
|
|
53
|
+
default: ()=>new Date()
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
exports.AI_LOCALIZATION_JOB_UID = AI_LOCALIZATION_JOB_UID;
|
|
59
|
+
exports.aiLocalizationJob = aiLocalizationJob;
|
|
60
|
+
//# sourceMappingURL=ai-localization-job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-localization-job.js","sources":["../../../server/src/models/ai-localization-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_LOCALIZATION_JOB_UID = 'plugin::i18n.ai-localization-job';\n\nconst aiLocalizationJob: Model = {\n uid: AI_LOCALIZATION_JOB_UID,\n tableName: 'strapi_ai_localization_jobs',\n singularName: 'ai-localization-job',\n attributes: {\n id: {\n type: 'increments',\n },\n contentType: {\n type: 'string',\n column: { notNullable: true },\n },\n relatedDocumentId: {\n type: 'string',\n column: { notNullable: true },\n },\n sourceLocale: {\n type: 'string',\n column: { notNullable: true },\n },\n targetLocales: {\n type: 'json',\n column: { notNullable: true },\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n updatedAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n },\n};\n\nexport { aiLocalizationJob, AI_LOCALIZATION_JOB_UID };\n"],"names":["AI_LOCALIZATION_JOB_UID","aiLocalizationJob","uid","tableName","singularName","attributes","id","type","contentType","column","notNullable","relatedDocumentId","sourceLocale","targetLocales","status","enum","createdAt","default","Date","updatedAt"],"mappings":";;AAEA,MAAMA,uBAA0B,GAAA;AAEhC,MAAMC,iBAA2B,GAAA;IAC/BC,GAAKF,EAAAA,uBAAAA;IACLG,SAAW,EAAA,6BAAA;IACXC,YAAc,EAAA,qBAAA;IACdC,UAAY,EAAA;QACVC,EAAI,EAAA;YACFC,IAAM,EAAA;AACR,SAAA;QACAC,WAAa,EAAA;YACXD,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAC,iBAAmB,EAAA;YACjBJ,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAE,YAAc,EAAA;YACZL,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAG,aAAe,EAAA;YACbN,IAAM,EAAA,MAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAI,MAAQ,EAAA;YACNP,IAAM,EAAA,aAAA;YACNQ,IAAM,EAAA;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CN,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAM,SAAW,EAAA;YACTT,IAAM,EAAA,UAAA;AACNU,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,SAAW,EAAA;YACTZ,IAAM,EAAA,UAAA;AACNU,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB;AACF;AACF;;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const AI_LOCALIZATION_JOB_UID = 'plugin::i18n.ai-localization-job';
|
|
2
|
+
const aiLocalizationJob = {
|
|
3
|
+
uid: AI_LOCALIZATION_JOB_UID,
|
|
4
|
+
tableName: 'strapi_ai_localization_jobs',
|
|
5
|
+
singularName: 'ai-localization-job',
|
|
6
|
+
attributes: {
|
|
7
|
+
id: {
|
|
8
|
+
type: 'increments'
|
|
9
|
+
},
|
|
10
|
+
contentType: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
column: {
|
|
13
|
+
notNullable: true
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
relatedDocumentId: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
column: {
|
|
19
|
+
notNullable: true
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
sourceLocale: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
column: {
|
|
25
|
+
notNullable: true
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
targetLocales: {
|
|
29
|
+
type: 'json',
|
|
30
|
+
column: {
|
|
31
|
+
notNullable: true
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
status: {
|
|
35
|
+
type: 'enumeration',
|
|
36
|
+
enum: [
|
|
37
|
+
'processing',
|
|
38
|
+
'completed',
|
|
39
|
+
'failed'
|
|
40
|
+
],
|
|
41
|
+
column: {
|
|
42
|
+
notNullable: true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
createdAt: {
|
|
46
|
+
type: 'datetime',
|
|
47
|
+
default: ()=>new Date()
|
|
48
|
+
},
|
|
49
|
+
updatedAt: {
|
|
50
|
+
type: 'datetime',
|
|
51
|
+
default: ()=>new Date()
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { AI_LOCALIZATION_JOB_UID, aiLocalizationJob };
|
|
57
|
+
//# sourceMappingURL=ai-localization-job.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-localization-job.mjs","sources":["../../../server/src/models/ai-localization-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_LOCALIZATION_JOB_UID = 'plugin::i18n.ai-localization-job';\n\nconst aiLocalizationJob: Model = {\n uid: AI_LOCALIZATION_JOB_UID,\n tableName: 'strapi_ai_localization_jobs',\n singularName: 'ai-localization-job',\n attributes: {\n id: {\n type: 'increments',\n },\n contentType: {\n type: 'string',\n column: { notNullable: true },\n },\n relatedDocumentId: {\n type: 'string',\n column: { notNullable: true },\n },\n sourceLocale: {\n type: 'string',\n column: { notNullable: true },\n },\n targetLocales: {\n type: 'json',\n column: { notNullable: true },\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n updatedAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n },\n};\n\nexport { aiLocalizationJob, AI_LOCALIZATION_JOB_UID };\n"],"names":["AI_LOCALIZATION_JOB_UID","aiLocalizationJob","uid","tableName","singularName","attributes","id","type","contentType","column","notNullable","relatedDocumentId","sourceLocale","targetLocales","status","enum","createdAt","default","Date","updatedAt"],"mappings":"AAEA,MAAMA,uBAA0B,GAAA;AAEhC,MAAMC,iBAA2B,GAAA;IAC/BC,GAAKF,EAAAA,uBAAAA;IACLG,SAAW,EAAA,6BAAA;IACXC,YAAc,EAAA,qBAAA;IACdC,UAAY,EAAA;QACVC,EAAI,EAAA;YACFC,IAAM,EAAA;AACR,SAAA;QACAC,WAAa,EAAA;YACXD,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAC,iBAAmB,EAAA;YACjBJ,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAE,YAAc,EAAA;YACZL,IAAM,EAAA,QAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAG,aAAe,EAAA;YACbN,IAAM,EAAA,MAAA;YACNE,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAI,MAAQ,EAAA;YACNP,IAAM,EAAA,aAAA;YACNQ,IAAM,EAAA;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CN,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAM,SAAW,EAAA;YACTT,IAAM,EAAA,UAAA;AACNU,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,SAAW,EAAA;YACTZ,IAAM,EAAA,UAAA;AACNU,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB;AACF;AACF;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var validateLocaleCreation = require('./controllers/validate-locale-creation.js');
|
|
5
|
+
var graphql = require('./graphql.js');
|
|
6
|
+
var index = require('./utils/index.js');
|
|
7
|
+
var aiLocalizationJob = require('./models/ai-localization-job.js');
|
|
8
|
+
|
|
9
|
+
var register = (async ({ strapi })=>{
|
|
10
|
+
strapi.get('models').add(aiLocalizationJob.aiLocalizationJob);
|
|
11
|
+
extendContentTypes(strapi);
|
|
12
|
+
addContentManagerLocaleMiddleware(strapi);
|
|
13
|
+
});
|
|
14
|
+
// TODO: v5 if implemented in the CM => delete this middleware
|
|
15
|
+
/**
|
|
16
|
+
* Adds middleware on CM creation routes to use i18n locale passed in a specific param
|
|
17
|
+
* @param {Strapi} strapi
|
|
18
|
+
*/ const addContentManagerLocaleMiddleware = (strapi)=>{
|
|
19
|
+
strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next)=>{
|
|
20
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
|
21
|
+
return validateLocaleCreation(ctx, next);
|
|
22
|
+
}
|
|
23
|
+
return next();
|
|
24
|
+
});
|
|
25
|
+
strapi.server.router.use('/content-manager/single-types/:model', (ctx, next)=>{
|
|
26
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
|
27
|
+
return validateLocaleCreation(ctx, next);
|
|
28
|
+
}
|
|
29
|
+
return next();
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Adds locale and localization fields to all content types
|
|
34
|
+
* Even if content type is not localized, it will have these fields
|
|
35
|
+
* @param {Strapi} strapi
|
|
36
|
+
*/ const extendContentTypes = (strapi)=>{
|
|
37
|
+
const { isLocalizedContentType } = index.getService('content-types');
|
|
38
|
+
Object.values(strapi.contentTypes).forEach((contentType)=>{
|
|
39
|
+
const { attributes } = contentType;
|
|
40
|
+
const isLocalized = isLocalizedContentType(contentType);
|
|
41
|
+
_.set(attributes, 'locale', {
|
|
42
|
+
writable: true,
|
|
43
|
+
private: !isLocalized,
|
|
44
|
+
configurable: false,
|
|
45
|
+
visible: false,
|
|
46
|
+
type: 'string'
|
|
47
|
+
});
|
|
48
|
+
_.set(attributes, 'localizations', {
|
|
49
|
+
type: 'relation',
|
|
50
|
+
relation: 'oneToMany',
|
|
51
|
+
target: contentType.uid,
|
|
52
|
+
writable: false,
|
|
53
|
+
private: !isLocalized,
|
|
54
|
+
configurable: false,
|
|
55
|
+
visible: false,
|
|
56
|
+
unstable_virtual: true,
|
|
57
|
+
joinColumn: {
|
|
58
|
+
name: 'document_id',
|
|
59
|
+
referencedColumn: 'document_id',
|
|
60
|
+
referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName),
|
|
61
|
+
// ensure the population will not include the results we already loaded
|
|
62
|
+
on ({ results }) {
|
|
63
|
+
return {
|
|
64
|
+
id: {
|
|
65
|
+
$notIn: results.map((r)=>r.id)
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
if (strapi.plugin('graphql')) {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
74
|
+
graphql({
|
|
75
|
+
strapi
|
|
76
|
+
}).register();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
module.exports = register;
|
|
81
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","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';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\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","get","add","aiLocalizationJob","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":";;;;;;;;AAQA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvDA,IAAAA,MAAAA,CAAOC,GAAG,CAAC,QAAUC,CAAAA,CAAAA,GAAG,CAACC,mCAAAA,CAAAA;IAEzBC,kBAAmBJ,CAAAA,MAAAA,CAAAA;IACnBK,iCAAkCL,CAAAA,MAAAA,CAAAA;AACpC,CAAA;AAEA;AACA;;;IAIA,MAAMK,oCAAoC,CAACL,MAAAA,GAAAA;IACzCA,MAAOM,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;IAEAV,MAAOM,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,CAACJ,MAAAA,GAAAA;AAC1B,IAAA,MAAM,EAAEa,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;AAE9CC,IAAAA,MAAAA,CAAOC,MAAM,CAAChB,MAAAA,CAAOiB,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,eAAiBpC,EAAAA,MAAAA,CAAOqC,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,IAAI5C,MAAAA,CAAOgD,MAAM,CAAC,SAAY,CAAA,EAAA;;QAE5BC,OAAgB,CAAA;AAAEjD,YAAAA;AAAO,SAAA,CAAA,CAAGkD,QAAQ,EAAA;AACtC;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
import { aiLocalizationJob } from './models/ai-localization-job.mjs';
|
|
6
|
+
|
|
7
|
+
var register = (async ({ strapi })=>{
|
|
8
|
+
strapi.get('models').add(aiLocalizationJob);
|
|
9
|
+
extendContentTypes(strapi);
|
|
10
|
+
addContentManagerLocaleMiddleware(strapi);
|
|
11
|
+
});
|
|
12
|
+
// TODO: v5 if implemented in the CM => delete this middleware
|
|
13
|
+
/**
|
|
14
|
+
* Adds middleware on CM creation routes to use i18n locale passed in a specific param
|
|
15
|
+
* @param {Strapi} strapi
|
|
16
|
+
*/ const addContentManagerLocaleMiddleware = (strapi)=>{
|
|
17
|
+
strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next)=>{
|
|
18
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
|
19
|
+
return validateLocaleCreation(ctx, next);
|
|
20
|
+
}
|
|
21
|
+
return next();
|
|
22
|
+
});
|
|
23
|
+
strapi.server.router.use('/content-manager/single-types/:model', (ctx, next)=>{
|
|
24
|
+
if (ctx.method === 'POST' || ctx.method === 'PUT') {
|
|
25
|
+
return validateLocaleCreation(ctx, next);
|
|
26
|
+
}
|
|
27
|
+
return next();
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Adds locale and localization fields to all content types
|
|
32
|
+
* Even if content type is not localized, it will have these fields
|
|
33
|
+
* @param {Strapi} strapi
|
|
34
|
+
*/ const extendContentTypes = (strapi)=>{
|
|
35
|
+
const { isLocalizedContentType } = getService('content-types');
|
|
36
|
+
Object.values(strapi.contentTypes).forEach((contentType)=>{
|
|
37
|
+
const { attributes } = contentType;
|
|
38
|
+
const isLocalized = isLocalizedContentType(contentType);
|
|
39
|
+
_.set(attributes, 'locale', {
|
|
40
|
+
writable: true,
|
|
41
|
+
private: !isLocalized,
|
|
42
|
+
configurable: false,
|
|
43
|
+
visible: false,
|
|
44
|
+
type: 'string'
|
|
45
|
+
});
|
|
46
|
+
_.set(attributes, 'localizations', {
|
|
47
|
+
type: 'relation',
|
|
48
|
+
relation: 'oneToMany',
|
|
49
|
+
target: contentType.uid,
|
|
50
|
+
writable: false,
|
|
51
|
+
private: !isLocalized,
|
|
52
|
+
configurable: false,
|
|
53
|
+
visible: false,
|
|
54
|
+
unstable_virtual: true,
|
|
55
|
+
joinColumn: {
|
|
56
|
+
name: 'document_id',
|
|
57
|
+
referencedColumn: 'document_id',
|
|
58
|
+
referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName),
|
|
59
|
+
// ensure the population will not include the results we already loaded
|
|
60
|
+
on ({ results }) {
|
|
61
|
+
return {
|
|
62
|
+
id: {
|
|
63
|
+
$notIn: results.map((r)=>r.id)
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
if (strapi.plugin('graphql')) {
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
72
|
+
graphqlProvider({
|
|
73
|
+
strapi
|
|
74
|
+
}).register();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { register as default };
|
|
79
|
+
//# 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';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\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","get","add","aiLocalizationJob","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":";;;;;;AAQA,eAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;AACvDA,IAAAA,MAAAA,CAAOC,GAAG,CAAC,QAAUC,CAAAA,CAAAA,GAAG,CAACC,iBAAAA,CAAAA;IAEzBC,kBAAmBJ,CAAAA,MAAAA,CAAAA;IACnBK,iCAAkCL,CAAAA,MAAAA,CAAAA;AACpC,CAAA;AAEA;AACA;;;IAIA,MAAMK,oCAAoC,CAACL,MAAAA,GAAAA;IACzCA,MAAOM,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;IAEAV,MAAOM,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,CAACJ,MAAAA,GAAAA;AAC1B,IAAA,MAAM,EAAEa,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;AAE9CC,IAAAA,MAAAA,CAAOC,MAAM,CAAChB,MAAAA,CAAOiB,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,eAAiBpC,EAAAA,MAAAA,CAAOqC,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,IAAI5C,MAAAA,CAAOgD,MAAM,CAAC,SAAY,CAAA,EAAA;;QAE5BC,eAAgB,CAAA;AAAEjD,YAAAA;AAAO,SAAA,CAAA,CAAGkD,QAAQ,EAAA;AACtC;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,142 @@
|
|
|
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
|
+
method: 'GET',
|
|
100
|
+
path: '/settings',
|
|
101
|
+
handler: 'settings.getSettings',
|
|
102
|
+
config: {
|
|
103
|
+
policies: [
|
|
104
|
+
'admin::isAuthenticatedAdmin'
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
method: 'PUT',
|
|
110
|
+
path: '/settings',
|
|
111
|
+
handler: 'settings.updateSettings',
|
|
112
|
+
config: {
|
|
113
|
+
policies: [
|
|
114
|
+
'admin::isAuthenticatedAdmin'
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
method: 'GET',
|
|
120
|
+
path: '/ai-localization-jobs/collection-types/:contentType/:documentId',
|
|
121
|
+
handler: 'ai-localization-jobs.getJobForCollectionType',
|
|
122
|
+
config: {
|
|
123
|
+
policies: [
|
|
124
|
+
'admin::isAuthenticatedAdmin'
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
method: 'GET',
|
|
130
|
+
path: '/ai-localization-jobs/single-types/:contentType',
|
|
131
|
+
handler: 'ai-localization-jobs.getJobForSingleType',
|
|
132
|
+
config: {
|
|
133
|
+
policies: [
|
|
134
|
+
'admin::isAuthenticatedAdmin'
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
module.exports = admin;
|
|
142
|
+
//# sourceMappingURL=admin.js.map
|