@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.
Files changed (392) hide show
  1. package/README.md +3 -1
  2. package/dist/_chunks/App-BSFfgZKU.mjs +5278 -0
  3. package/dist/_chunks/App-D1QaIMHX.js +5278 -0
  4. package/dist/_chunks/ContentTransferSetup-DHXJIxAp.js +1552 -0
  5. package/dist/_chunks/ContentTransferSetup-DtjcF_jM.mjs +1550 -0
  6. package/dist/_chunks/GlobalSettings-BON3kjHK.js +228 -0
  7. package/dist/_chunks/GlobalSettings-BcdibqNS.mjs +228 -0
  8. package/dist/_chunks/LanguagesSelector-BeijBEjg.js +47 -0
  9. package/dist/_chunks/LanguagesSelector-fyAIUp7M.mjs +48 -0
  10. package/dist/_chunks/en-BTf8goGM.mjs +8 -0
  11. package/dist/_chunks/en-CRtsEFtl.js +8 -0
  12. package/dist/_chunks/fr-C8Qw4iPZ.js +4 -0
  13. package/dist/_chunks/fr-hkSxFuzl.mjs +4 -0
  14. package/dist/_chunks/has-model-changed-BMCQX2Dd.js +316 -0
  15. package/dist/_chunks/has-model-changed-Dvtzpc9v.mjs +317 -0
  16. package/dist/_chunks/index-BQw2qi2G.js +2679 -0
  17. package/dist/_chunks/index-CN3Gyh5F.mjs +2678 -0
  18. package/dist/_chunks/isEqual-B-YVnzrp.js +205 -0
  19. package/dist/_chunks/isEqual-CEyT97-3.mjs +206 -0
  20. package/dist/_chunks/set-DUdH3vE5.js +54557 -0
  21. package/dist/_chunks/set-DulHAQhq.mjs +54542 -0
  22. package/dist/admin/index.js +4 -0
  23. package/dist/admin/index.mjs +5 -0
  24. package/dist/admin/src/components/Initializer.d.ts +5 -0
  25. package/dist/admin/src/config/development/index.d.ts +15 -0
  26. package/dist/admin/src/config/example/index.example.d.ts +15 -0
  27. package/dist/admin/src/config/index.d.ts +15 -0
  28. package/dist/admin/src/config/local/index.d.ts +15 -0
  29. package/dist/admin/src/config/production/index.d.ts +15 -0
  30. package/dist/admin/src/i18n.d.ts +2 -0
  31. package/dist/admin/src/index.d.ts +10 -0
  32. package/dist/admin/src/modules/@common/api/strapi-api-base.d.ts +6 -0
  33. package/dist/admin/src/modules/@common/components/Icons/House.d.ts +2 -0
  34. package/dist/admin/src/modules/@common/components/Icons/Localazy.d.ts +2 -0
  35. package/dist/admin/src/modules/@common/components/LanguagesSelector.d.ts +11 -0
  36. package/dist/admin/src/modules/@common/components/PluginPageLoader.d.ts +2 -0
  37. package/dist/admin/src/modules/@common/components/SideNav.d.ts +2 -0
  38. package/dist/admin/src/modules/@common/components/TransferReport.d.ts +5 -0
  39. package/dist/admin/src/modules/@common/functions/flatten-deep.d.ts +2 -0
  40. package/dist/admin/src/modules/@common/locale/en.d.ts +14 -0
  41. package/dist/admin/src/modules/@common/models/supported-content-type-fields.d.ts +2 -0
  42. package/dist/admin/src/modules/@common/models/supported-custom-field-plugins.d.ts +2 -0
  43. package/dist/admin/src/modules/@common/services/i18n-service.d.ts +3 -0
  44. package/dist/admin/src/modules/@common/services/plugin.service.d.ts +3 -0
  45. package/dist/admin/src/modules/@common/services/product-analytics-service.d.ts +14 -0
  46. package/dist/admin/src/modules/@common/services/project-service.d.ts +4 -0
  47. package/dist/admin/src/modules/@common/services/user-service.d.ts +5 -0
  48. package/dist/admin/src/modules/@common/utils/are-locales-compatible.d.ts +2 -0
  49. package/dist/admin/src/modules/@common/utils/format-number.d.ts +2 -0
  50. package/dist/admin/src/modules/@common/utils/get-default-locale.d.ts +2 -0
  51. package/dist/admin/src/modules/@common/utils/history.d.ts +2 -0
  52. package/dist/admin/src/modules/@common/utils/is-plugin-route.d.ts +2 -0
  53. package/dist/admin/src/modules/@common/utils/iso-locales-utils.d.ts +3 -0
  54. package/dist/admin/src/modules/@common/utils/redirect-to-plugin-route.d.ts +13 -0
  55. package/dist/admin/src/modules/@common/utils/sort-by-model-name.d.ts +2 -0
  56. package/dist/admin/src/modules/@common/utils/use-header-subtitle.d.ts +2 -0
  57. package/dist/admin/src/modules/@common/utils/use-header-title.d.ts +2 -0
  58. package/dist/admin/src/modules/@common/utils/use-nav.d.ts +11 -0
  59. package/dist/admin/src/modules/alerts/constants/channels.d.ts +1 -0
  60. package/dist/admin/src/modules/alerts/constants/events.d.ts +4 -0
  61. package/dist/admin/src/modules/alerts/services/alerts-service.d.ts +8 -0
  62. package/dist/admin/src/modules/localazy-download/locale/en.d.ts +24 -0
  63. package/dist/admin/src/modules/localazy-download/services/download-alerts-service.d.ts +5 -0
  64. package/dist/admin/src/modules/localazy-download/services/localazy-download-service.d.ts +3 -0
  65. package/dist/admin/src/modules/localazy-upload/components/ReadDocsButton.d.ts +3 -0
  66. package/dist/admin/src/modules/localazy-upload/locale/en.d.ts +19 -0
  67. package/dist/admin/src/modules/localazy-upload/services/localazy-upload-service.d.ts +3 -0
  68. package/dist/admin/src/modules/localazy-upload/services/upload-alerts-service.d.ts +5 -0
  69. package/dist/admin/src/modules/login/components/FetchIdentity.d.ts +3 -0
  70. package/dist/admin/src/modules/login/components/LoginButton.d.ts +12 -0
  71. package/dist/admin/src/modules/login/components/LogoutButton.d.ts +6 -0
  72. package/dist/admin/src/modules/login/locale/en.d.ts +8 -0
  73. package/dist/admin/src/modules/login/services/localazy-login-service.d.ts +4 -0
  74. package/dist/admin/src/modules/overview/components/OverviewItem.d.ts +7 -0
  75. package/dist/admin/src/modules/overview/components/OverviewItemLink.d.ts +7 -0
  76. package/dist/admin/src/modules/overview/components/PrerequisitiesInfo.d.ts +3 -0
  77. package/dist/admin/src/modules/overview/locale/en.d.ts +14 -0
  78. package/dist/admin/src/modules/plugin-settings/components/ContentTransferSetupEmpty.d.ts +2 -0
  79. package/dist/admin/src/modules/plugin-settings/components/Tree.d.ts +8 -0
  80. package/dist/admin/src/modules/plugin-settings/components/TreeItem.d.ts +10 -0
  81. package/dist/admin/src/modules/plugin-settings/functions/build-content-transfer-setup-schema.d.ts +2 -0
  82. package/dist/admin/src/modules/plugin-settings/functions/get-content-transfer-setup-keys-sets.d.ts +8 -0
  83. package/dist/admin/src/modules/plugin-settings/functions/has-model-changed.d.ts +6 -0
  84. package/dist/admin/src/modules/plugin-settings/locale/en.d.ts +49 -0
  85. package/dist/admin/src/modules/plugin-settings/services/plugin-settings-service.d.ts +6 -0
  86. package/dist/admin/src/modules/plugin-settings/services/strapi-model-service.d.ts +4 -0
  87. package/dist/admin/src/modules/plugin-settings/services/strapi-users-service.d.ts +3 -0
  88. package/dist/admin/src/modules/plugin-settings/utils/array-of-models-to-object.d.ts +2 -0
  89. package/dist/admin/src/modules/plugin-settings/utils/find-model-value-by-key.d.ts +2 -0
  90. package/dist/admin/src/modules/plugin-settings/utils/get-filtered-models-schemas.d.ts +7 -0
  91. package/dist/admin/src/modules/plugin-settings/utils/get-models-tree.d.ts +5 -0
  92. package/dist/admin/src/modules/strapi/utils/get-default-theme.d.ts +3 -0
  93. package/dist/admin/src/modules/user/model/localazy-identity.d.ts +15 -0
  94. package/dist/admin/src/modules/user/services/localazy-user-service.d.ts +6 -0
  95. package/dist/admin/src/pages/App.d.ts +3 -0
  96. package/dist/admin/src/pages/ContentTransferSetup.d.ts +4 -0
  97. package/dist/admin/src/pages/Download.d.ts +7 -0
  98. package/dist/admin/src/pages/GlobalSettings.d.ts +4 -0
  99. package/dist/admin/src/pages/HomePage.d.ts +2 -0
  100. package/dist/admin/src/pages/Login.d.ts +8 -0
  101. package/dist/admin/src/pages/Overview.d.ts +8 -0
  102. package/dist/admin/src/pages/Upload.d.ts +7 -0
  103. package/dist/admin/src/pluginId.d.ts +2 -0
  104. package/dist/admin/src/plugins/generic-connector-client.d.ts +3 -0
  105. package/dist/admin/src/state/localazy-identity.d.ts +13 -0
  106. package/dist/admin/src/utils/getTranslation.d.ts +2 -0
  107. package/dist/server/index.js +26000 -0
  108. package/dist/server/index.mjs +25989 -0
  109. package/dist/server/src/bootstrap.d.ts +5 -0
  110. package/dist/server/src/config/core/config.d.ts +1 -0
  111. package/dist/server/src/config/development/index.d.ts +15 -0
  112. package/dist/server/src/config/example/index.example.d.ts +15 -0
  113. package/dist/server/src/config/index.d.ts +18 -0
  114. package/dist/server/src/config/local/index.d.ts +15 -0
  115. package/dist/server/src/config/production/index.d.ts +15 -0
  116. package/dist/server/src/constants/channels.d.ts +3 -0
  117. package/dist/server/src/constants/events.d.ts +6 -0
  118. package/dist/server/src/content-types/index.d.ts +2 -0
  119. package/dist/server/src/controllers/index.d.ts +43 -0
  120. package/dist/server/src/controllers/localazy-auth-controller.d.ts +8 -0
  121. package/dist/server/src/controllers/localazy-project-controller.d.ts +7 -0
  122. package/dist/server/src/controllers/localazy-transfer-controller.d.ts +8 -0
  123. package/dist/server/src/controllers/localazy-user-controller.d.ts +9 -0
  124. package/dist/server/src/controllers/plugin-settings-controller.d.ts +10 -0
  125. package/dist/server/src/controllers/strapi-controller.d.ts +10 -0
  126. package/dist/server/src/core/index.d.ts +71 -0
  127. package/dist/server/src/db/model/content-transfer-setup.d.ts +4 -0
  128. package/dist/server/src/db/model/localazy-user.d.ts +17 -0
  129. package/dist/server/src/db/model/plugin-settings.d.ts +5 -0
  130. package/dist/server/src/db/model/utils/get-strapi-store.d.ts +26 -0
  131. package/dist/server/src/destroy.d.ts +5 -0
  132. package/dist/server/src/functions/should-set-downloaded-property.d.ts +12 -0
  133. package/dist/server/src/index.d.ts +189 -0
  134. package/dist/server/src/lifecycles/deep-populate-hook.d.ts +20 -0
  135. package/dist/server/src/lifecycles/deprecate-event-entry-in-localazy-hook.d.ts +4 -0
  136. package/dist/server/src/lifecycles/upload-event-entry-to-localazy-hook.d.ts +12 -0
  137. package/dist/server/src/middlewares/index.d.ts +2 -0
  138. package/dist/server/src/models/plugin/content-transfer-setup.d.ts +13 -0
  139. package/dist/server/src/models/strapi/locale.d.ts +8 -0
  140. package/dist/server/src/policies/index.d.ts +2 -0
  141. package/dist/server/src/register.d.ts +5 -0
  142. package/dist/server/src/routes/index.d.ts +25 -0
  143. package/dist/server/src/routes/localazy-auth-routes.d.ts +9 -0
  144. package/dist/server/src/routes/localazy-project-routes.d.ts +9 -0
  145. package/dist/server/src/routes/localazy-transfer-routes.d.ts +9 -0
  146. package/dist/server/src/routes/localazy-user-routes.d.ts +9 -0
  147. package/dist/server/src/routes/plugin-settings-routes.d.ts +9 -0
  148. package/dist/server/src/routes/strapi-routes.d.ts +9 -0
  149. package/dist/server/src/services/helpers/job-notification-service.d.ts +14 -0
  150. package/dist/server/src/services/helpers/plugin-settings-service-helper.d.ts +16 -0
  151. package/dist/server/src/services/index.d.ts +92 -0
  152. package/dist/server/src/services/localazy-pubapi-service.d.ts +12 -0
  153. package/dist/server/src/services/localazy-transfer-download-service.d.ts +11 -0
  154. package/dist/server/src/services/localazy-transfer-upload-service.d.ts +11 -0
  155. package/dist/server/src/services/localazy-upload-service.d.ts +28 -0
  156. package/dist/server/src/services/localazy-user-service.d.ts +11 -0
  157. package/dist/server/src/services/plugin-settings-service.d.ts +16 -0
  158. package/dist/server/src/services/strapi-i18n-service.d.ts +19 -0
  159. package/dist/server/src/services/strapi-localazy-i18n-service.d.ts +9 -0
  160. package/dist/server/src/services/strapi-service.d.ts +10 -0
  161. package/dist/server/src/utils/delay.d.ts +1 -0
  162. package/dist/server/src/utils/drop-property-deep.d.ts +1 -0
  163. package/dist/server/src/utils/flatten-object.d.ts +2 -0
  164. package/dist/server/src/utils/generate-random-id.d.ts +2 -0
  165. package/dist/server/src/utils/get-full-populate-localazy-download-object.d.ts +17 -0
  166. package/dist/server/src/utils/get-full-populate-localazy-upload-object.d.ts +9 -0
  167. package/dist/server/src/utils/get-full-populate-object.d.ts +17 -0
  168. package/dist/server/src/utils/get-main-keys-of-nested-array-objects.d.ts +2 -0
  169. package/dist/server/src/utils/get-picked-flatten-keys-for-hook-entry.d.ts +5 -0
  170. package/dist/server/src/utils/intl-display-name.d.ts +1 -0
  171. package/dist/server/src/utils/is-generally-applicable-content-type.d.ts +2 -0
  172. package/dist/server/src/utils/is-localazy-applicable-content-type.d.ts +2 -0
  173. package/dist/server/src/utils/iso-locales-utils.d.ts +3 -0
  174. package/dist/server/src/utils/localazy-api-client-factory.d.ts +3 -0
  175. package/dist/server/src/utils/localazy-generic-connector-client-factory.d.ts +3 -0
  176. package/dist/server/src/utils/model-utils.d.ts +7 -0
  177. package/dist/server/src/utils/omit-deep.d.ts +2 -0
  178. package/dist/server/src/utils/parsed-localazy-entry-to-create-entry.d.ts +7 -0
  179. package/dist/server/src/utils/parsed-localazy-entry-to-update-entry.d.ts +1 -0
  180. package/dist/server/src/utils/pick-entries.d.ts +2 -0
  181. package/dist/server/src/utils/populate-create-update-entry-with-base-entry.d.ts +1 -0
  182. package/dist/server/src/utils/request-initiator-helper.d.ts +9 -0
  183. package/dist/server/src/utils/reset-array-keys-deep.d.ts +1 -0
  184. package/dist/server/src/utils/transfer-setup-utils.d.ts +7 -0
  185. package/install/index.mjs +88 -34
  186. package/install/vite.config.example.js +40 -0
  187. package/install/vite.config.example.ts +41 -0
  188. package/install/{webpack.example.js → webpack.config.example.js} +2 -2
  189. package/install/webpack.config.example.ts +30 -0
  190. package/package.json +93 -55
  191. package/.babelrc +0 -7
  192. package/.eslintrc +0 -13
  193. package/.github/workflows/qa.yml +0 -25
  194. package/.github/workflows/release.yml +0 -46
  195. package/.nvmrc +0 -1
  196. package/.strapi-updater.json +0 -4
  197. package/CHANGELOG.md +0 -60
  198. package/LICENSE +0 -21
  199. package/admin/src/components/Initializer/index.js +0 -26
  200. package/admin/src/components/PluginIcon/index.js +0 -14
  201. package/admin/src/config/development/index.js +0 -14
  202. package/admin/src/config/example/index.js +0 -14
  203. package/admin/src/config/index.js +0 -19
  204. package/admin/src/config/local/index.js +0 -14
  205. package/admin/src/config/production/index.js +0 -15
  206. package/admin/src/i18n.js +0 -41
  207. package/admin/src/index.js +0 -138
  208. package/admin/src/modules/@common/components/Icons/Localazy/index.js +0 -12
  209. package/admin/src/modules/@common/components/LanguagesSelector/index.js +0 -67
  210. package/admin/src/modules/@common/components/PluginPageLoader/index.js +0 -20
  211. package/admin/src/modules/@common/components/SideNav/index.js +0 -46
  212. package/admin/src/modules/@common/components/TransferReport/index.js +0 -53
  213. package/admin/src/modules/@common/locale/en.js +0 -14
  214. package/admin/src/modules/@common/models/supported-content-type-fields.js +0 -9
  215. package/admin/src/modules/@common/models/supported-custom-field-plugins.js +0 -6
  216. package/admin/src/modules/@common/services/i18n-service.js +0 -15
  217. package/admin/src/modules/@common/services/plugin.service.js +0 -16
  218. package/admin/src/modules/@common/services/product-analytics-service.js +0 -86
  219. package/admin/src/modules/@common/services/project-service.js +0 -15
  220. package/admin/src/modules/@common/services/user-service.js +0 -38
  221. package/admin/src/modules/@common/utils/__tests__/iso-locales-utils.test.js +0 -102
  222. package/admin/src/modules/@common/utils/are-locales-compatible.js +0 -42
  223. package/admin/src/modules/@common/utils/format-number.js +0 -1
  224. package/admin/src/modules/@common/utils/functions/flatten-deep.js +0 -23
  225. package/admin/src/modules/@common/utils/get-default-locale.js +0 -32
  226. package/admin/src/modules/@common/utils/get-header-subtitle.js +0 -21
  227. package/admin/src/modules/@common/utils/get-header-title.js +0 -24
  228. package/admin/src/modules/@common/utils/get-nav.js +0 -35
  229. package/admin/src/modules/@common/utils/history.js +0 -6
  230. package/admin/src/modules/@common/utils/is-plugin-route.js +0 -15
  231. package/admin/src/modules/@common/utils/iso-locales-utils.js +0 -58
  232. package/admin/src/modules/@common/utils/redirect-to-plugin-route.js +0 -22
  233. package/admin/src/modules/@common/utils/sort-by-model-name.js +0 -10
  234. package/admin/src/modules/alerts/constants/channels.js +0 -1
  235. package/admin/src/modules/alerts/constants/events.js +0 -4
  236. package/admin/src/modules/alerts/services/alerts-service.js +0 -41
  237. package/admin/src/modules/localazy-download/locale/en.js +0 -25
  238. package/admin/src/modules/localazy-download/services/download-alerts-service.js +0 -12
  239. package/admin/src/modules/localazy-download/services/localazy-download-service.js +0 -16
  240. package/admin/src/modules/localazy-upload/components/ReadDocsButton.js +0 -20
  241. package/admin/src/modules/localazy-upload/locale/en.js +0 -20
  242. package/admin/src/modules/localazy-upload/services/localazy-upload-service.js +0 -16
  243. package/admin/src/modules/localazy-upload/services/upload-alerts-service.js +0 -12
  244. package/admin/src/modules/login/components/LoginButton/index.js +0 -55
  245. package/admin/src/modules/login/components/LogoutButton/index.js +0 -49
  246. package/admin/src/modules/login/locale/en.js +0 -7
  247. package/admin/src/modules/login/services/localazy-login-service.js +0 -29
  248. package/admin/src/modules/plugin-settings/components/ContentTransferSetup/index.js +0 -308
  249. package/admin/src/modules/plugin-settings/components/ContentTransferSetupEmpty/index.js +0 -86
  250. package/admin/src/modules/plugin-settings/components/GlobalSettings/index.js +0 -269
  251. package/admin/src/modules/plugin-settings/components/Tree/index.js +0 -145
  252. package/admin/src/modules/plugin-settings/components/TreeItem/index.js +0 -48
  253. package/admin/src/modules/plugin-settings/functions/build-content-transfer-setup-schema.js +0 -57
  254. package/admin/src/modules/plugin-settings/functions/get-content-transfer-setup-keys-sets.js +0 -85
  255. package/admin/src/modules/plugin-settings/functions/has-model-changed.js +0 -75
  256. package/admin/src/modules/plugin-settings/locale/en.js +0 -61
  257. package/admin/src/modules/plugin-settings/services/plugin-settings-service.js +0 -55
  258. package/admin/src/modules/plugin-settings/services/strapi-model-service.js +0 -26
  259. package/admin/src/modules/plugin-settings/services/strapi-users-service.js +0 -26
  260. package/admin/src/modules/plugin-settings/utils/__tests__/get-models-tree.test.js +0 -135
  261. package/admin/src/modules/plugin-settings/utils/array-of-models-to-object.js +0 -6
  262. package/admin/src/modules/plugin-settings/utils/find-model-value-by-key.js +0 -8
  263. package/admin/src/modules/plugin-settings/utils/get-filtered-models-schemas.js +0 -31
  264. package/admin/src/modules/plugin-settings/utils/get-models-tree.js +0 -94
  265. package/admin/src/modules/settings/components/OverviewItem/index.js +0 -44
  266. package/admin/src/modules/settings/components/OverviewItemLink/index.js +0 -34
  267. package/admin/src/modules/settings/components/PrerequisitiesInfo/index.js +0 -28
  268. package/admin/src/modules/settings/locale/en.js +0 -13
  269. package/admin/src/modules/user/model/localazy-identity.js +0 -14
  270. package/admin/src/modules/user/services/localazy-user-service.js +0 -38
  271. package/admin/src/pages/App/index.js +0 -154
  272. package/admin/src/pages/Download/index.js +0 -280
  273. package/admin/src/pages/Index/index.js +0 -8
  274. package/admin/src/pages/Login/index.js +0 -109
  275. package/admin/src/pages/PluginSettings/index.js +0 -56
  276. package/admin/src/pages/Settings/index.js +0 -132
  277. package/admin/src/pages/Upload/index.js +0 -241
  278. package/admin/src/pluginId.js +0 -5
  279. package/admin/src/plugins/generic-connector-client.js +0 -9
  280. package/admin/src/state/localazy-identity.js +0 -29
  281. package/admin/src/tests/fixtures/all-models.js +0 -877
  282. package/admin/src/tests/fixtures/restaurant-model.js +0 -230
  283. package/admin/src/translations/en.json +0 -4
  284. package/admin/src/translations/fr.json +0 -1
  285. package/admin/src/utils/createAxiosInstance.js +0 -54
  286. package/admin/src/utils/getTrad.js +0 -5
  287. package/jest.config.js +0 -0
  288. package/server/bootstrap.js +0 -63
  289. package/server/config/development/index.js +0 -16
  290. package/server/config/example/index.js +0 -16
  291. package/server/config/index.js +0 -20
  292. package/server/config/local/index.js +0 -16
  293. package/server/config/production/index.js +0 -17
  294. package/server/config/schema.graphql.js +0 -21
  295. package/server/constants/channels.js +0 -3
  296. package/server/constants/events.js +0 -6
  297. package/server/content-types/index.js +0 -3
  298. package/server/controllers/index.js +0 -17
  299. package/server/controllers/localazy-auth-controller.js +0 -22
  300. package/server/controllers/localazy-project-controller.js +0 -21
  301. package/server/controllers/localazy-transfer-controller.js +0 -62
  302. package/server/controllers/localazy-user-controller.js +0 -24
  303. package/server/controllers/plugin-settings-controller.js +0 -31
  304. package/server/controllers/strapi-controller.js +0 -27
  305. package/server/db/model/content-transfer-setup.js +0 -13
  306. package/server/db/model/localazy-user.js +0 -23
  307. package/server/db/model/plugin-settings.js +0 -13
  308. package/server/db/model/utils/get-strapi-store.js +0 -9
  309. package/server/destroy.js +0 -5
  310. package/server/functions/should-set-downloaded-property.js +0 -94
  311. package/server/index.js +0 -25
  312. package/server/lifecycles/deep-populate-hook.js +0 -12
  313. package/server/lifecycles/deprecate-event-entry-in-localazy-hook.js +0 -73
  314. package/server/lifecycles/upload-event-entry-to-localazy-hook.js +0 -36
  315. package/server/middlewares/index.js +0 -7
  316. package/server/middlewares/verify-webhook.js +0 -77
  317. package/server/models/supported-content-type-fields.js +0 -9
  318. package/server/models/supported-custom-field-plugins.js +0 -6
  319. package/server/policies/index.js +0 -3
  320. package/server/register.js +0 -5
  321. package/server/routes/index.js +0 -28
  322. package/server/routes/localazy-auth.js +0 -22
  323. package/server/routes/localazy-project.js +0 -14
  324. package/server/routes/localazy-public-transfer.js +0 -20
  325. package/server/routes/localazy-transfer.js +0 -22
  326. package/server/routes/localazy-user.js +0 -30
  327. package/server/routes/plugin-settings.js +0 -38
  328. package/server/routes/strapi.js +0 -38
  329. package/server/services/helpers/job-notification-service.js +0 -30
  330. package/server/services/helpers/plugin-settings-service-helper.js +0 -52
  331. package/server/services/index.js +0 -23
  332. package/server/services/localazy-pubapi-service.js +0 -53
  333. package/server/services/localazy-transfer-download-service.js +0 -445
  334. package/server/services/localazy-transfer-upload-service.js +0 -178
  335. package/server/services/localazy-upload-service.js +0 -52
  336. package/server/services/localazy-user-service.js +0 -29
  337. package/server/services/plugin-settings-service.js +0 -53
  338. package/server/services/strapi-i18n-service.js +0 -151
  339. package/server/services/strapi-localazy-i18n-service.js +0 -130
  340. package/server/services/strapi-service.js +0 -26
  341. package/server/tests/fixtures/all-models.js +0 -869
  342. package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-cookbook.js +0 -5761
  343. package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-lesson-dz.js +0 -402
  344. package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-page-dz.js +0 -658
  345. package/server/tests/fixtures/parsed-localazy-entry-to-create-entry-restaurant-simple-menu.js +0 -536
  346. package/server/tests/fixtures/parsed-localazy-entry-to-update-entry.js +0 -35157
  347. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-cookbook-empty-recipes.js +0 -202
  348. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-cookbook.js +0 -2700
  349. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-lesson-dz.js +0 -309
  350. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-flat-simple.js +0 -47
  351. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-flat-with-media.js +0 -169
  352. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-menu-empty.js +0 -3003
  353. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-restaurant-simple-menu-with-media.js +0 -2057
  354. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-sample-json-dz.js +0 -884
  355. package/server/tests/fixtures/populate-create-update-entry-with-base-entry-sample-json.js +0 -46
  356. package/server/tests/fixtures/strapi-plugin-all-models.js +0 -7000
  357. package/server/utils/__tests__/build-populate.test.js +0 -85
  358. package/server/utils/__tests__/flatten-object.test.js +0 -171
  359. package/server/utils/__tests__/get-models-tree.test.js +0 -170
  360. package/server/utils/__tests__/iso-locales-utils.test.js +0 -104
  361. package/server/utils/__tests__/parsed-localazy-entry-to-create-entry.test.js +0 -258
  362. package/server/utils/__tests__/parsed-localazy-entry-to-update-entry.test.js +0 -456
  363. package/server/utils/__tests__/pick-entries.test.js +0 -963
  364. package/server/utils/__tests__/populate-create-update-entry-with-base-entry.test.js +0 -1176
  365. package/server/utils/build-populate.js +0 -48
  366. package/server/utils/delay.js +0 -6
  367. package/server/utils/flatten-object.js +0 -61
  368. package/server/utils/generate-random-id.js +0 -3
  369. package/server/utils/get-full-populate-object.js +0 -66
  370. package/server/utils/get-main-keys-of-nested-array-objects.js +0 -5
  371. package/server/utils/get-models-tree.js +0 -47
  372. package/server/utils/get-picked-flatten-keys-for-hook-entry.js +0 -270
  373. package/server/utils/intl-display-name.js +0 -4
  374. package/server/utils/is-generally-applicable-content-type.js +0 -33
  375. package/server/utils/is-localazy-applicable-content-type.js +0 -36
  376. package/server/utils/iso-locales-utils.js +0 -60
  377. package/server/utils/localazy-api-client-factory.js +0 -22
  378. package/server/utils/localazy-generic-connector-client-factory.js +0 -15
  379. package/server/utils/model-utils.js +0 -43
  380. package/server/utils/objectivise-entry.js +0 -41
  381. package/server/utils/omit-deep.js +0 -24
  382. package/server/utils/parsed-localazy-entry-to-create-entry.js +0 -194
  383. package/server/utils/parsed-localazy-entry-to-update-entry.js +0 -83
  384. package/server/utils/pick-deep.js +0 -22
  385. package/server/utils/pick-entries.js +0 -37
  386. package/server/utils/populate-create-update-entry-with-base-entry.js +0 -264
  387. package/server/utils/request-initiator-helper.js +0 -36
  388. package/server/utils/reset-array-keys-deep.js +0 -19
  389. package/server/utils/transfer-setup-utils.js +0 -93
  390. package/strapi-admin.js +0 -14
  391. package/strapi-server.js +0 -5
  392. 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;
@@ -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
- });