@localazy/strapi-plugin 0.2.12 → 1.0.0-beta.0
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/README.md +3 -1
- package/dist/_chunks/App-BSFfgZKU.mjs +5278 -0
- package/dist/_chunks/App-D1QaIMHX.js +5278 -0
- package/dist/_chunks/ContentTransferSetup-DHXJIxAp.js +1552 -0
- package/dist/_chunks/ContentTransferSetup-DtjcF_jM.mjs +1550 -0
- package/dist/_chunks/GlobalSettings-BON3kjHK.js +228 -0
- package/dist/_chunks/GlobalSettings-BcdibqNS.mjs +228 -0
- package/dist/_chunks/LanguagesSelector-BeijBEjg.js +47 -0
- package/dist/_chunks/LanguagesSelector-fyAIUp7M.mjs +48 -0
- package/dist/_chunks/en-BTf8goGM.mjs +8 -0
- package/dist/_chunks/en-CRtsEFtl.js +8 -0
- package/dist/_chunks/fr-C8Qw4iPZ.js +4 -0
- package/dist/_chunks/fr-hkSxFuzl.mjs +4 -0
- package/dist/_chunks/has-model-changed-BMCQX2Dd.js +316 -0
- package/dist/_chunks/has-model-changed-Dvtzpc9v.mjs +317 -0
- package/dist/_chunks/index-BQw2qi2G.js +2679 -0
- package/dist/_chunks/index-CN3Gyh5F.mjs +2678 -0
- package/dist/_chunks/isEqual-B-YVnzrp.js +205 -0
- package/dist/_chunks/isEqual-CEyT97-3.mjs +206 -0
- package/dist/_chunks/set-DUdH3vE5.js +54557 -0
- package/dist/_chunks/set-DulHAQhq.mjs +54542 -0
- package/dist/admin/index.js +4 -0
- package/dist/admin/index.mjs +5 -0
- package/dist/admin/src/components/Initializer.d.ts +5 -0
- package/dist/admin/src/config/development/index.d.ts +15 -0
- package/dist/admin/src/config/example/index.example.d.ts +15 -0
- package/dist/admin/src/config/index.d.ts +15 -0
- package/dist/admin/src/config/local/index.d.ts +15 -0
- package/dist/admin/src/config/production/index.d.ts +15 -0
- package/dist/admin/src/i18n.d.ts +2 -0
- package/dist/admin/src/index.d.ts +10 -0
- package/dist/admin/src/modules/@common/api/strapi-api-base.d.ts +6 -0
- package/dist/admin/src/modules/@common/components/Icons/House.d.ts +2 -0
- package/dist/admin/src/modules/@common/components/Icons/Localazy.d.ts +2 -0
- package/dist/admin/src/modules/@common/components/LanguagesSelector.d.ts +11 -0
- package/dist/admin/src/modules/@common/components/PluginPageLoader.d.ts +2 -0
- package/dist/admin/src/modules/@common/components/SideNav.d.ts +2 -0
- package/dist/admin/src/modules/@common/components/TransferReport.d.ts +5 -0
- package/dist/admin/src/modules/@common/functions/flatten-deep.d.ts +2 -0
- package/dist/admin/src/modules/@common/locale/en.d.ts +14 -0
- package/dist/admin/src/modules/@common/models/supported-content-type-fields.d.ts +2 -0
- package/dist/admin/src/modules/@common/models/supported-custom-field-plugins.d.ts +2 -0
- package/dist/admin/src/modules/@common/services/i18n-service.d.ts +3 -0
- package/dist/admin/src/modules/@common/services/plugin.service.d.ts +3 -0
- package/dist/admin/src/modules/@common/services/product-analytics-service.d.ts +14 -0
- package/dist/admin/src/modules/@common/services/project-service.d.ts +4 -0
- package/dist/admin/src/modules/@common/services/user-service.d.ts +5 -0
- package/dist/admin/src/modules/@common/utils/are-locales-compatible.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/format-number.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/get-default-locale.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/history.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/is-plugin-route.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/iso-locales-utils.d.ts +3 -0
- package/dist/admin/src/modules/@common/utils/redirect-to-plugin-route.d.ts +13 -0
- package/dist/admin/src/modules/@common/utils/sort-by-model-name.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/use-header-subtitle.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/use-header-title.d.ts +2 -0
- package/dist/admin/src/modules/@common/utils/use-nav.d.ts +11 -0
- package/dist/admin/src/modules/alerts/constants/channels.d.ts +1 -0
- package/dist/admin/src/modules/alerts/constants/events.d.ts +4 -0
- package/dist/admin/src/modules/alerts/services/alerts-service.d.ts +8 -0
- package/dist/admin/src/modules/localazy-download/locale/en.d.ts +24 -0
- package/dist/admin/src/modules/localazy-download/services/download-alerts-service.d.ts +5 -0
- package/dist/admin/src/modules/localazy-download/services/localazy-download-service.d.ts +3 -0
- package/dist/admin/src/modules/localazy-upload/components/ReadDocsButton.d.ts +3 -0
- package/dist/admin/src/modules/localazy-upload/locale/en.d.ts +19 -0
- package/dist/admin/src/modules/localazy-upload/services/localazy-upload-service.d.ts +3 -0
- package/dist/admin/src/modules/localazy-upload/services/upload-alerts-service.d.ts +5 -0
- package/dist/admin/src/modules/login/components/FetchIdentity.d.ts +3 -0
- package/dist/admin/src/modules/login/components/LoginButton.d.ts +12 -0
- package/dist/admin/src/modules/login/components/LogoutButton.d.ts +6 -0
- package/dist/admin/src/modules/login/locale/en.d.ts +8 -0
- package/dist/admin/src/modules/login/services/localazy-login-service.d.ts +4 -0
- package/dist/admin/src/modules/overview/components/OverviewItem.d.ts +7 -0
- package/dist/admin/src/modules/overview/components/OverviewItemLink.d.ts +7 -0
- package/dist/admin/src/modules/overview/components/PrerequisitiesInfo.d.ts +3 -0
- package/dist/admin/src/modules/overview/locale/en.d.ts +14 -0
- package/dist/admin/src/modules/plugin-settings/components/ContentTransferSetupEmpty.d.ts +2 -0
- package/dist/admin/src/modules/plugin-settings/components/Tree.d.ts +8 -0
- package/dist/admin/src/modules/plugin-settings/components/TreeItem.d.ts +10 -0
- package/dist/admin/src/modules/plugin-settings/functions/build-content-transfer-setup-schema.d.ts +2 -0
- package/dist/admin/src/modules/plugin-settings/functions/get-content-transfer-setup-keys-sets.d.ts +8 -0
- package/dist/admin/src/modules/plugin-settings/functions/has-model-changed.d.ts +6 -0
- package/dist/admin/src/modules/plugin-settings/locale/en.d.ts +49 -0
- package/dist/admin/src/modules/plugin-settings/services/plugin-settings-service.d.ts +6 -0
- package/dist/admin/src/modules/plugin-settings/services/strapi-model-service.d.ts +4 -0
- package/dist/admin/src/modules/plugin-settings/services/strapi-users-service.d.ts +3 -0
- package/dist/admin/src/modules/plugin-settings/utils/array-of-models-to-object.d.ts +2 -0
- package/dist/admin/src/modules/plugin-settings/utils/find-model-value-by-key.d.ts +2 -0
- package/dist/admin/src/modules/plugin-settings/utils/get-filtered-models-schemas.d.ts +7 -0
- package/dist/admin/src/modules/plugin-settings/utils/get-models-tree.d.ts +5 -0
- package/dist/admin/src/modules/strapi/utils/get-default-theme.d.ts +3 -0
- package/dist/admin/src/modules/user/model/localazy-identity.d.ts +15 -0
- package/dist/admin/src/modules/user/services/localazy-user-service.d.ts +6 -0
- package/dist/admin/src/pages/App.d.ts +3 -0
- package/dist/admin/src/pages/ContentTransferSetup.d.ts +4 -0
- package/dist/admin/src/pages/Download.d.ts +7 -0
- package/dist/admin/src/pages/GlobalSettings.d.ts +4 -0
- package/dist/admin/src/pages/HomePage.d.ts +2 -0
- package/dist/admin/src/pages/Login.d.ts +8 -0
- package/dist/admin/src/pages/Overview.d.ts +8 -0
- package/dist/admin/src/pages/Upload.d.ts +7 -0
- package/dist/admin/src/pluginId.d.ts +2 -0
- package/dist/admin/src/plugins/generic-connector-client.d.ts +3 -0
- package/dist/admin/src/state/localazy-identity.d.ts +13 -0
- package/dist/admin/src/utils/getTranslation.d.ts +2 -0
- package/dist/server/index.js +26000 -0
- package/dist/server/index.mjs +25989 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/config/core/config.d.ts +1 -0
- package/dist/server/src/config/development/index.d.ts +15 -0
- package/dist/server/src/config/example/index.example.d.ts +15 -0
- package/dist/server/src/config/index.d.ts +18 -0
- package/dist/server/src/config/local/index.d.ts +15 -0
- package/dist/server/src/config/production/index.d.ts +15 -0
- package/dist/server/src/constants/channels.d.ts +3 -0
- package/dist/server/src/constants/events.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts +2 -0
- package/dist/server/src/controllers/index.d.ts +43 -0
- package/dist/server/src/controllers/localazy-auth-controller.d.ts +8 -0
- package/dist/server/src/controllers/localazy-project-controller.d.ts +7 -0
- package/dist/server/src/controllers/localazy-transfer-controller.d.ts +8 -0
- package/dist/server/src/controllers/localazy-user-controller.d.ts +9 -0
- package/dist/server/src/controllers/plugin-settings-controller.d.ts +10 -0
- package/dist/server/src/controllers/strapi-controller.d.ts +10 -0
- package/dist/server/src/core/index.d.ts +71 -0
- package/dist/server/src/db/model/content-transfer-setup.d.ts +4 -0
- package/dist/server/src/db/model/localazy-user.d.ts +17 -0
- package/dist/server/src/db/model/plugin-settings.d.ts +5 -0
- package/dist/server/src/db/model/utils/get-strapi-store.d.ts +26 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/functions/should-set-downloaded-property.d.ts +12 -0
- package/dist/server/src/index.d.ts +189 -0
- package/dist/server/src/lifecycles/deep-populate-hook.d.ts +20 -0
- package/dist/server/src/lifecycles/deprecate-event-entry-in-localazy-hook.d.ts +4 -0
- package/dist/server/src/lifecycles/upload-event-entry-to-localazy-hook.d.ts +12 -0
- package/dist/server/src/middlewares/index.d.ts +2 -0
- package/dist/server/src/models/plugin/content-transfer-setup.d.ts +13 -0
- package/dist/server/src/models/strapi/locale.d.ts +8 -0
- package/dist/server/src/policies/index.d.ts +2 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/routes/index.d.ts +25 -0
- package/dist/server/src/routes/localazy-auth-routes.d.ts +9 -0
- package/dist/server/src/routes/localazy-project-routes.d.ts +9 -0
- package/dist/server/src/routes/localazy-transfer-routes.d.ts +9 -0
- package/dist/server/src/routes/localazy-user-routes.d.ts +9 -0
- package/dist/server/src/routes/plugin-settings-routes.d.ts +9 -0
- package/dist/server/src/routes/strapi-routes.d.ts +9 -0
- package/dist/server/src/services/helpers/job-notification-service.d.ts +14 -0
- package/dist/server/src/services/helpers/plugin-settings-service-helper.d.ts +16 -0
- package/dist/server/src/services/index.d.ts +92 -0
- package/dist/server/src/services/localazy-pubapi-service.d.ts +12 -0
- package/dist/server/src/services/localazy-transfer-download-service.d.ts +11 -0
- package/dist/server/src/services/localazy-transfer-upload-service.d.ts +11 -0
- package/dist/server/src/services/localazy-upload-service.d.ts +28 -0
- package/dist/server/src/services/localazy-user-service.d.ts +11 -0
- package/dist/server/src/services/plugin-settings-service.d.ts +16 -0
- package/dist/server/src/services/strapi-i18n-service.d.ts +19 -0
- package/dist/server/src/services/strapi-localazy-i18n-service.d.ts +9 -0
- package/dist/server/src/services/strapi-service.d.ts +10 -0
- package/dist/server/src/utils/delay.d.ts +1 -0
- package/dist/server/src/utils/drop-property-deep.d.ts +1 -0
- package/dist/server/src/utils/flatten-object.d.ts +2 -0
- package/dist/server/src/utils/generate-random-id.d.ts +2 -0
- package/dist/server/src/utils/get-full-populate-localazy-download-object.d.ts +17 -0
- package/dist/server/src/utils/get-full-populate-localazy-upload-object.d.ts +9 -0
- package/dist/server/src/utils/get-full-populate-object.d.ts +17 -0
- package/dist/server/src/utils/get-main-keys-of-nested-array-objects.d.ts +2 -0
- package/dist/server/src/utils/get-picked-flatten-keys-for-hook-entry.d.ts +5 -0
- package/dist/server/src/utils/intl-display-name.d.ts +1 -0
- package/dist/server/src/utils/is-generally-applicable-content-type.d.ts +2 -0
- package/dist/server/src/utils/is-localazy-applicable-content-type.d.ts +2 -0
- package/dist/server/src/utils/iso-locales-utils.d.ts +3 -0
- package/dist/server/src/utils/localazy-api-client-factory.d.ts +3 -0
- package/dist/server/src/utils/localazy-generic-connector-client-factory.d.ts +3 -0
- package/dist/server/src/utils/model-utils.d.ts +7 -0
- package/dist/server/src/utils/omit-deep.d.ts +2 -0
- package/dist/server/src/utils/parsed-localazy-entry-to-create-entry.d.ts +7 -0
- package/dist/server/src/utils/parsed-localazy-entry-to-update-entry.d.ts +1 -0
- package/dist/server/src/utils/pick-entries.d.ts +2 -0
- package/dist/server/src/utils/populate-create-update-entry-with-base-entry.d.ts +1 -0
- package/dist/server/src/utils/request-initiator-helper.d.ts +9 -0
- package/dist/server/src/utils/reset-array-keys-deep.d.ts +1 -0
- package/dist/server/src/utils/transfer-setup-utils.d.ts +7 -0
- package/install/index.mjs +88 -34
- package/install/vite.config.example.js +40 -0
- package/install/vite.config.example.ts +41 -0
- package/install/{webpack.example.js → webpack.config.example.js} +2 -2
- package/install/webpack.config.example.ts +30 -0
- package/package.json +93 -55
- package/.babelrc +0 -7
- package/.eslintrc +0 -13
- package/.github/workflows/qa.yml +0 -25
- package/.github/workflows/release.yml +0 -46
- package/.nvmrc +0 -1
- package/.strapi-updater.json +0 -4
- package/CHANGELOG.md +0 -60
- package/LICENSE +0 -21
- package/admin/src/components/Initializer/index.js +0 -26
- package/admin/src/components/PluginIcon/index.js +0 -14
- package/admin/src/config/development/index.js +0 -14
- package/admin/src/config/example/index.js +0 -14
- package/admin/src/config/index.js +0 -19
- package/admin/src/config/local/index.js +0 -14
- package/admin/src/config/production/index.js +0 -15
- package/admin/src/i18n.js +0 -41
- package/admin/src/index.js +0 -138
- package/admin/src/modules/@common/components/Icons/Localazy/index.js +0 -12
- package/admin/src/modules/@common/components/LanguagesSelector/index.js +0 -67
- package/admin/src/modules/@common/components/PluginPageLoader/index.js +0 -20
- package/admin/src/modules/@common/components/SideNav/index.js +0 -46
- package/admin/src/modules/@common/components/TransferReport/index.js +0 -53
- package/admin/src/modules/@common/locale/en.js +0 -14
- package/admin/src/modules/@common/models/supported-content-type-fields.js +0 -9
- package/admin/src/modules/@common/models/supported-custom-field-plugins.js +0 -6
- package/admin/src/modules/@common/services/i18n-service.js +0 -15
- package/admin/src/modules/@common/services/plugin.service.js +0 -16
- package/admin/src/modules/@common/services/product-analytics-service.js +0 -86
- package/admin/src/modules/@common/services/project-service.js +0 -15
- package/admin/src/modules/@common/services/user-service.js +0 -38
- package/admin/src/modules/@common/utils/__tests__/iso-locales-utils.test.js +0 -102
- package/admin/src/modules/@common/utils/are-locales-compatible.js +0 -42
- package/admin/src/modules/@common/utils/format-number.js +0 -1
- package/admin/src/modules/@common/utils/functions/flatten-deep.js +0 -23
- package/admin/src/modules/@common/utils/get-default-locale.js +0 -32
- package/admin/src/modules/@common/utils/get-header-subtitle.js +0 -21
- package/admin/src/modules/@common/utils/get-header-title.js +0 -24
- package/admin/src/modules/@common/utils/get-nav.js +0 -35
- package/admin/src/modules/@common/utils/history.js +0 -6
- package/admin/src/modules/@common/utils/is-plugin-route.js +0 -15
- package/admin/src/modules/@common/utils/iso-locales-utils.js +0 -58
- package/admin/src/modules/@common/utils/redirect-to-plugin-route.js +0 -22
- package/admin/src/modules/@common/utils/sort-by-model-name.js +0 -10
- package/admin/src/modules/alerts/constants/channels.js +0 -1
- package/admin/src/modules/alerts/constants/events.js +0 -4
- package/admin/src/modules/alerts/services/alerts-service.js +0 -41
- package/admin/src/modules/localazy-download/locale/en.js +0 -25
- package/admin/src/modules/localazy-download/services/download-alerts-service.js +0 -12
- package/admin/src/modules/localazy-download/services/localazy-download-service.js +0 -16
- package/admin/src/modules/localazy-upload/components/ReadDocsButton.js +0 -20
- package/admin/src/modules/localazy-upload/locale/en.js +0 -20
- package/admin/src/modules/localazy-upload/services/localazy-upload-service.js +0 -16
- package/admin/src/modules/localazy-upload/services/upload-alerts-service.js +0 -12
- package/admin/src/modules/login/components/LoginButton/index.js +0 -55
- package/admin/src/modules/login/components/LogoutButton/index.js +0 -49
- package/admin/src/modules/login/locale/en.js +0 -7
- package/admin/src/modules/login/services/localazy-login-service.js +0 -29
- package/admin/src/modules/plugin-settings/components/ContentTransferSetup/index.js +0 -308
- package/admin/src/modules/plugin-settings/components/ContentTransferSetupEmpty/index.js +0 -86
- package/admin/src/modules/plugin-settings/components/GlobalSettings/index.js +0 -269
- package/admin/src/modules/plugin-settings/components/Tree/index.js +0 -145
- package/admin/src/modules/plugin-settings/components/TreeItem/index.js +0 -48
- package/admin/src/modules/plugin-settings/functions/build-content-transfer-setup-schema.js +0 -57
- package/admin/src/modules/plugin-settings/functions/get-content-transfer-setup-keys-sets.js +0 -85
- package/admin/src/modules/plugin-settings/functions/has-model-changed.js +0 -75
- package/admin/src/modules/plugin-settings/locale/en.js +0 -61
- package/admin/src/modules/plugin-settings/services/plugin-settings-service.js +0 -55
- package/admin/src/modules/plugin-settings/services/strapi-model-service.js +0 -26
- package/admin/src/modules/plugin-settings/services/strapi-users-service.js +0 -26
- package/admin/src/modules/plugin-settings/utils/__tests__/get-models-tree.test.js +0 -135
- package/admin/src/modules/plugin-settings/utils/array-of-models-to-object.js +0 -6
- package/admin/src/modules/plugin-settings/utils/find-model-value-by-key.js +0 -8
- package/admin/src/modules/plugin-settings/utils/get-filtered-models-schemas.js +0 -31
- package/admin/src/modules/plugin-settings/utils/get-models-tree.js +0 -94
- package/admin/src/modules/settings/components/OverviewItem/index.js +0 -44
- package/admin/src/modules/settings/components/OverviewItemLink/index.js +0 -34
- package/admin/src/modules/settings/components/PrerequisitiesInfo/index.js +0 -28
- package/admin/src/modules/settings/locale/en.js +0 -13
- package/admin/src/modules/user/model/localazy-identity.js +0 -14
- package/admin/src/modules/user/services/localazy-user-service.js +0 -38
- package/admin/src/pages/App/index.js +0 -154
- package/admin/src/pages/Download/index.js +0 -280
- package/admin/src/pages/Index/index.js +0 -8
- package/admin/src/pages/Login/index.js +0 -109
- package/admin/src/pages/PluginSettings/index.js +0 -56
- package/admin/src/pages/Settings/index.js +0 -132
- package/admin/src/pages/Upload/index.js +0 -241
- package/admin/src/pluginId.js +0 -5
- package/admin/src/plugins/generic-connector-client.js +0 -9
- package/admin/src/state/localazy-identity.js +0 -29
- package/admin/src/tests/fixtures/all-models.js +0 -877
- package/admin/src/tests/fixtures/restaurant-model.js +0 -230
- package/admin/src/translations/en.json +0 -4
- package/admin/src/translations/fr.json +0 -1
- package/admin/src/utils/createAxiosInstance.js +0 -54
- package/admin/src/utils/getTrad.js +0 -5
- package/jest.config.js +0 -0
- package/server/bootstrap.js +0 -63
- package/server/config/development/index.js +0 -16
- package/server/config/example/index.js +0 -16
- package/server/config/index.js +0 -20
- package/server/config/local/index.js +0 -16
- package/server/config/production/index.js +0 -17
- package/server/config/schema.graphql.js +0 -21
- package/server/constants/channels.js +0 -3
- package/server/constants/events.js +0 -6
- package/server/content-types/index.js +0 -3
- package/server/controllers/index.js +0 -17
- package/server/controllers/localazy-auth-controller.js +0 -22
- package/server/controllers/localazy-project-controller.js +0 -21
- package/server/controllers/localazy-transfer-controller.js +0 -62
- package/server/controllers/localazy-user-controller.js +0 -24
- package/server/controllers/plugin-settings-controller.js +0 -31
- package/server/controllers/strapi-controller.js +0 -27
- package/server/db/model/content-transfer-setup.js +0 -13
- package/server/db/model/localazy-user.js +0 -23
- package/server/db/model/plugin-settings.js +0 -13
- package/server/db/model/utils/get-strapi-store.js +0 -9
- package/server/destroy.js +0 -5
- package/server/functions/should-set-downloaded-property.js +0 -94
- package/server/index.js +0 -25
- package/server/lifecycles/deep-populate-hook.js +0 -12
- package/server/lifecycles/deprecate-event-entry-in-localazy-hook.js +0 -73
- package/server/lifecycles/upload-event-entry-to-localazy-hook.js +0 -36
- package/server/middlewares/index.js +0 -7
- package/server/middlewares/verify-webhook.js +0 -77
- package/server/models/supported-content-type-fields.js +0 -9
- package/server/models/supported-custom-field-plugins.js +0 -6
- package/server/policies/index.js +0 -3
- package/server/register.js +0 -5
- package/server/routes/index.js +0 -28
- package/server/routes/localazy-auth.js +0 -22
- package/server/routes/localazy-project.js +0 -14
- package/server/routes/localazy-public-transfer.js +0 -20
- package/server/routes/localazy-transfer.js +0 -22
- package/server/routes/localazy-user.js +0 -30
- package/server/routes/plugin-settings.js +0 -38
- package/server/routes/strapi.js +0 -38
- package/server/services/helpers/job-notification-service.js +0 -30
- package/server/services/helpers/plugin-settings-service-helper.js +0 -52
- package/server/services/index.js +0 -23
- package/server/services/localazy-pubapi-service.js +0 -53
- package/server/services/localazy-transfer-download-service.js +0 -445
- package/server/services/localazy-transfer-upload-service.js +0 -178
- package/server/services/localazy-upload-service.js +0 -52
- package/server/services/localazy-user-service.js +0 -29
- package/server/services/plugin-settings-service.js +0 -53
- package/server/services/strapi-i18n-service.js +0 -151
- package/server/services/strapi-localazy-i18n-service.js +0 -130
- package/server/services/strapi-service.js +0 -26
- package/server/tests/fixtures/all-models.js +0 -869
- package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-cookbook.js +0 -5761
- package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-lesson-dz.js +0 -402
- package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-page-dz.js +0 -658
- package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-restaurant-simple-menu.js +0 -536
- package/server/tests/fixtures/parsed-localazy-entry-to-update-entry.js +0 -35157
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-cookbook-empty-recipes.js +0 -202
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-cookbook.js +0 -2700
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-lesson-dz.js +0 -309
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-flat-simple.js +0 -47
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-flat-with-media.js +0 -169
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-menu-empty.js +0 -3003
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-menu-with-media.js +0 -2057
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-sample-json-dz.js +0 -884
- package/server/tests/fixtures/populate-create-update-entry-with-base-entry-sample-json.js +0 -46
- package/server/tests/fixtures/strapi-plugin-all-models.js +0 -7000
- package/server/utils/__tests__/build-populate.test.js +0 -85
- package/server/utils/__tests__/flatten-object.test.js +0 -171
- package/server/utils/__tests__/get-models-tree.test.js +0 -170
- package/server/utils/__tests__/iso-locales-utils.test.js +0 -104
- package/server/utils/__tests__/parsed-localazy-entry-to-create-entry.test.js +0 -258
- package/server/utils/__tests__/parsed-localazy-entry-to-update-entry.test.js +0 -456
- package/server/utils/__tests__/pick-entries.test.js +0 -963
- package/server/utils/__tests__/populate-create-update-entry-with-base-entry.test.js +0 -1176
- package/server/utils/build-populate.js +0 -48
- package/server/utils/delay.js +0 -6
- package/server/utils/flatten-object.js +0 -61
- package/server/utils/generate-random-id.js +0 -3
- package/server/utils/get-full-populate-object.js +0 -66
- package/server/utils/get-main-keys-of-nested-array-objects.js +0 -5
- package/server/utils/get-models-tree.js +0 -47
- package/server/utils/get-picked-flatten-keys-for-hook-entry.js +0 -270
- package/server/utils/intl-display-name.js +0 -4
- package/server/utils/is-generally-applicable-content-type.js +0 -33
- package/server/utils/is-localazy-applicable-content-type.js +0 -36
- package/server/utils/iso-locales-utils.js +0 -60
- package/server/utils/localazy-api-client-factory.js +0 -22
- package/server/utils/localazy-generic-connector-client-factory.js +0 -15
- package/server/utils/model-utils.js +0 -43
- package/server/utils/objectivise-entry.js +0 -41
- package/server/utils/omit-deep.js +0 -24
- package/server/utils/parsed-localazy-entry-to-create-entry.js +0 -194
- package/server/utils/parsed-localazy-entry-to-update-entry.js +0 -83
- package/server/utils/pick-deep.js +0 -22
- package/server/utils/pick-entries.js +0 -37
- package/server/utils/populate-create-update-entry-with-base-entry.js +0 -264
- package/server/utils/request-initiator-helper.js +0 -36
- package/server/utils/reset-array-keys-deep.js +0 -19
- package/server/utils/transfer-setup-utils.js +0 -93
- package/strapi-admin.js +0 -14
- package/strapi-server.js +0 -5
- package/test/helpers/mocks.js +0 -9
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const { LOCALAZY_PLUGIN_CHANNEL } = require('../../constants/channels');
|
|
4
|
-
const generateRandomId = require('../../utils/generate-random-id');
|
|
5
|
-
|
|
6
|
-
class JobNotificationService {
|
|
7
|
-
_strapio;
|
|
8
|
-
_channel;
|
|
9
|
-
_jobStreamIdentifier;
|
|
10
|
-
constructor(strapio) {
|
|
11
|
-
this._strapio = strapio;
|
|
12
|
-
this._channel = LOCALAZY_PLUGIN_CHANNEL;
|
|
13
|
-
this._jobStreamIdentifier = generateRandomId();
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
setChannel(channel) {
|
|
17
|
-
this._channel = channel;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
getStreamIdentifier() {
|
|
21
|
-
return this._jobStreamIdentifier;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async emit(event, data) {
|
|
25
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
26
|
-
this._strapio.emitRaw(this._channel, `${event}:${this._jobStreamIdentifier}`, data);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
module.exports = JobNotificationService;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
class PluginSettingsServiceHelper {
|
|
4
|
-
constructor(strapi) {
|
|
5
|
-
this.strapi = strapi;
|
|
6
|
-
this.pluginSettingsService = strapi.plugin("localazy").service("pluginSettingsService");
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
async setup() {
|
|
10
|
-
this.pluginSettings = await this.pluginSettingsService.getPluginSettings();
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
shouldAllowAutomatedUpload() {
|
|
14
|
-
return typeof this.pluginSettings?.upload?.allowAutomated === "boolean" ? this.pluginSettings.upload.allowAutomated : false;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
shouldAllowAutomatedCreatedTrigger() {
|
|
18
|
-
const automatedTriggers = this.getAutomatedUploadTriggers();
|
|
19
|
-
return this.shouldAllowAutomatedUpload() && automatedTriggers.includes("created");
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
shouldAllowAutomatedUpdatedTrigger() {
|
|
23
|
-
const automatedTriggers = this.getAutomatedUploadTriggers();
|
|
24
|
-
return this.shouldAllowAutomatedUpload() && automatedTriggers.includes("updated");
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
getAutomatedUploadTriggers() {
|
|
28
|
-
return this.pluginSettings?.upload?.automatedTriggers || [];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
shouldAllowDeprecateOnDeletion() {
|
|
32
|
-
return typeof this.pluginSettings?.upload?.allowDeprecate === "boolean" ? this.pluginSettings.upload.allowDeprecate : false;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
shouldAllowWebhookDownloadProcess() {
|
|
36
|
-
return typeof this.pluginSettings?.download?.processDownloadWebhook === "boolean" ? this.pluginSettings.download.processDownloadWebhook : true;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
getWebhookAuthorId() {
|
|
40
|
-
return this.pluginSettings?.download?.webhookAuthorId || null;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
getWebhookLanguagesCodes() {
|
|
44
|
-
return this.pluginSettings?.download?.webhookLanguages || [];
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
getUiLanguagesCodes() {
|
|
48
|
-
return this.pluginSettings?.download?.uiLanguages || [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
module.exports = PluginSettingsServiceHelper;
|
package/server/services/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const localazyUserService = require("./localazy-user-service");
|
|
4
|
-
const strapiService = require("./strapi-service");
|
|
5
|
-
const pluginSettingsService = require("./plugin-settings-service");
|
|
6
|
-
const localazyUploadService = require("./localazy-upload-service");
|
|
7
|
-
const localazyPubApiService = require("./localazy-pubapi-service");
|
|
8
|
-
const strapiI18nService = require("./strapi-i18n-service");
|
|
9
|
-
const strapiLocalazyI18nService = require("./strapi-localazy-i18n-service");
|
|
10
|
-
const localazyTransferUploadService = require("./localazy-transfer-upload-service");
|
|
11
|
-
const localazyTransferDownloadService = require("./localazy-transfer-download-service");
|
|
12
|
-
|
|
13
|
-
module.exports = {
|
|
14
|
-
localazyUserService,
|
|
15
|
-
strapiService,
|
|
16
|
-
pluginSettingsService,
|
|
17
|
-
localazyUploadService,
|
|
18
|
-
localazyPubApiService,
|
|
19
|
-
strapiI18nService,
|
|
20
|
-
strapiLocalazyI18nService,
|
|
21
|
-
localazyTransferUploadService,
|
|
22
|
-
localazyTransferDownloadService,
|
|
23
|
-
};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const localazyApiClientFactory = require("../utils/localazy-api-client-factory");
|
|
4
|
-
const config = require("../config").default;
|
|
5
|
-
|
|
6
|
-
module.exports = ({ strapi }) => ({
|
|
7
|
-
async listFiles(projectId) {
|
|
8
|
-
try {
|
|
9
|
-
const LocalazyApi = await localazyApiClientFactory();
|
|
10
|
-
const result = await LocalazyApi.files.list({ project: projectId });
|
|
11
|
-
|
|
12
|
-
return result;
|
|
13
|
-
} catch (e) {
|
|
14
|
-
strapi.console.error(e);
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
async getStrapiFile(projectId) {
|
|
19
|
-
const files = await this.listFiles(projectId);
|
|
20
|
-
const strapiFile = files.find(
|
|
21
|
-
(file) =>
|
|
22
|
-
file.type === config.LOCALAZY_DEFAULT_FILE_EXTENSION &&
|
|
23
|
-
file.name === config.LOCALAZY_DEFAULT_FILE_NAME
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
return strapiFile;
|
|
27
|
-
},
|
|
28
|
-
async listProjects(addOrganization = true, addLanguages = true) {
|
|
29
|
-
try {
|
|
30
|
-
const LocalazyApi = await localazyApiClientFactory();
|
|
31
|
-
const result = await LocalazyApi.projects.list({
|
|
32
|
-
organization: addOrganization,
|
|
33
|
-
languages: addLanguages,
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
return result;
|
|
37
|
-
} catch (e) {
|
|
38
|
-
strapi.console.error(e);
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
async getProject(projectId, addOrganization = true, addLanguages = true) {
|
|
43
|
-
const projects = await this.listProjects(addOrganization, addLanguages);
|
|
44
|
-
|
|
45
|
-
return projects.find((project) => project.id === projectId);
|
|
46
|
-
},
|
|
47
|
-
async getWebhooksSecret(projectId) {
|
|
48
|
-
const LocalazyApi = await localazyApiClientFactory();
|
|
49
|
-
const result = await LocalazyApi.webhooks.getSecret({ project: projectId });
|
|
50
|
-
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const {
|
|
4
|
-
findSetupModelByCollectionUid,
|
|
5
|
-
} = require("../utils/transfer-setup-utils");
|
|
6
|
-
const config = require("../config").default;
|
|
7
|
-
const {
|
|
8
|
-
isoLocalazyToStrapi,
|
|
9
|
-
} = require("../utils/iso-locales-utils");
|
|
10
|
-
const shouldSetDownloadedProperty = require("../functions/should-set-downloaded-property");
|
|
11
|
-
const set = require("lodash/set");
|
|
12
|
-
const get = require("lodash/get");
|
|
13
|
-
const isEmpty = require("lodash/isEmpty");
|
|
14
|
-
const RequestInitiatorHelper = require('../utils/request-initiator-helper');
|
|
15
|
-
const PluginSettingsServiceHelper = require('../services/helpers/plugin-settings-service-helper');
|
|
16
|
-
const { DOWNLOAD_EVENT, DOWNLOAD_FINISHED_EVENT } = require('../constants/events');
|
|
17
|
-
const localazyApiClientFactory = require("../utils/localazy-api-client-factory");
|
|
18
|
-
|
|
19
|
-
const getFilteredLanguagesCodesForDownload = async (languagesCodes) => {
|
|
20
|
-
const pluginSettingsServiceHelper = new PluginSettingsServiceHelper(strapi);
|
|
21
|
-
const requestInitiatorHelper = new RequestInitiatorHelper(strapi);
|
|
22
|
-
await pluginSettingsServiceHelper.setup();
|
|
23
|
-
let localLanguagesCodes;
|
|
24
|
-
if (requestInitiatorHelper.isInitiatedByLocalazyWebhook()) {
|
|
25
|
-
// called by a webhook
|
|
26
|
-
localLanguagesCodes = pluginSettingsServiceHelper.getWebhookLanguagesCodes();
|
|
27
|
-
} else if (requestInitiatorHelper.isInitiatedByLocalazyPluginUI()) {
|
|
28
|
-
// called by a user from the UI
|
|
29
|
-
localLanguagesCodes = pluginSettingsServiceHelper.getUiLanguagesCodes();
|
|
30
|
-
} else {
|
|
31
|
-
strapi.log.warn("Called by an unknown initiator.");
|
|
32
|
-
return languagesCodes;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (isEmpty(localLanguagesCodes)) {
|
|
36
|
-
return languagesCodes;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return languagesCodes.filter((code) => localLanguagesCodes.includes(code));
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
module.exports = ({ strapi }) => ({
|
|
43
|
-
async download(JobNotificationService, ctx) {
|
|
44
|
-
console.time("download");
|
|
45
|
-
strapi.log.info("Download started");
|
|
46
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
47
|
-
message: 'Download started',
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
let success = true;
|
|
51
|
-
|
|
52
|
-
// Strapi service
|
|
53
|
-
const StrapiService = strapi
|
|
54
|
-
.plugin("localazy")
|
|
55
|
-
.service("strapiService");
|
|
56
|
-
|
|
57
|
-
// Strapi i18n Service
|
|
58
|
-
const StrapiI18nService = strapi
|
|
59
|
-
.plugin("localazy")
|
|
60
|
-
.service("strapiI18nService");
|
|
61
|
-
|
|
62
|
-
const LocalazyUserService = strapi
|
|
63
|
-
.plugin("localazy")
|
|
64
|
-
.service("localazyUserService");
|
|
65
|
-
const LocalazyPubApiService = strapi
|
|
66
|
-
.plugin("localazy")
|
|
67
|
-
.service("localazyPubApiService");
|
|
68
|
-
const strapiLocalazyI18nService = strapi
|
|
69
|
-
.plugin("localazy")
|
|
70
|
-
.service("strapiLocalazyI18nService");
|
|
71
|
-
|
|
72
|
-
const contentTransferSetup = await strapi
|
|
73
|
-
.plugin("localazy")
|
|
74
|
-
.service("pluginSettingsService")
|
|
75
|
-
.getContentTransferSetup();
|
|
76
|
-
|
|
77
|
-
const user = await LocalazyUserService.getUser();
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Get Strapi File
|
|
81
|
-
*/
|
|
82
|
-
const strapiFile = await LocalazyPubApiService.getStrapiFile(
|
|
83
|
-
user.project.id
|
|
84
|
-
);
|
|
85
|
-
if (!strapiFile) {
|
|
86
|
-
success = false;
|
|
87
|
-
const message = `File ${config.LOCALAZY_DEFAULT_FILE_NAME} not found`;
|
|
88
|
-
strapi.log.error(message);
|
|
89
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
90
|
-
success,
|
|
91
|
-
message,
|
|
92
|
-
});
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Get Localazy Project (incl. languages)
|
|
98
|
-
*/
|
|
99
|
-
const project = await LocalazyPubApiService.getProject(
|
|
100
|
-
user.project.id,
|
|
101
|
-
false,
|
|
102
|
-
true
|
|
103
|
-
);
|
|
104
|
-
if (!project) {
|
|
105
|
-
success = false;
|
|
106
|
-
const message = `Project ${user.project.id} not found`;
|
|
107
|
-
strapi.log.error(message);
|
|
108
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
109
|
-
success,
|
|
110
|
-
message,
|
|
111
|
-
});
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Get Localazy project languages
|
|
117
|
-
*/
|
|
118
|
-
const projectLanguages = project.languages;
|
|
119
|
-
const projectSourceLanguageId = project.sourceLanguage;
|
|
120
|
-
const sourceLanguage = project.languages.find(
|
|
121
|
-
(language) => language.id === projectSourceLanguageId
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
if (!sourceLanguage) {
|
|
125
|
-
success = false;
|
|
126
|
-
const message = "Source language not found";
|
|
127
|
-
strapi.log.error(message);
|
|
128
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
129
|
-
success,
|
|
130
|
-
message,
|
|
131
|
-
});
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const projectSourceLanguageCode = sourceLanguage.code;
|
|
136
|
-
const projectLanguagesWithoutSourceLanguage = projectLanguages.filter(
|
|
137
|
-
(language) => language.code !== projectSourceLanguageCode
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
if (!projectLanguagesWithoutSourceLanguage.length) {
|
|
141
|
-
const message = "Your Localazy project is not translated to other languages.";
|
|
142
|
-
strapi.log.info(message);
|
|
143
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
144
|
-
success,
|
|
145
|
-
message,
|
|
146
|
-
});
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Get project languages codes
|
|
152
|
-
*/
|
|
153
|
-
let languagesCodes = projectLanguagesWithoutSourceLanguage.map(
|
|
154
|
-
(language) => language.code
|
|
155
|
-
);
|
|
156
|
-
// process filtered languages only / keep all if empty!
|
|
157
|
-
languagesCodes = await getFilteredLanguagesCodesForDownload(languagesCodes);
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Iterate over languages and create the ones that are not present in Strapi
|
|
161
|
-
*/
|
|
162
|
-
const strapiUnsupportedLanguages = []; // do not iterate over these languages later
|
|
163
|
-
const strapiLocales = await StrapiI18nService.getLocales(ctx);
|
|
164
|
-
for (const isoLocalazy of languagesCodes) {
|
|
165
|
-
try {
|
|
166
|
-
const isoStrapi = isoLocalazyToStrapi(isoLocalazy);
|
|
167
|
-
const strapiLocale = strapiLocales.find(
|
|
168
|
-
(locale) => locale.code === isoStrapi
|
|
169
|
-
);
|
|
170
|
-
// skip creating locale if it already exists
|
|
171
|
-
if (strapiLocale) {
|
|
172
|
-
strapi.log.info(`The Localazy locale ${isoLocalazy} already exists.`);
|
|
173
|
-
continue;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const newLocaleCode = await StrapiI18nService.createStrapiLocale(
|
|
177
|
-
ctx,
|
|
178
|
-
isoLocalazy
|
|
179
|
-
);
|
|
180
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
181
|
-
message: `Created locale ${newLocaleCode}`,
|
|
182
|
-
});
|
|
183
|
-
} catch (e) {
|
|
184
|
-
strapi.log.error(e.message);
|
|
185
|
-
if (e.name === "ValidationError") {
|
|
186
|
-
// store unsupported language code
|
|
187
|
-
strapiUnsupportedLanguages.push(isoLocalazy);
|
|
188
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
189
|
-
message: `Language ${isoLocalazy} is not supported by Strapi`,
|
|
190
|
-
});
|
|
191
|
-
} else {
|
|
192
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
193
|
-
message: e.message,
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Download all keys for Strapi-supported languages
|
|
201
|
-
*/
|
|
202
|
-
const supportedLanguages = languagesCodes.filter(
|
|
203
|
-
(languageCode) => !strapiUnsupportedLanguages.includes(languageCode)
|
|
204
|
-
);
|
|
205
|
-
const localazyContent = {};
|
|
206
|
-
const LocalazyApi = await localazyApiClientFactory();
|
|
207
|
-
for (const isoLocalazy of supportedLanguages) {
|
|
208
|
-
const isoStrapi = isoLocalazyToStrapi(isoLocalazy);
|
|
209
|
-
const langKeys = await LocalazyApi.files.listKeys({
|
|
210
|
-
project: user.project.id,
|
|
211
|
-
file: strapiFile.id,
|
|
212
|
-
lang: isoStrapi,
|
|
213
|
-
});
|
|
214
|
-
if (!langKeys) {
|
|
215
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
216
|
-
message: `No keys found for language ${isoLocalazy}`,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
localazyContent[isoLocalazy] = langKeys;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Parse Localazy content
|
|
224
|
-
*/
|
|
225
|
-
const parsedLocalazyContent = {};
|
|
226
|
-
const strapiContentTypesModels = await StrapiService.getModels();
|
|
227
|
-
const jsonFields = [];
|
|
228
|
-
for (const [isoLocalazy, keys] of Object.entries(localazyContent)) {
|
|
229
|
-
const isoStrapi = isoLocalazyToStrapi(isoLocalazy);
|
|
230
|
-
if (!isoStrapi) {
|
|
231
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
232
|
-
message: `Language ${isoLocalazy} is not supported by Strapi`,
|
|
233
|
-
});
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
for (const localazyEntry of keys) {
|
|
238
|
-
const key = localazyEntry.key[0];
|
|
239
|
-
const value = localazyEntry.value;
|
|
240
|
-
|
|
241
|
-
const parsedKey = StrapiI18nService.parseLocalazyKey(key);
|
|
242
|
-
|
|
243
|
-
const modelContentTransferSetup = findSetupModelByCollectionUid(
|
|
244
|
-
contentTransferSetup,
|
|
245
|
-
strapiContentTypesModels,
|
|
246
|
-
parsedKey.uid
|
|
247
|
-
);
|
|
248
|
-
|
|
249
|
-
if (typeof modelContentTransferSetup !== "undefined") {
|
|
250
|
-
const shouldSetDownloadedPropertyResult = shouldSetDownloadedProperty(modelContentTransferSetup, parsedKey.rest);
|
|
251
|
-
if (shouldSetDownloadedPropertyResult === "no") {
|
|
252
|
-
continue;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
let parsedKeyRestWithoutComponents = parsedKey.rest;
|
|
256
|
-
if (shouldSetDownloadedPropertyResult === "json") {
|
|
257
|
-
const setKey = [
|
|
258
|
-
isoStrapi,
|
|
259
|
-
parsedKey.uid,
|
|
260
|
-
parsedKey.id,
|
|
261
|
-
];
|
|
262
|
-
|
|
263
|
-
// handle dynamic zones and components here
|
|
264
|
-
let updatedParsedKeyRestWithoutComponents = parsedKeyRestWithoutComponents;
|
|
265
|
-
let segmentsToAdd = [];
|
|
266
|
-
for (const segment of parsedKeyRestWithoutComponents) {
|
|
267
|
-
const hasEntry = get(modelContentTransferSetup, [...segmentsToAdd, segment]);
|
|
268
|
-
const hasEntryNotFinal = hasEntry && typeof hasEntry !== "boolean";
|
|
269
|
-
// const isDZ = Array.isArray(hasEntry) && hasEntry.every((entry) => entry.__component__);
|
|
270
|
-
// processed till here in iterations and `segment` is numeric
|
|
271
|
-
const isComponent = parseInt(segment) > 0;
|
|
272
|
-
|
|
273
|
-
if (hasEntryNotFinal || (!hasEntry && isComponent)) {
|
|
274
|
-
segmentsToAdd.push(segment);
|
|
275
|
-
setKey.push(segment);
|
|
276
|
-
updatedParsedKeyRestWithoutComponents = updatedParsedKeyRestWithoutComponents.slice(1);
|
|
277
|
-
} else {
|
|
278
|
-
break;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
parsedKeyRestWithoutComponents = updatedParsedKeyRestWithoutComponents;
|
|
282
|
-
|
|
283
|
-
let foundJsonFieldIndex = jsonFields.findIndex((jsonField) => {
|
|
284
|
-
return jsonField.setKey.join() === setKey.join();
|
|
285
|
-
});
|
|
286
|
-
if (foundJsonFieldIndex === -1) {
|
|
287
|
-
jsonFields.push({
|
|
288
|
-
setKey,
|
|
289
|
-
jsonKey: parsedKeyRestWithoutComponents[0],
|
|
290
|
-
jsonValue: {},
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
foundJsonFieldIndex = foundJsonFieldIndex === -1 ? jsonFields.length - 1 : foundJsonFieldIndex;
|
|
295
|
-
const foundJsonField = jsonFields[foundJsonFieldIndex];
|
|
296
|
-
// rest from index 1
|
|
297
|
-
const restSliced = parsedKeyRestWithoutComponents.slice(1);
|
|
298
|
-
set(foundJsonField, ['jsonValue', ...restSliced], value);
|
|
299
|
-
jsonFields[foundJsonFieldIndex] = foundJsonField;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
if (shouldSetDownloadedPropertyResult === "yes") {
|
|
303
|
-
const setKey = [
|
|
304
|
-
isoStrapi,
|
|
305
|
-
parsedKey.uid,
|
|
306
|
-
parsedKey.id,
|
|
307
|
-
...parsedKeyRestWithoutComponents,
|
|
308
|
-
];
|
|
309
|
-
set(parsedLocalazyContent, setKey, value);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Set json fields if applicable
|
|
317
|
-
*/
|
|
318
|
-
for (const jsonField of jsonFields) {
|
|
319
|
-
set(parsedLocalazyContent, [...jsonField.setKey, jsonField.jsonKey], jsonField.jsonValue);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Iterate over parsed Localazy content and insert/update content in Strapi
|
|
324
|
-
*/
|
|
325
|
-
for (const [isoStrapi, contentTypes] of Object.entries(
|
|
326
|
-
parsedLocalazyContent
|
|
327
|
-
)) {
|
|
328
|
-
for (const [uid, models] of Object.entries(contentTypes)) {
|
|
329
|
-
/**
|
|
330
|
-
* Model could not exist anymore in Strapi
|
|
331
|
-
*/
|
|
332
|
-
const strapiContentTypeModel = strapiContentTypesModels.find(
|
|
333
|
-
(model) => model.uid === uid
|
|
334
|
-
);
|
|
335
|
-
if (!strapiContentTypeModel) {
|
|
336
|
-
strapi.log.info(
|
|
337
|
-
`Model ${uid} not found in Strapi, it has been deleted, skipping...`
|
|
338
|
-
);
|
|
339
|
-
continue;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
for (const [id, translatedModel] of Object.entries(models)) {
|
|
343
|
-
try {
|
|
344
|
-
/**
|
|
345
|
-
* Get original source language entry
|
|
346
|
-
*/
|
|
347
|
-
const baseEntry = await strapi.entityService.findOne(uid, id, {
|
|
348
|
-
populate: "deep",
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
if (isEmpty(baseEntry)) {
|
|
352
|
-
const message = `Source language entry ${uid}[${id}] does not exist anymore, skipping...`;
|
|
353
|
-
throw new Error(message);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Get current language entry
|
|
358
|
-
*/
|
|
359
|
-
const baseEntryLocalizations = baseEntry.localizations;
|
|
360
|
-
|
|
361
|
-
if (!Array.isArray(baseEntryLocalizations)) {
|
|
362
|
-
throw new Error(
|
|
363
|
-
`Content type ${uid} does not support localizations, skipping...`
|
|
364
|
-
);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
const baseEntryCurrentLanguageLocalizationInfo =
|
|
368
|
-
baseEntryLocalizations.find(
|
|
369
|
-
(localization) => localization.locale === isoStrapi
|
|
370
|
-
);
|
|
371
|
-
|
|
372
|
-
if (!baseEntryCurrentLanguageLocalizationInfo) {
|
|
373
|
-
// create new entry
|
|
374
|
-
try {
|
|
375
|
-
const createdEntry = await strapiLocalazyI18nService.createEntry(
|
|
376
|
-
ctx,
|
|
377
|
-
uid,
|
|
378
|
-
strapiContentTypesModels,
|
|
379
|
-
translatedModel,
|
|
380
|
-
baseEntry,
|
|
381
|
-
isoStrapi,
|
|
382
|
-
);
|
|
383
|
-
|
|
384
|
-
const message = `Created new entry ${uid}[${createdEntry.id}] in language ${isoStrapi}`;
|
|
385
|
-
strapi.log.info(message);
|
|
386
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
387
|
-
message,
|
|
388
|
-
});
|
|
389
|
-
} catch (e) {
|
|
390
|
-
success = false;
|
|
391
|
-
strapi.log.error(e.message);
|
|
392
|
-
strapi.log.error(JSON.stringify(e.details?.errors || {}));
|
|
393
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
394
|
-
message: `Cannot create an entry in ${isoStrapi} for ${uid}[${baseEntry.id}]: ${e.message}`,
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
} else {
|
|
398
|
-
// update existing entry
|
|
399
|
-
try {
|
|
400
|
-
const localizedEntryId =
|
|
401
|
-
baseEntryCurrentLanguageLocalizationInfo.id;
|
|
402
|
-
|
|
403
|
-
const updatedEntry = await strapiLocalazyI18nService.updateEntry(
|
|
404
|
-
uid,
|
|
405
|
-
localizedEntryId,
|
|
406
|
-
strapiContentTypesModels,
|
|
407
|
-
translatedModel,
|
|
408
|
-
baseEntry,
|
|
409
|
-
isoStrapi,
|
|
410
|
-
);
|
|
411
|
-
|
|
412
|
-
const message = `Updated ${uid}[${updatedEntry.id}] (${isoStrapi})`;
|
|
413
|
-
strapi.log.info(message);
|
|
414
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
415
|
-
message,
|
|
416
|
-
});
|
|
417
|
-
} catch (e) {
|
|
418
|
-
success = false;
|
|
419
|
-
strapi.log.error(e.message);
|
|
420
|
-
strapi.log.error(JSON.stringify(e.details?.errors || {}));
|
|
421
|
-
await JobNotificationService.emit(DOWNLOAD_EVENT, {
|
|
422
|
-
message: `Cannot update an ${uid}[${baseEntryCurrentLanguageLocalizationInfo.id}] (${isoStrapi}): ${e.message}`,
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
} catch (e) {
|
|
427
|
-
success = false;
|
|
428
|
-
strapi.log.error(e.message);
|
|
429
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
430
|
-
success,
|
|
431
|
-
message: `An error occured while processing download: ${e.message}`,
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
strapi.log.info("Download finished in");
|
|
439
|
-
await JobNotificationService.emit(DOWNLOAD_FINISHED_EVENT, {
|
|
440
|
-
success,
|
|
441
|
-
message: 'Download finished',
|
|
442
|
-
});
|
|
443
|
-
console.timeEnd("download");
|
|
444
|
-
},
|
|
445
|
-
});
|