@localazy/strapi-plugin 0.2.13 → 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 -68
  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 -76
  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,269 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import { useTranslation } from "react-i18next";
3
- import cloneDeep from "lodash-es/cloneDeep";
4
- import { HeaderLayout } from "@strapi/design-system/Layout";
5
- import Check from "@strapi/icons/Check";
6
- import { Box } from "@strapi/design-system/Box";
7
- import { Button } from "@strapi/design-system/Button";
8
- import { ToggleInput } from '@strapi/design-system/ToggleInput';
9
- import { Select, Option } from '@strapi/design-system/Select';
10
- import { Alert } from "@strapi/design-system/Alert";
11
- import { Redirect } from "react-router-dom";
12
- import { Flex } from "@strapi/design-system/Flex";
13
- import { Divider } from "@strapi/design-system/Divider";
14
- import { Typography } from "@strapi/design-system/Typography";
15
- import isEqual from "lodash-es/isEqual";
16
- import set from "lodash-es/set";
17
- import LanguagesSelector from "../../../@common/components/LanguagesSelector";
18
- import PluginSettingsService from "../../services/plugin-settings-service";
19
- import StrapiUsersService from "../../services/strapi-users-service";
20
- import { getLocalazyIdentity } from "../../../../state/localazy-identity";
21
- import ProjectService from "../../../@common/services/project-service";
22
- import pluginId from "../../../../pluginId";
23
-
24
- import "../../../../i18n";
25
-
26
- function GlobalSettings() {
27
- /**
28
- * Translation function
29
- */
30
- const { t } = useTranslation();
31
-
32
- /**
33
- * Is user logged in
34
- */
35
- const [localazyIdentity] = getLocalazyIdentity();
36
- const hasLocalazyIdentity = () => !!localazyIdentity.accessToken;
37
- const [isLoggedIn, setIsLoggedIn] = useState(false);
38
-
39
- /**
40
- * Project Languages without default language
41
- */
42
- const [projectLanguages, setProjectLanguages] = useState([]);
43
-
44
- /**
45
- * Component state
46
- */
47
- const [isLoading, setIsLoading] = useState(true);
48
- const [showSavedAlert, setShowSavedAlert] = useState(false);
49
-
50
- /**
51
- * Admin Panel Users
52
- */
53
- const [users, setUsers] = useState([]);
54
-
55
- /**
56
- * Global Settings form model
57
- */
58
- const [originalFormModel, setOriginalFormModel] = useState([]);
59
- const [formModel, setFormModel] = useState([]);
60
- const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
61
-
62
- const onCancelClick = () => {
63
- setFormModel(cloneDeep(originalFormModel));
64
- setHasUnsavedChanges(false);
65
- }
66
-
67
- /**
68
- * Save the Global Settings
69
- */
70
- const saveGlobalSettings = async (data) => {
71
- try {
72
- await PluginSettingsService.updatePluginSettings(data);
73
- setOriginalFormModel(cloneDeep(data));
74
- setHasUnsavedChanges(false);
75
- setShowSavedAlert(true);
76
- } catch (e) {
77
- throw e.data;
78
- }
79
- };
80
-
81
- /**
82
- * Patch Form Model
83
- */
84
- const patchFormModel = (key, value) => {
85
- const newFormModel = cloneDeep(formModel);
86
- set(newFormModel, key, value);
87
- setFormModel(newFormModel);
88
- setHasUnsavedChanges(!isEqual(originalFormModel, newFormModel));
89
- };
90
-
91
- useEffect(() => {
92
- async function fetchData() {
93
- setIsLoading(true);
94
- setIsLoggedIn(hasLocalazyIdentity());
95
-
96
- if (!hasLocalazyIdentity()) {
97
- setIsLoading(false);
98
-
99
- return;
100
- }
101
-
102
- const project = await ProjectService.getConnectedProject();
103
- const projectLanguagesWithoutDefaultLanguage =
104
- project?.languages?.filter(language => language.id !== project.sourceLanguage) || [];
105
- setProjectLanguages(projectLanguagesWithoutDefaultLanguage);
106
-
107
- const globalSettings = await PluginSettingsService.getPluginSettings();
108
-
109
- setFormModel(globalSettings);
110
- setOriginalFormModel(cloneDeep(globalSettings));
111
-
112
- const users = await StrapiUsersService.getAdminPanelUsers();
113
- setUsers(users);
114
-
115
- setIsLoading(false);
116
- }
117
- fetchData();
118
- // eslint-disable-next-line react-hooks/exhaustive-deps
119
- }, []);
120
-
121
- return (
122
- <>
123
- {!isLoading && !isLoggedIn && <Redirect to={`/plugins/${pluginId}/login`} />}
124
-
125
- <HeaderLayout
126
- title={t("plugin_settings.global_settings")}
127
- subtitle={t("plugin_settings.global_settings_description")}
128
- primaryAction={
129
- <Flex gap={2}>
130
- <Button
131
- variant="secondary"
132
- disabled={!hasUnsavedChanges}
133
- onClick={onCancelClick}
134
- >
135
- {t("plugin_settings.cancel")}
136
- </Button>
137
- <Button
138
- startIcon={<Check />}
139
- disabled={!hasUnsavedChanges}
140
- onClick={() => { saveGlobalSettings(formModel) }}
141
- >
142
- {t("plugin_settings.save")}
143
- </Button>
144
- </Flex>
145
- }
146
- as="h2"
147
- />
148
- <Box marginRight={10} marginLeft={10}>
149
- {!isLoading && showSavedAlert && (
150
- <Box marginBottom={8}>
151
- <Alert
152
- onClose={() => showSavedAlert(false)}
153
- closeLabel={t("plugin_settings.close")}
154
- title={t("plugin_settings.content_transfer_setup_saved")}
155
- variant="success"
156
- >
157
- {t("plugin_settings.global_settings_saved_successfully")}
158
- </Alert>
159
- </Box>
160
- )}
161
- {!isLoading && (
162
- <Box
163
- background="neutral0"
164
- padding={7}
165
- paddingTop={6}
166
- shadow="tableShadow"
167
- hasRadius
168
- >
169
- {/* Upload Settings */}
170
- <Typography
171
- variant="delta"
172
- textColor="neutral800"
173
- >
174
- {t("plugin_settings.upload_settings")}
175
- </Typography>
176
- {/* Allow automated upload to Localazy */}
177
- <br /><br />
178
- <ToggleInput
179
- label={t("plugin_settings.allow_automated_upload_to_localazy")}
180
- hint={t("plugin_settings.allow_automated_upload_to_localazy_info")}
181
- offLabel={t("plugin_settings.off")}
182
- onLabel={t("plugin_settings.on")}
183
- checked={typeof formModel?.upload?.allowAutomated === "boolean" ? formModel.upload.allowAutomated : false}
184
- onChange={e => patchFormModel("upload.allowAutomated", e.target.checked)} />
185
- {/* Automated upload triggers */}
186
- <br /><br />
187
- <Select
188
- label={t("plugin_settings.automated_upload_triggers")}
189
- hint={t("plugin_settings.automated_upload_triggers_info")}
190
- clearLabel={t("plugin_settings.clear")}
191
- placeholder={t("plugin_settings.automated_upload_triggers_placeholder")}
192
- onClear={() => patchFormModel("upload.automatedTriggers", [])}
193
- value={formModel?.upload?.automatedTriggers || []}
194
- onChange={(values) => patchFormModel("upload.automatedTriggers", values)}
195
- disabled={typeof formModel?.upload?.allowAutomated === "boolean" ? !formModel.upload.allowAutomated : true}
196
- multi
197
- withTags
198
- >
199
- <Option value="created">{t("plugin_settings.creating_new_data_entry")}</Option>
200
- <Option value="updated">{t("plugin_settings.editing_data_entry")}</Option>
201
- </Select>
202
- {/* Deprecate source keys on deletion */}
203
- <br /><br />
204
- <ToggleInput
205
- label={t("plugin_settings.deprecate_source_keys_on_delete")}
206
- hint={t("plugin_settings.deprecate_source_keys_on_delete_info")}
207
- offLabel={t("plugin_settings.off")}
208
- onLabel={t("plugin_settings.on")}
209
- checked={typeof formModel?.upload?.allowDeprecate === "boolean" ? formModel.upload.allowDeprecate : false}
210
- onChange={e => patchFormModel("upload.allowDeprecate", e.target.checked)} />
211
- <br /><br />
212
- <Divider />
213
- {/* Download Settings */}
214
- <br /><br />
215
- <Typography
216
- variant="delta"
217
- textColor="neutral800"
218
- >
219
- {t("plugin_settings.download_settings")}
220
- </Typography>
221
- {/* Processing of download webhook */}
222
- <br /><br />
223
- <ToggleInput
224
- label={t("plugin_settings.processing_of_download_webhook")}
225
- hint={t("plugin_settings.processing_of_download_webhook_info")}
226
- offLabel={t("plugin_settings.off")}
227
- onLabel={t("plugin_settings.on")}
228
- // eslint-disable-next-line max-len
229
- checked={typeof formModel?.download?.processDownloadWebhook === "boolean" ? formModel.download.processDownloadWebhook : true}
230
- onChange={e => patchFormModel("download.processDownloadWebhook", e.target.checked)} />
231
- {/* Webhook actions author */}
232
- <br /><br />
233
- <Select
234
- label={t("plugin_settings.webhook_author")}
235
- hint={t("plugin_settings.webhook_author_info")}
236
- clearLabel={t("plugin_settings.clear")}
237
- placeholder={t("plugin_settings.webhook_author_placeholder")}
238
- onClear={() => patchFormModel("download.webhookAuthorId", null)}
239
- value={formModel?.download?.webhookAuthorId || null}
240
- onChange={(value) => patchFormModel("download.webhookAuthorId", value)}
241
- >
242
- {users.map(user => (
243
- <Option
244
- key={user.id}
245
- value={user.id}
246
- >
247
- {`${user.firstname} ${user.lastname} (${user.email})`}
248
- </Option>
249
- ))}
250
- </Select>
251
- {/* Webhook languages selector */}
252
- <br /><br />
253
- <LanguagesSelector
254
- preselectedLanguages={formModel?.download?.webhookLanguages || []}
255
- projectLanguages={projectLanguages}
256
- onChange={(languages) => patchFormModel("download.webhookLanguages", languages)}
257
- label={t("plugin_settings.webhook_languages")}
258
- hint={t("plugin_settings.webhook_languages_info")}
259
- placeholder={t("plugin_settings.webhook_languages_placeholder")}
260
- />
261
-
262
- </Box>
263
- )}
264
- </Box>
265
- </>
266
- );
267
- }
268
-
269
- export default GlobalSettings;
@@ -1,145 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import PropTypes from "prop-types";
3
- import { Box } from "@strapi/design-system/Box";
4
- import { Flex } from "@strapi/design-system/Flex";
5
- import { Switch } from '@strapi/design-system/Switch';
6
- import { Checkbox } from '@strapi/design-system/Checkbox';
7
- import DynamicZone from '@strapi/icons/DynamicZone';
8
- import { Accordion, AccordionToggle, AccordionContent } from '@strapi/design-system/Accordion';
9
- import TreeItem from "../TreeItem";
10
- import flattenObject from "../../../@common/utils/functions/flatten-deep";
11
-
12
- function Tree(props) {
13
- const [isExpanded, setIsExpanded] = useState(false);
14
- const onTreeItemClick = (key, currentValue) => {
15
- props.onTreeItemClick(key, currentValue);
16
- };
17
-
18
- useEffect(() => {
19
- setIsExpanded(props.initiallyExpanded);
20
- }, [props.initiallyExpanded]);
21
-
22
- const createTree = (name, branch, path = "") => {
23
- const isBranchObject = typeof branch === "object" && branch !== null;
24
-
25
- if (isBranchObject) {
26
- return (
27
- <>
28
- {Object.entries(branch).map(([key, value]) => {
29
- const isSubbranchObject = typeof value === "object" && value !== null;
30
- let flattened = flattenObject(value)
31
- flattened = Object.fromEntries(Object.entries(flattened).filter(([key]) => !key.includes("__component__")));
32
- const flattenedKeys = Object.keys(flattened).map((k) => `${path}.${key}.${k}`);
33
-
34
- const hasTruthyValue = Object
35
- .values(flattened)
36
- .some(v => v);
37
- const hasFalsyValue = Object
38
- .values(flattened)
39
- .some(v => !v && v !== null);
40
- const hasAllNullValue = Object
41
- .values(flattened)
42
- .every(v => v === null);
43
-
44
- const RESERVED_KEYS_TO_SKIP = ["__model__", "__component__"];
45
-
46
- if (RESERVED_KEYS_TO_SKIP.includes(key)) {
47
- return false;
48
- }
49
- const passedKey = `${path}.${key}`;
50
-
51
- return (
52
- <Box
53
- key={passedKey}
54
- marginTop={6}
55
- marginBottom={6}
56
- marginLeft={6}
57
- >
58
- {isSubbranchObject && (
59
- <Checkbox
60
- disabled={hasAllNullValue}
61
- checked={hasTruthyValue && !hasFalsyValue}
62
- indeterminate={hasTruthyValue && hasFalsyValue}
63
- onChange={() => onTreeItemClick(flattenedKeys, hasTruthyValue && !hasFalsyValue)}
64
- >
65
- <Flex alignItems="center">
66
- {!!value?.__component__ && (<Flex alignItems="center" marginRight={2}><DynamicZone width="1rem" height="1rem" /></Flex>)}
67
- {value?.__component__ || key || "-"}
68
- </Flex>
69
- </Checkbox>)
70
- }
71
- <TreeItem
72
- onTreeItemClick={onTreeItemClick}
73
- passedKey={passedKey}
74
- >
75
- {createTree(key, value, passedKey)}
76
- </TreeItem>
77
- </Box>
78
- );
79
- })}
80
- </>
81
- );
82
- }
83
-
84
- return (
85
- <TreeItem
86
- onTreeItemClick={onTreeItemClick}
87
- key={path}
88
- passedKey={path}
89
- label={name}
90
- value={branch}
91
- />
92
- );
93
- };
94
-
95
- return (
96
- <Box>
97
- {Object.entries(props.objects).map(([key, value]) => {
98
- return (
99
- value.__model__ !== undefined && (
100
- <Box borderColor="neutral200" hasRadius>
101
- <Accordion
102
- size="S"
103
- expanded={isExpanded}
104
- onToggle={() => { setIsExpanded(!isExpanded) }}
105
- >
106
- <AccordionToggle
107
- variant="secondary"
108
- title={key}
109
- togglePosition="left"
110
- action={
111
- <Switch
112
- label={`switch_tree_${key}`}
113
- onChange={() =>
114
- onTreeItemClick([`${key}.__model__`], value.__model__)
115
- }
116
- selected={!!value.__model__}
117
- />}
118
- />
119
-
120
- <AccordionContent>
121
- {createTree(key, value, key)}
122
- </AccordionContent>
123
- </Accordion>
124
- </Box>
125
- )
126
-
127
- )
128
-
129
- }
130
- )}
131
- </Box>
132
- );
133
- }
134
-
135
- Tree.propTypes = {
136
- objects: PropTypes.object.isRequired,
137
- onTreeItemClick: PropTypes.func.isRequired,
138
- initiallyExpanded: PropTypes.bool,
139
- };
140
-
141
- Tree.defaultProps = {
142
- initiallyExpanded: false,
143
- };
144
-
145
- export default Tree;
@@ -1,48 +0,0 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
- import { Checkbox } from '@strapi/design-system/Checkbox';
4
-
5
- function TreeItem(props) {
6
- const onChange = (key, currentValue) => {
7
- props.onTreeItemClick(key, currentValue);
8
- };
9
-
10
- return (
11
- <>
12
- {typeof props.value === "boolean" && (
13
- <Checkbox
14
- checked={props.value}
15
- onChange={() => onChange([props.passedKey], props.value)}
16
- >
17
- {props.label || "-"}
18
- </Checkbox>
19
- )}
20
- {props.value === null && (
21
- <Checkbox
22
- checked={false}
23
- disabled
24
- >
25
- {props.label || "-"}
26
- </Checkbox>
27
- )}
28
- {props.children && <div key={props.passedKey}>{props.children}</div>}
29
- </>
30
- );
31
- }
32
-
33
- TreeItem.propTypes = {
34
- label: PropTypes.string,
35
- value: PropTypes.any,
36
- children: PropTypes.any,
37
- passedKey: PropTypes.string,
38
- onTreeItemClick: PropTypes.func.isRequired,
39
- };
40
-
41
- TreeItem.defaultProps = {
42
- label: undefined,
43
- value: undefined,
44
- children: undefined,
45
- passedKey: "",
46
- };
47
-
48
- export default TreeItem;
@@ -1,57 +0,0 @@
1
- import set from "lodash-es/set";
2
- import get from "lodash-es/get";
3
- import findModelValueByKey from "../utils/find-model-value-by-key";
4
- import getContentTransferSetupKeysSets from "./get-content-transfer-setup-keys-sets";
5
-
6
- export default (
7
- localizableTree = [],
8
- storedSetupSchema = [],
9
- allModelsTree = []
10
- ) => {
11
- const {
12
- oLocalizableTree,
13
- oStoredSetupSchema,
14
- newKeys,
15
- filteredStoredSetupSchemaKeys
16
- } = getContentTransferSetupKeysSets(
17
- localizableTree,
18
- storedSetupSchema,
19
- );
20
-
21
- const destinationObject = {};
22
- filteredStoredSetupSchemaKeys.forEach((key) => {
23
- const localizableTreeValueToSet = get(oStoredSetupSchema, key);
24
- const allModelsTreeValueToSet = findModelValueByKey(allModelsTree, key);
25
-
26
- if (allModelsTreeValueToSet === null) {
27
- set(destinationObject, key, null);
28
- } else if (localizableTreeValueToSet !== null) {
29
- set(destinationObject, key, localizableTreeValueToSet);
30
- } else {
31
- // check for newly activated localizable fields & update model accordingly
32
- const newValueToSet = findModelValueByKey(allModelsTree, key);
33
- set(destinationObject, key, newValueToSet);
34
- }
35
- });
36
- newKeys.forEach((key) => {
37
- set(destinationObject, key, get(oLocalizableTree, key));
38
- });
39
-
40
- const destinationArray = [];
41
- const sortedDestinationObjectKeys = Object.keys(destinationObject).sort(
42
- (a, b) => {
43
- if (a < b) return -1;
44
-
45
- if (a > b) return 1;
46
-
47
- return 0;
48
- }
49
- );
50
-
51
- // eslint-disable-next-line no-restricted-syntax
52
- for (const key of sortedDestinationObjectKeys) {
53
- destinationArray.push(destinationObject[key]);
54
- }
55
-
56
- return destinationArray;
57
- };
@@ -1,85 +0,0 @@
1
- import get from "lodash-es/get";
2
- import uniq from "lodash-es/uniq";
3
- import deepKeys from "@david-vaclavek/deep-keys";
4
- import sortByModelName from "../../@common/utils/sort-by-model-name";
5
- import arrayOfModelsToObject from "../utils/array-of-models-to-object";
6
-
7
- export default (
8
- localizableTree = [],
9
- storedSetupSchema = [],
10
- ) => {
11
- localizableTree = arrayOfModelsToObject(
12
- localizableTree.sort(sortByModelName)
13
- );
14
- storedSetupSchema = arrayOfModelsToObject(
15
- storedSetupSchema.sort(sortByModelName)
16
- );
17
-
18
- const currentModelsSchemaKeys = deepKeys(localizableTree);
19
- const storedSetupSchemaKeys = deepKeys(storedSetupSchema);
20
-
21
- // components order may have changed; this would prevent properties from mixing up
22
- const regex = /\.\d+\.__component__/;
23
- let currentModelsSchemaComponentKeys = currentModelsSchemaKeys.filter((key) => key.match(regex)).map((key) => key.replace(regex, ''));
24
- let storedSetupSchemaComponentKeys = storedSetupSchemaKeys.filter((key) => key.match(regex)).map((key) => key.replace(regex, ''));
25
- currentModelsSchemaComponentKeys = uniq(currentModelsSchemaComponentKeys);
26
- storedSetupSchemaComponentKeys = uniq(storedSetupSchemaComponentKeys);
27
-
28
- const currentModelsSchemaComponentKeysComponentProp = currentModelsSchemaKeys.filter((key) => key.includes('__component__') && currentModelsSchemaComponentKeys.some((k) => key.includes(k)));
29
- const storedSetupSchemaComponentKeysComponentProp = storedSetupSchemaKeys.filter((key) => key.includes('__component__') && storedSetupSchemaComponentKeys.some((k) => key.includes(k)));
30
-
31
- /**
32
- * Is in the "stored setup schema" but not in the "current model"
33
- */
34
- let removedKeys = [];
35
- removedKeys.push(...storedSetupSchemaComponentKeysComponentProp.map((key) => {
36
- const storedComponentName = get(storedSetupSchema, key);
37
- const currentComponentName = get(localizableTree, key);
38
-
39
- // this must return an array of keys
40
- if (storedComponentName !== currentComponentName) {
41
- const part = key.split('.').slice(0, -1).join('.');
42
-
43
- return storedSetupSchemaKeys.filter((k) => k.includes(part));
44
- }
45
-
46
- return [];
47
- }).reduce((acc, val) => acc.concat(val), []));
48
- removedKeys.push(...storedSetupSchemaKeys.filter((key) => !currentModelsSchemaKeys.includes(key)));
49
- removedKeys = uniq(removedKeys);
50
-
51
- /**
52
- * Is in the "current model" but not in the "stored setup schema"
53
- */
54
- let newKeys = [];
55
- newKeys.push(...currentModelsSchemaComponentKeysComponentProp.map((key) => {
56
- const storedComponentName = get(storedSetupSchema, key);
57
- const currentComponentName = get(localizableTree, key);
58
-
59
- // this must return an array of keys
60
- if (storedComponentName !== currentComponentName) {
61
- const part = key.split('.').slice(0, -1).join('.');
62
-
63
- return currentModelsSchemaKeys.filter((k) => k.includes(part));
64
- }
65
-
66
- return [];
67
- }).reduce((acc, val) => acc.concat(val), []));
68
- newKeys.push(...currentModelsSchemaKeys.filter((key) => !storedSetupSchemaKeys.includes(key)));
69
- newKeys = uniq(newKeys);
70
-
71
- /**
72
- * Filter out the removed keys
73
- */
74
- const filteredStoredSetupSchemaKeys = storedSetupSchemaKeys.filter(
75
- (key) => !removedKeys.includes(key)
76
- );
77
-
78
- return {
79
- oLocalizableTree: localizableTree,
80
- oStoredSetupSchema: storedSetupSchema,
81
- removedKeys,
82
- newKeys,
83
- filteredStoredSetupSchemaKeys,
84
- }
85
- }
@@ -1,75 +0,0 @@
1
- import get from "lodash-es/get";
2
- import PluginSettingsService from "../services/plugin-settings-service";
3
- import StrapiModelService from "../services/strapi-model-service";
4
- import getModelsTree from "../utils/get-models-tree";
5
- import findModelValueByKey from "../utils/find-model-value-by-key";
6
- import getContentTransferSetupKeysSets from "./get-content-transfer-setup-keys-sets";
7
-
8
- /**
9
- * Pass parameters optionally so we don't have to fetch them again
10
- * Returns whether the content transfer setup has changed
11
- */
12
- export default async (
13
- localizableTree = null,
14
- storedSetupSchema = null,
15
- allModelsTree = null
16
- ) => {
17
- let models;
18
-
19
- if (!localizableTree || !allModelsTree) {
20
- models = await StrapiModelService.getModels();
21
- }
22
-
23
- if (!localizableTree) {
24
- const localizableModels = await StrapiModelService.getLocalizableModels();
25
- localizableTree = getModelsTree(models, localizableModels);
26
- }
27
-
28
- if (!storedSetupSchema) {
29
- storedSetupSchema = (await PluginSettingsService.getContentTransferSetup())
30
- .setup;
31
- }
32
-
33
- if (!allModelsTree) {
34
- allModelsTree = getModelsTree(models, models);
35
- }
36
-
37
- const {
38
- oStoredSetupSchema,
39
- removedKeys,
40
- newKeys,
41
- filteredStoredSetupSchemaKeys
42
- } = getContentTransferSetupKeysSets(
43
- localizableTree,
44
- storedSetupSchema,
45
- );
46
-
47
- if (newKeys.length || removedKeys.length) {
48
- return true;
49
- }
50
-
51
- /**
52
- * Check if the values are different (type might have changed; boolean to null or vice versa)
53
- */
54
- // eslint-disable-next-line no-restricted-syntax
55
- for (const key of filteredStoredSetupSchemaKeys) {
56
- const localizableTreeValueToSet = get(oStoredSetupSchema, key);
57
- const allModelsTreeValueToSet = findModelValueByKey(allModelsTree, key);
58
-
59
- if (
60
- typeof localizableTreeValueToSet === "boolean" &&
61
- allModelsTreeValueToSet === null
62
- ) {
63
- return true;
64
- }
65
-
66
- if (
67
- localizableTreeValueToSet === null &&
68
- typeof allModelsTreeValueToSet === "boolean"
69
- ) {
70
- return true;
71
- }
72
- }
73
-
74
- return false;
75
- };