@scandipwa/magento-scripts 2.0.3 → 2.0.5

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 (347) hide show
  1. package/.eslintrc +6 -1
  2. package/exec.js +75 -39
  3. package/index.js +87 -46
  4. package/lib/commands/cleanup.js +18 -21
  5. package/lib/commands/cli.js +138 -73
  6. package/lib/commands/execute.js +5 -5
  7. package/lib/commands/import-db.js +21 -24
  8. package/lib/commands/link.js +17 -20
  9. package/lib/commands/logs.js +91 -91
  10. package/lib/commands/start.js +229 -191
  11. package/lib/commands/status.js +64 -50
  12. package/lib/commands/stop.js +14 -11
  13. package/lib/config/check-configuration-file.js +33 -28
  14. package/lib/config/cma-config.js +4 -4
  15. package/lib/config/config.js +40 -18
  16. package/lib/config/dependencies-for-platforms.js +33 -3
  17. package/lib/config/docker.js +259 -160
  18. package/lib/config/get-magento-version-config.js +45 -38
  19. package/lib/config/get-port-config.js +30 -44
  20. package/lib/config/get-project-configuration.js +8 -8
  21. package/lib/config/index.js +51 -42
  22. package/lib/config/magento/required-php-extensions/index.js +33 -19
  23. package/lib/config/magento/required-php-extensions/magento-2.3.js +2 -2
  24. package/lib/config/magento/required-php-extensions/magento-2.4.js +2 -2
  25. package/lib/config/magento-config.js +4 -4
  26. package/lib/config/php-config.js +8 -6
  27. package/lib/config/port-config.js +62 -43
  28. package/lib/config/save-config.js +6 -6
  29. package/lib/config/scandipwa-versions.js +2 -2
  30. package/lib/config/services/composer/versions/composer-1.js +2 -2
  31. package/lib/config/services/composer/versions/composer-2.js +2 -2
  32. package/lib/config/services/composer/versions/index.js +1 -1
  33. package/lib/config/services/elasticsearch/base-repo.js +1 -1
  34. package/lib/config/services/elasticsearch/default-es-env.js +4 -1
  35. package/lib/config/services/elasticsearch/versions/elasticsearch-6.8.js +17 -14
  36. package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +4 -4
  37. package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +4 -4
  38. package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +4 -4
  39. package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +4 -4
  40. package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +4 -4
  41. package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +4 -4
  42. package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +4 -4
  43. package/lib/config/services/elasticsearch/versions/index.js +9 -9
  44. package/lib/config/services/maildev/index.js +5 -2
  45. package/lib/config/services/mariadb/versions/index.js +1 -1
  46. package/lib/config/services/mariadb/versions/mariadb-10.2.js +5 -4
  47. package/lib/config/services/mariadb/versions/mariadb-10.3.js +5 -4
  48. package/lib/config/services/mariadb/versions/mariadb-10.4.js +5 -4
  49. package/lib/config/services/nginx/versions/index.js +1 -1
  50. package/lib/config/services/nginx/versions/nginx-1.18.js +5 -4
  51. package/lib/config/services/php/base-repo.js +1 -1
  52. package/lib/config/services/php/extensions/apcu.js +3 -3
  53. package/lib/config/services/php/extensions/bcmath.js +2 -2
  54. package/lib/config/services/php/extensions/curl.js +3 -6
  55. package/lib/config/services/php/extensions/gd.js +4 -3
  56. package/lib/config/services/php/extensions/index.js +9 -8
  57. package/lib/config/services/php/extensions/intl.js +3 -5
  58. package/lib/config/services/php/extensions/opcache.js +3 -5
  59. package/lib/config/services/php/extensions/pdo_mysql.js +2 -2
  60. package/lib/config/services/php/extensions/soap.js +3 -5
  61. package/lib/config/services/php/extensions/sodium.js +3 -5
  62. package/lib/config/services/php/extensions/xdebug.js +5 -3
  63. package/lib/config/services/php/extensions/xsl.js +3 -5
  64. package/lib/config/services/php/extensions/zip.js +3 -5
  65. package/lib/config/services/php/versions/index.js +1 -1
  66. package/lib/config/services/php/versions/php-7.2.js +13 -9
  67. package/lib/config/services/php/versions/php-7.3.js +13 -9
  68. package/lib/config/services/php/versions/php-7.4.js +13 -9
  69. package/lib/config/services/php/versions/php-8.1.js +13 -9
  70. package/lib/config/services/redis/index.js +1 -1
  71. package/lib/config/services/redis/redis-5.0.js +2 -2
  72. package/lib/config/services/redis/redis-6.0.js +2 -2
  73. package/lib/config/services/redis/redis-6.2.js +2 -2
  74. package/lib/config/services/ssl-terminator/index.js +6 -5
  75. package/lib/config/services/varnish/index.js +1 -1
  76. package/lib/config/services/varnish/varnish-6-0.js +7 -5
  77. package/lib/config/services/varnish/varnish-6-6.js +7 -5
  78. package/lib/config/services/varnish/varnish-7-0.js +7 -5
  79. package/lib/config/system-config.js +55 -32
  80. package/lib/config/templates/mariadb.template.cnf +8 -0
  81. package/lib/config/versions/index.js +48 -27
  82. package/lib/config/versions/magento-2.2.10.js +22 -15
  83. package/lib/config/versions/magento-2.3.0.js +22 -15
  84. package/lib/config/versions/magento-2.3.1.js +22 -15
  85. package/lib/config/versions/magento-2.3.2-p1.js +22 -15
  86. package/lib/config/versions/magento-2.3.2-p2.js +22 -15
  87. package/lib/config/versions/magento-2.3.2.js +22 -15
  88. package/lib/config/versions/magento-2.3.3-p1.js +22 -15
  89. package/lib/config/versions/magento-2.3.3.js +22 -15
  90. package/lib/config/versions/magento-2.3.4-p1.js +22 -15
  91. package/lib/config/versions/magento-2.3.4-p2.js +22 -15
  92. package/lib/config/versions/magento-2.3.4.js +22 -15
  93. package/lib/config/versions/magento-2.3.5-p1.js +22 -15
  94. package/lib/config/versions/magento-2.3.5-p2.js +22 -15
  95. package/lib/config/versions/magento-2.3.5.js +27 -15
  96. package/lib/config/versions/magento-2.3.6-p1.js +22 -15
  97. package/lib/config/versions/magento-2.3.6.js +22 -15
  98. package/lib/config/versions/magento-2.3.7-p1.js +22 -15
  99. package/lib/config/versions/magento-2.3.7-p2.js +22 -15
  100. package/lib/config/versions/magento-2.3.7-p3.js +22 -15
  101. package/lib/config/versions/magento-2.3.7-p4.js +22 -15
  102. package/lib/config/versions/magento-2.3.7.js +22 -15
  103. package/lib/config/versions/magento-2.4.0-p1.js +22 -15
  104. package/lib/config/versions/magento-2.4.0.js +22 -15
  105. package/lib/config/versions/magento-2.4.1-p1.js +23 -16
  106. package/lib/config/versions/magento-2.4.1.js +23 -16
  107. package/lib/config/versions/magento-2.4.2-p1.js +23 -16
  108. package/lib/config/versions/magento-2.4.2-p2.js +23 -16
  109. package/lib/config/versions/magento-2.4.2.js +23 -16
  110. package/lib/config/versions/magento-2.4.3-p1.js +23 -16
  111. package/lib/config/versions/magento-2.4.3-p2.js +23 -16
  112. package/lib/config/versions/magento-2.4.3-p3.js +23 -16
  113. package/lib/config/versions/magento-2.4.3.js +23 -16
  114. package/lib/config/versions/magento-2.4.4-p1.js +23 -16
  115. package/lib/config/versions/magento-2.4.4-p2.js +23 -16
  116. package/lib/config/versions/magento-2.4.4.js +23 -16
  117. package/lib/config/versions/magento-2.4.5-p1.js +23 -16
  118. package/lib/config/versions/magento-2.4.5.js +23 -17
  119. package/lib/config/xml-parser.js +21 -20
  120. package/lib/errors/known-error.js +8 -6
  121. package/lib/errors/unknown-error.js +8 -6
  122. package/lib/tasks/cache/create-cache-folder.js +10 -10
  123. package/lib/tasks/cache/index.js +1 -1
  124. package/lib/tasks/cache/remove-cache-folder.js +9 -9
  125. package/lib/tasks/cleanup.js +22 -24
  126. package/lib/tasks/cli/create-bashrc-config.js +19 -11
  127. package/lib/tasks/cli/index.js +10 -13
  128. package/lib/tasks/composer/index.js +20 -15
  129. package/lib/tasks/composer/local-auth-json.js +32 -18
  130. package/lib/tasks/database/connect-to-database.js +71 -51
  131. package/lib/tasks/database/create-magento-database.js +7 -7
  132. package/lib/tasks/database/create-magento-user.js +33 -20
  133. package/lib/tasks/database/default-magento-database.js +1 -1
  134. package/lib/tasks/database/default-magento-user.js +2 -2
  135. package/lib/tasks/database/dump-theme-config.js +16 -12
  136. package/lib/tasks/database/fix-db.js +62 -52
  137. package/lib/tasks/database/import-dump-to-database.js +122 -85
  138. package/lib/tasks/database/import-remote-db/index.js +16 -18
  139. package/lib/tasks/database/import-remote-db/ssh/database-dump-command.js +2 -2
  140. package/lib/tasks/database/import-remote-db/ssh/index.js +34 -35
  141. package/lib/tasks/database/import-remote-db/ssh/readymage.js +41 -38
  142. package/lib/tasks/database/import-remote-db/ssh/regular-server.js +44 -46
  143. package/lib/tasks/database/index.js +1 -1
  144. package/lib/tasks/database/magento-tables.js +3 -3
  145. package/lib/tasks/database/restore-theme-config.js +26 -19
  146. package/lib/tasks/docker/api.d.ts +1 -1
  147. package/lib/tasks/docker/api.js +31 -33
  148. package/lib/tasks/docker/containers/container-api.d.ts +49 -14
  149. package/lib/tasks/docker/containers/container-api.js +112 -83
  150. package/lib/tasks/docker/containers/index.js +3 -3
  151. package/lib/tasks/docker/containers/tasks.js +171 -99
  152. package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +34 -25
  153. package/lib/tasks/docker/convert-legacy-volumes.js +91 -55
  154. package/lib/tasks/docker/convert-mysql-to-mariadb.js +178 -147
  155. package/lib/tasks/docker/image/image-api.d.ts +2 -3
  156. package/lib/tasks/docker/image/image-api.js +41 -34
  157. package/lib/tasks/docker/image/index.js +2 -2
  158. package/lib/tasks/docker/index.js +26 -21
  159. package/lib/tasks/docker/network/index.js +3 -3
  160. package/lib/tasks/docker/network/network-api.d.ts +11 -8
  161. package/lib/tasks/docker/network/network-api.js +53 -61
  162. package/lib/tasks/docker/network/tasks.js +41 -31
  163. package/lib/tasks/docker/project-image-builder.js +175 -92
  164. package/lib/tasks/docker/system/index.js +2 -2
  165. package/lib/tasks/docker/system/system-api.d.ts +2 -2
  166. package/lib/tasks/docker/system/system-api.js +16 -19
  167. package/lib/tasks/docker/volume/index.js +3 -3
  168. package/lib/tasks/docker/volume/tasks.js +63 -46
  169. package/lib/tasks/docker/volume/volume-api.d.ts +8 -5
  170. package/lib/tasks/docker/volume/volume-api.js +59 -76
  171. package/lib/tasks/execute.js +91 -55
  172. package/lib/tasks/file-system/create-mariadb-config.js +26 -11
  173. package/lib/tasks/file-system/create-nginx-config.js +18 -19
  174. package/lib/tasks/file-system/create-php-config.js +12 -8
  175. package/lib/tasks/file-system/create-php-debug-config.js +23 -18
  176. package/lib/tasks/file-system/create-php-fpm-config.js +14 -9
  177. package/lib/tasks/file-system/create-phpstorm-config/database-config.js +144 -112
  178. package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +69 -45
  179. package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +69 -70
  180. package/lib/tasks/file-system/create-phpstorm-config/index.js +28 -24
  181. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +9 -9
  182. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +23 -23
  183. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +22 -19
  184. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +26 -16
  185. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +14 -15
  186. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +43 -34
  187. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/inspection-tools-config.js +14 -6
  188. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +9 -9
  189. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +53 -47
  190. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +41 -12
  191. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +33 -30
  192. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +35 -38
  193. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +14 -15
  194. package/lib/tasks/file-system/create-phpstorm-config/keys.js +10 -10
  195. package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +33 -25
  196. package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +28 -25
  197. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +53 -32
  198. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-config.js +7 -7
  199. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +37 -27
  200. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +53 -31
  201. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +42 -30
  202. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/index.js +33 -20
  203. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/php-docker-settings-config.js +3 -3
  204. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/setup-php-docker-container-settings-config.js +27 -16
  205. package/lib/tasks/file-system/create-phpstorm-config/setup-xml-structure.js +14 -13
  206. package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +52 -34
  207. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +41 -33
  208. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +39 -27
  209. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +34 -30
  210. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/mess-detector-project-configuration-config.js +32 -22
  211. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-code-sniffer-project-configuration-config.js +32 -22
  212. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-cs-fixer-project-configuration-config.js +32 -22
  213. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +42 -31
  214. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +45 -33
  215. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-stan-project-configuration-config.js.js +32 -22
  216. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +22 -19
  217. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +35 -21
  218. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/psalm-project-configuration-config.js.js +31 -22
  219. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +38 -28
  220. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/workspace-config.js +5 -5
  221. package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +3 -2
  222. package/lib/tasks/file-system/create-ssl-terminator-config.js +46 -34
  223. package/lib/tasks/file-system/create-varnish-config.js +20 -23
  224. package/lib/tasks/file-system/create-vscode-config.js +66 -49
  225. package/lib/tasks/file-system/index.js +29 -25
  226. package/lib/tasks/import-dump.js +54 -45
  227. package/lib/tasks/link.js +24 -23
  228. package/lib/tasks/magento/enable-magento-composer-plugins.js +213 -149
  229. package/lib/tasks/magento/index.js +1 -1
  230. package/lib/tasks/magento/install-magento-project.js +158 -97
  231. package/lib/tasks/magento/remove-magento.js +30 -24
  232. package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +27 -15
  233. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +23 -10
  234. package/lib/tasks/magento/setup-magento/create-admin.js +21 -13
  235. package/lib/tasks/magento/setup-magento/delete-admin-users.js +5 -5
  236. package/lib/tasks/magento/setup-magento/delete-customers.js +16 -10
  237. package/lib/tasks/magento/setup-magento/delete-orders.js +16 -10
  238. package/lib/tasks/magento/setup-magento/disable-2fa.js +11 -8
  239. package/lib/tasks/magento/setup-magento/disable-maintenance-mode.js +7 -7
  240. package/lib/tasks/magento/setup-magento/disable-page-builder.js +5 -4
  241. package/lib/tasks/magento/setup-magento/flush-redis-config.js +14 -8
  242. package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +21 -17
  243. package/lib/tasks/magento/setup-magento/index-products.js +4 -6
  244. package/lib/tasks/magento/setup-magento/index.js +54 -47
  245. package/lib/tasks/magento/setup-magento/install-magento.js +112 -79
  246. package/lib/tasks/magento/setup-magento/migrate-database.js +115 -96
  247. package/lib/tasks/magento/setup-magento/set-base-url.js +35 -21
  248. package/lib/tasks/magento/setup-magento/set-deployment-mode.js +15 -13
  249. package/lib/tasks/magento/setup-magento/set-mail-config.js +20 -14
  250. package/lib/tasks/magento/setup-magento/set-url-rewrite.js +13 -9
  251. package/lib/tasks/magento/setup-magento/upgrade-magento.js +30 -22
  252. package/lib/tasks/magento/setup-magento/urn-highlighter.js +11 -11
  253. package/lib/tasks/magento/setup-magento/varnish-config.js +42 -32
  254. package/lib/tasks/magento/setup-magento/waiting-for-redis.js +6 -8
  255. package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +108 -65
  256. package/lib/tasks/magento/uninstall-magento.js +19 -16
  257. package/lib/tasks/php/php-container.d.ts +19 -0
  258. package/lib/tasks/php/php-container.js +50 -46
  259. package/lib/tasks/php/update-env-php.js +50 -30
  260. package/lib/tasks/project-config/index.js +12 -8
  261. package/lib/tasks/requirements/composer-credentials.js +215 -112
  262. package/lib/tasks/requirements/docker/context.js +49 -37
  263. package/lib/tasks/requirements/docker/index.js +123 -89
  264. package/lib/tasks/requirements/docker/install-on-mac.js +21 -14
  265. package/lib/tasks/requirements/docker/install.js +63 -52
  266. package/lib/tasks/requirements/docker/performance.js +39 -24
  267. package/lib/tasks/requirements/docker/permissions.js +27 -17
  268. package/lib/tasks/requirements/docker/running-status.js +79 -66
  269. package/lib/tasks/requirements/docker/version.js +15 -11
  270. package/lib/tasks/requirements/index.js +33 -29
  271. package/lib/tasks/requirements/node-version.js +8 -8
  272. package/lib/tasks/requirements/php-version.js +14 -11
  273. package/lib/tasks/requirements/platform.js +42 -26
  274. package/lib/tasks/requirements/rosetta.js +15 -12
  275. package/lib/tasks/start.js +172 -148
  276. package/lib/tasks/status/index.js +155 -88
  277. package/lib/tasks/stop.js +22 -18
  278. package/lib/tasks/theme/build-theme.js +50 -33
  279. package/lib/tasks/theme/install-theme.js +31 -18
  280. package/lib/tasks/theme/link-theme.js +27 -21
  281. package/lib/tasks/theme/retrieve-theme-data.js +24 -18
  282. package/lib/tasks/theme/setup-themes.js +87 -59
  283. package/lib/tasks/theme/symlink-theme.js +44 -22
  284. package/lib/util/CSA-theme.js +23 -21
  285. package/lib/util/analytics.js +130 -75
  286. package/lib/util/arch.js +22 -18
  287. package/lib/util/clean-object.js +15 -10
  288. package/lib/util/config-file-validator.js +74 -55
  289. package/lib/util/config-php-json.js +34 -16
  290. package/lib/util/connection-string.js +41 -27
  291. package/lib/util/console-block.js +112 -65
  292. package/lib/util/database.js +56 -33
  293. package/lib/util/deepmerge.d.ts +1 -1
  294. package/lib/util/deepmerge.js +19 -28
  295. package/lib/util/dockerfile-builder/build-instructions.js +159 -143
  296. package/lib/util/dockerfile-builder/index.js +47 -73
  297. package/lib/util/dockerfile-builder/types.d.ts +2 -1
  298. package/lib/util/download-file.js +28 -16
  299. package/lib/util/env-php-json.js +42 -16
  300. package/lib/util/exec-async-command.d.ts +9 -9
  301. package/lib/util/exec-async-command.js +82 -59
  302. package/lib/util/exec-async.d.ts +2 -0
  303. package/lib/util/exec-async.js +12 -5
  304. package/lib/util/execute-in-container.js +22 -27
  305. package/lib/util/execute-sudo-command.js +11 -15
  306. package/lib/util/get-brew-bin-path.js +27 -23
  307. package/lib/util/get-installed-magento-version.js +22 -16
  308. package/lib/util/get-jsonfile-data.js +14 -9
  309. package/lib/util/install-dependencies-task.js +53 -41
  310. package/lib/util/instance-metadata.js +44 -29
  311. package/lib/util/ip.js +16 -12
  312. package/lib/util/is-running-root.js +6 -3
  313. package/lib/util/is-wsl.js +10 -10
  314. package/lib/util/macos-version.js +12 -11
  315. package/lib/util/magento-task.js +14 -9
  316. package/lib/util/match-filesystem.js +22 -16
  317. package/lib/util/move-file.js +40 -25
  318. package/lib/util/nginx-logs-parser.js +50 -39
  319. package/lib/util/open-browser.js +10 -5
  320. package/lib/util/os-platform.js +40 -32
  321. package/lib/util/path-exists-sync.js +10 -6
  322. package/lib/util/path-exists.js +6 -6
  323. package/lib/util/php-task.js +11 -10
  324. package/lib/util/portscanner.js +97 -85
  325. package/lib/util/prefix.js +31 -22
  326. package/lib/util/resolve-configuration-with-overrides.js +30 -15
  327. package/lib/util/rmdir-safe.js +15 -11
  328. package/lib/util/run-composer.js +16 -16
  329. package/lib/util/run-container-image.js +9 -4
  330. package/lib/util/run-magento.js +16 -17
  331. package/lib/util/run-php.js +16 -21
  332. package/lib/util/safe-regex-extract.js +8 -12
  333. package/lib/util/set-config.js +24 -15
  334. package/lib/util/sleep.js +7 -2
  335. package/lib/util/systemctl.js +62 -44
  336. package/lib/util/wait-for-it.js +42 -33
  337. package/lib/util/wait-for-logs.js +42 -35
  338. package/lib/util/xdg-open-exists.js +19 -19
  339. package/package.json +7 -3
  340. package/tsconfig.json +24 -0
  341. package/typings/context.d.ts +76 -34
  342. package/typings/index.d.ts +54 -20
  343. package/typings/override.d.ts +14 -0
  344. package/typings/phpstorm.d.ts +19 -19
  345. package/.prettierrc +0 -3
  346. package/lib/util/get-php-for-phpbrew.js +0 -30
  347. package/lib/util/request.js +0 -0
@@ -1,106 +1,155 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
4
- const runComposerCommand = require('../../util/run-composer');
5
- const matchFilesystem = require('../../util/match-filesystem');
6
- const pathExists = require('../../util/path-exists');
7
- const getJsonFileData = require('../../util/get-jsonfile-data');
8
- const KnownError = require('../../errors/known-error');
9
- const UnknownError = require('../../errors/unknown-error');
10
- const { runPHPContainerCommand } = require('../php/php-container');
11
-
12
- const magentoProductEnterpriseEdition = 'magento/product-enterprise-edition';
13
- const magentoProductCommunityEdition = 'magento/product-community-edition';
1
+ const path = require('path')
2
+ const fs = require('fs')
3
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
4
+ const runComposerCommand = require('../../util/run-composer')
5
+ const matchFilesystem = require('../../util/match-filesystem')
6
+ const pathExists = require('../../util/path-exists')
7
+ const getJsonFileData = require('../../util/get-jsonfile-data')
8
+ const KnownError = require('../../errors/known-error')
9
+ const UnknownError = require('../../errors/unknown-error')
10
+ const { runPHPContainerCommand } = require('../php/php-container')
11
+
12
+ const magentoProductEnterpriseEdition = 'magento/product-enterprise-edition'
13
+ const magentoProductCommunityEdition = 'magento/product-community-edition'
14
14
 
15
15
  /**
16
16
  * @param {import('../../../typings/context').ListrContext} ctx
17
- * @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext>} task
17
+ * @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext, any>} task
18
+ * @param {{ magentoEdition: string, magentoProductSelectedEdition: string, magentoPackageVersion: string }} param2
18
19
  */
19
- const adjustComposerJson = async (ctx, task, {
20
- magentoEdition,
21
- magentoProductSelectedEdition,
22
- magentoPackageVersion
23
- }) => {
24
- const composerData = await getJsonFileData(path.join(ctx.config.baseConfig.magentoDir, 'composer.json'));
20
+ const adjustComposerJson = async (
21
+ ctx,
22
+ task,
23
+ { magentoEdition, magentoProductSelectedEdition, magentoPackageVersion }
24
+ ) => {
25
+ /**
26
+ * @type {{ repositories?: { type: string, url: string }[] | Record<string, { type: string, url: string }>, require: Record<string, string> } | null}
27
+ */
28
+ const composerData = await getJsonFileData(
29
+ path.join(ctx.config.baseConfig.magentoDir, 'composer.json')
30
+ )
25
31
 
26
32
  // fix composer magento repository
27
- if (composerData && (!composerData.repositories
28
- || (Array.isArray(composerData.repositories)
29
- && !composerData.repositories.some((repo) => repo.type === 'composer' && repo.url.includes('repo.magento.com'))
30
- )
31
- || (typeof composerData.repositories === 'object'
32
- && !Object.values(composerData.repositories).some((repo) => repo.type === 'composer' && repo.url.includes('repo.magento.com')))
33
- )) {
34
- task.output = 'No Magento repository is set in composer.json! Setting up...';
35
- await runComposerCommand(ctx, 'config repo.0 composer https://repo.magento.com', {
36
- callback: !ctx.verbose ? undefined : (t) => {
37
- task.output = t;
33
+ if (
34
+ composerData &&
35
+ (!composerData.repositories ||
36
+ (Array.isArray(composerData.repositories) &&
37
+ !composerData.repositories.some(
38
+ (repo) =>
39
+ repo.type === 'composer' &&
40
+ repo.url.includes('repo.magento.com')
41
+ )) ||
42
+ (typeof composerData.repositories === 'object' &&
43
+ !Object.values(composerData.repositories).some(
44
+ (repo) =>
45
+ repo.type === 'composer' &&
46
+ repo.url.includes('repo.magento.com')
47
+ )))
48
+ ) {
49
+ task.output =
50
+ 'No Magento repository is set in composer.json! Setting up...'
51
+ await runComposerCommand(
52
+ ctx,
53
+ 'config repo.0 composer https://repo.magento.com',
54
+ {
55
+ callback: !ctx.verbose
56
+ ? undefined
57
+ : (t) => {
58
+ task.output = t
59
+ }
38
60
  }
39
- });
61
+ )
40
62
  }
41
63
 
42
64
  // if composer-root-update-plugin is not installed in composer, install it.
43
- if (composerData && !composerData.require['magento/composer-root-update-plugin']) {
44
- task.output = 'Installing magento/composer-root-update-plugin!';
45
- await runComposerCommand(ctx, 'require magento/composer-root-update-plugin:^1',
65
+ if (
66
+ composerData &&
67
+ !composerData.require['magento/composer-root-update-plugin']
68
+ ) {
69
+ task.output = 'Installing magento/composer-root-update-plugin!'
70
+ await runComposerCommand(
71
+ ctx,
72
+ 'require magento/composer-root-update-plugin:^1',
46
73
  {
47
- callback: !ctx.verbose ? undefined : (t) => {
48
- task.output = t;
49
- }
50
- });
74
+ callback: !ctx.verbose
75
+ ? undefined
76
+ : (t) => {
77
+ task.output = t
78
+ }
79
+ }
80
+ )
51
81
  }
52
82
 
53
83
  // if for some reason both editions are installed, throw an error
54
- if (composerData
55
- && composerData.require[magentoProductCommunityEdition]
56
- && composerData.require[magentoProductEnterpriseEdition]
84
+ if (
85
+ composerData &&
86
+ composerData.require[magentoProductCommunityEdition] &&
87
+ composerData.require[magentoProductEnterpriseEdition]
57
88
  ) {
58
89
  throw new KnownError(`Somehow, both Magento editions are installed!
59
- Please choose only one edition an modify your composer.json manually!`);
90
+ Please choose only one edition an modify your composer.json manually!`)
60
91
  }
61
92
 
62
- const oppositeEdition = [magentoProductCommunityEdition, magentoProductEnterpriseEdition]
63
- .find((edition) => edition !== magentoProductSelectedEdition);
93
+ const oppositeEdition = [
94
+ magentoProductCommunityEdition,
95
+ magentoProductEnterpriseEdition
96
+ ].find((edition) => edition !== magentoProductSelectedEdition)
64
97
 
65
98
  // if opposite edition is installed than selected in config file, throw an error
66
- if (composerData && composerData.require[oppositeEdition]) {
99
+ if (
100
+ oppositeEdition &&
101
+ composerData &&
102
+ composerData.require[oppositeEdition]
103
+ ) {
67
104
  throw new KnownError(`You have installed ${oppositeEdition} but selected magento.edition as ${magentoEdition} in config file!
68
105
 
69
- Change magento edition in config file or manually reinstall correct magento edition!`);
106
+ Change magento edition in config file or manually reinstall correct magento edition!`)
70
107
  }
71
108
 
72
109
  // if magento package is not installed in composer, require it.
73
110
  if (composerData && !composerData.require[magentoProductSelectedEdition]) {
74
- task.output = `Installing ${magentoProductSelectedEdition}=${magentoPackageVersion}!`;
75
- await runComposerCommand(ctx, `require ${magentoProductSelectedEdition}:${magentoPackageVersion}`,
111
+ task.output = `Installing ${magentoProductSelectedEdition}=${magentoPackageVersion}!`
112
+ await runComposerCommand(
113
+ ctx,
114
+ `require ${magentoProductSelectedEdition}:${magentoPackageVersion}`,
76
115
  {
77
- callback: !ctx.verbose ? undefined : (t) => {
78
- task.output = t;
79
- }
80
- });
116
+ callback: !ctx.verbose
117
+ ? undefined
118
+ : (t) => {
119
+ task.output = t
120
+ }
121
+ }
122
+ )
81
123
  }
82
- };
124
+ }
83
125
 
84
126
  /**
85
127
  * @param {import('../../../typings/context').ListrContext} ctx
86
- * @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext>} task
128
+ * @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext, any>} task
129
+ * @param {{ magentoProject: string, magentoPackageVersion: string }} param2
87
130
  */
88
- const createMagentoProject = async (ctx, task, {
89
- magentoProject,
90
- magentoPackageVersion
91
- }) => {
92
- const tempDir = `/tmp/magento-tmpdir-${Date.now()}`;
131
+ const createMagentoProject = async (
132
+ ctx,
133
+ task,
134
+ { magentoProject, magentoPackageVersion }
135
+ ) => {
136
+ const tempDir = `/tmp/magento-tmpdir-${Date.now()}`
93
137
  const installCommand = [
94
138
  'create-project',
95
139
  `--repository=https://repo.magento.com/ ${magentoProject}=${magentoPackageVersion}`,
96
140
  '--no-install',
97
141
  `"${tempDir}"`
98
- ];
142
+ ]
99
143
 
100
- await runPHPContainerCommand(ctx, `bash -c 'mkdir ${tempDir} && \
144
+ await runPHPContainerCommand(
145
+ ctx,
146
+ `bash -c 'mkdir ${tempDir} && \
101
147
  composer ${installCommand.join(' ')} && \
102
- mv ${tempDir}/composer.json ${ctx.config.baseConfig.containerMagentoDir}/composer.json'`);
103
- };
148
+ mv ${tempDir}/composer.json ${
149
+ ctx.config.baseConfig.containerMagentoDir
150
+ }/composer.json'`
151
+ )
152
+ }
104
153
 
105
154
  /**
106
155
  * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
@@ -108,75 +157,87 @@ mv ${tempDir}/composer.json ${ctx.config.baseConfig.containerMagentoDir}/compose
108
157
  const installMagentoProject = () => ({
109
158
  title: 'Installing Magento Project',
110
159
  task: async (ctx, task) => {
111
- const { config: { baseConfig, overridenConfiguration } } = ctx;
160
+ const {
161
+ config: { baseConfig, overridenConfiguration }
162
+ } = ctx
112
163
  const {
113
164
  magento: { edition: magentoEdition },
114
165
  magentoVersion: magentoPackageVersion
115
- } = overridenConfiguration;
116
- const isEnterprise = magentoEdition === 'enterprise';
117
- const magentoProductSelectedEdition = isEnterprise ? magentoProductEnterpriseEdition : magentoProductCommunityEdition;
118
- const magentoProject = `magento/project-${magentoEdition}-edition`;
119
-
120
- if (await pathExists(path.join(baseConfig.magentoDir, 'composer.json'))) {
166
+ } = overridenConfiguration
167
+ const isEnterprise = magentoEdition === 'enterprise'
168
+ const magentoProductSelectedEdition = isEnterprise
169
+ ? magentoProductEnterpriseEdition
170
+ : magentoProductCommunityEdition
171
+ const magentoProject = `magento/project-${magentoEdition}-edition`
172
+
173
+ if (
174
+ await pathExists(path.join(baseConfig.magentoDir, 'composer.json'))
175
+ ) {
121
176
  await adjustComposerJson(ctx, task, {
122
177
  magentoEdition,
123
178
  magentoPackageVersion,
124
179
  magentoProductSelectedEdition
125
- });
180
+ })
126
181
  }
127
182
 
128
183
  const isFsMatching = await matchFilesystem(baseConfig.magentoDir, {
129
- 'app/etc': [
130
- 'env.php'
131
- ],
184
+ 'app/etc': ['env.php'],
132
185
  'bin/magento': true,
133
186
  vendor: true,
134
187
  'composer.json': true,
135
188
  'composer.lock': true
136
- });
189
+ })
137
190
 
138
191
  if (isFsMatching) {
139
- ctx.magentoFirstInstall = false;
140
- task.skip();
141
- return;
192
+ ctx.magentoFirstInstall = false
193
+ task.skip()
194
+ return
142
195
  }
143
196
 
144
- task.title = `Installing Magento ${magentoPackageVersion}`;
145
- task.output = 'Creating Magento project';
197
+ task.title = `Installing Magento ${magentoPackageVersion}`
198
+ task.output = 'Creating Magento project'
146
199
 
147
- if (!await pathExists(path.join(process.cwd(), 'composer.json'))) {
200
+ if (!(await pathExists(path.join(process.cwd(), 'composer.json')))) {
148
201
  await createMagentoProject(ctx, task, {
149
202
  magentoProject,
150
203
  magentoPackageVersion
151
- });
204
+ })
152
205
  }
153
206
 
154
- if (!await pathExists(path.join(process.cwd(), 'app', 'etc'))) {
207
+ if (!(await pathExists(path.join(process.cwd(), 'app', 'etc')))) {
155
208
  await fs.promises.mkdir(path.join(process.cwd(), 'app', 'etc'), {
156
209
  recursive: true
157
- });
210
+ })
158
211
  }
159
212
 
160
213
  try {
161
- await runComposerCommand(ctx, 'install',
162
- {
163
- callback: !ctx.verbose ? undefined : (t) => {
164
- task.output = t;
165
- }
166
- });
214
+ await runComposerCommand(ctx, 'install', {
215
+ callback: !ctx.verbose
216
+ ? undefined
217
+ : (t) => {
218
+ task.output = t
219
+ }
220
+ })
167
221
  } catch (e) {
168
- if (e.message.includes('man-in-the-middle attack')) {
222
+ if (
223
+ e instanceof UnknownError &&
224
+ e.message.includes('man-in-the-middle attack')
225
+ ) {
169
226
  throw new KnownError(`Probably you haven't setup pubkeys in composer.
170
- Please run ${logger.style.command('composer diagnose')} in cli to get mode.\n\n${e}`);
227
+ Please run ${logger.style.command(
228
+ 'composer diagnose'
229
+ )} in cli to get mode.\n\n${e}`)
171
230
  }
172
231
 
173
- throw new UnknownError(`Unexpected error during composer install.\n\n${e}`);
232
+ throw new UnknownError(
233
+ `Unexpected error during composer install.\n\n${e}`
234
+ )
174
235
  }
175
- ctx.magentoFirstInstall = true;
236
+ ctx.magentoFirstInstall = true
176
237
  },
177
238
  options: {
178
239
  bottomBar: 10
179
240
  }
180
- });
241
+ })
181
242
 
182
- module.exports = installMagentoProject;
243
+ module.exports = installMagentoProject
@@ -1,6 +1,6 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const pathExists = require('../../util/path-exists');
1
+ const fs = require('fs')
2
+ const path = require('path')
3
+ const pathExists = require('../../util/path-exists')
4
4
 
5
5
  const magentoFiles = [
6
6
  '.htaccess',
@@ -30,35 +30,41 @@ const magentoFiles = [
30
30
  'setup',
31
31
  'var',
32
32
  'vendor'
33
- ];
33
+ ]
34
34
 
35
35
  /**
36
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
36
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
37
37
  */
38
38
  const removeMagento = () => ({
39
39
  title: 'Remove magento application folder',
40
40
  skip: async (ctx) => {
41
- const { config: { baseConfig } } = ctx;
42
- const appPathExists = await pathExists(baseConfig.magentoDir);
41
+ const {
42
+ config: { baseConfig }
43
+ } = ctx
44
+ const appPathExists = await pathExists(baseConfig.magentoDir)
43
45
 
44
- return !(appPathExists && ctx.force);
46
+ return !(appPathExists && ctx.force)
45
47
  },
46
48
  task: async (ctx) => {
47
- const { config: { baseConfig } } = ctx;
48
- await Promise.all(magentoFiles.map(async (fileName) => {
49
- const filePath = path.join(baseConfig.magentoDir, fileName);
50
- const fileExists = await pathExists(filePath);
51
- if (!fileExists) {
52
- return;
53
- }
54
- const file = await fs.promises.stat(filePath);
55
- if (file.isFile()) {
56
- await fs.promises.unlink(filePath);
57
- } else if (file.isDirectory()) {
58
- await fs.promises.rmdir(filePath, { recursive: true });
59
- }
60
- }));
49
+ const {
50
+ config: { baseConfig }
51
+ } = ctx
52
+ await Promise.all(
53
+ magentoFiles.map(async (fileName) => {
54
+ const filePath = path.join(baseConfig.magentoDir, fileName)
55
+ const fileExists = await pathExists(filePath)
56
+ if (!fileExists) {
57
+ return
58
+ }
59
+ const file = await fs.promises.stat(filePath)
60
+ if (file.isFile()) {
61
+ await fs.promises.unlink(filePath)
62
+ } else if (file.isDirectory()) {
63
+ await fs.promises.rmdir(filePath, { recursive: true })
64
+ }
65
+ })
66
+ )
61
67
  }
62
- });
68
+ })
63
69
 
64
- module.exports = removeMagento;
70
+ module.exports = removeMagento
@@ -1,5 +1,5 @@
1
- const envPhpToJson = require('../../../util/env-php-json');
2
- const magentoTask = require('../../../util/magento-task');
1
+ const envPhpToJson = require('../../../util/env-php-json')
2
+ const magentoTask = require('../../../util/magento-task')
3
3
 
4
4
  /**
5
5
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -7,24 +7,36 @@ const magentoTask = require('../../../util/magento-task');
7
7
  const disableFullPageCache = () => ({
8
8
  title: 'Adjusting full_page cache setting',
9
9
  task: async (ctx, task) => {
10
- const { cache_types } = await envPhpToJson(ctx);
11
- if (cache_types && typeof cache_types.full_page === 'number') {
12
- if (cache_types.full_page !== 0 && !ctx.config.overridenConfiguration.configuration.varnish.enabled) {
13
- task.title = 'Disabling full_page cache in Magento';
14
- return task.newListr(magentoTask('cache:disable full_page'));
10
+ const envData = await envPhpToJson(ctx)
11
+ if (
12
+ envData &&
13
+ envData.cache_types &&
14
+ typeof envData.cache_types.full_page === 'number'
15
+ ) {
16
+ if (
17
+ envData.cache_types.full_page !== 0 &&
18
+ !ctx.config.overridenConfiguration.configuration.varnish.enabled
19
+ ) {
20
+ task.title = 'Disabling full_page cache in Magento'
21
+ return task.newListr(magentoTask('cache:disable full_page'))
15
22
  }
16
23
 
17
- if (ctx.config.overridenConfiguration.configuration.varnish.enabled && cache_types.full_page !== 1) {
18
- task.title = 'Enabling full_page cache in Magento (Varnish is enabled)';
19
- return task.newListr(magentoTask('cache:enable full_page'));
24
+ if (
25
+ ctx.config.overridenConfiguration.configuration.varnish
26
+ .enabled &&
27
+ envData.cache_types.full_page !== 1
28
+ ) {
29
+ task.title =
30
+ 'Enabling full_page cache in Magento (Varnish is enabled)'
31
+ return task.newListr(magentoTask('cache:enable full_page'))
20
32
  }
21
33
  } else {
22
- task.skip('full_page cache type is not set in env.php');
23
- return;
34
+ task.skip('full_page cache type is not set in env.php')
35
+ return
24
36
  }
25
37
 
26
- task.skip();
38
+ task.skip()
27
39
  }
28
- });
40
+ })
29
41
 
30
- module.exports = disableFullPageCache;
42
+ module.exports = disableFullPageCache
@@ -1,18 +1,31 @@
1
- const { updateTableValues, isTableExists } = require('../../../util/database');
1
+ const { updateTableValues, isTableExists } = require('../../../util/database')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  module.exports = () => ({
7
7
  title: 'Configuring Elasticsearch',
8
- skip: async (ctx) => !(await isTableExists('magento', 'core_config_data', ctx)),
8
+ skip: async (ctx) =>
9
+ !(await isTableExists('magento', 'core_config_data', ctx)),
9
10
  task: async (ctx, task) => {
10
- const { ports, databaseConnection, isDockerDesktop } = ctx;
11
- const hostMachine = !isDockerDesktop ? '127.0.0.1' : 'host.docker.internal';
12
- await updateTableValues('core_config_data', [
13
- { path: 'catalog/search/engine', value: 'elasticsearch7' },
14
- { path: 'catalog/search/elasticsearch7_server_hostname', value: hostMachine },
15
- { path: 'catalog/search/elasticsearch7_server_port', value: `${ports.elasticsearch}` }
16
- ], { databaseConnection, task });
11
+ const { ports, databaseConnection, isDockerDesktop } = ctx
12
+ const hostMachine = !isDockerDesktop
13
+ ? '127.0.0.1'
14
+ : 'host.docker.internal'
15
+ await updateTableValues(
16
+ 'core_config_data',
17
+ [
18
+ { path: 'catalog/search/engine', value: 'elasticsearch7' },
19
+ {
20
+ path: 'catalog/search/elasticsearch7_server_hostname',
21
+ value: hostMachine
22
+ },
23
+ {
24
+ path: 'catalog/search/elasticsearch7_server_port',
25
+ value: `${ports.elasticsearch}`
26
+ }
27
+ ],
28
+ { databaseConnection, task }
29
+ )
17
30
  }
18
- });
31
+ })
@@ -1,4 +1,4 @@
1
- const runMagentoCommand = require('../../../util/run-magento');
1
+ const runMagentoCommand = require('../../../util/run-magento')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -6,23 +6,31 @@ const runMagentoCommand = require('../../../util/run-magento');
6
6
  module.exports = () => ({
7
7
  title: 'Creating admin user',
8
8
  task: async (ctx, task) => {
9
- const { config: { magentoConfiguration } } = ctx;
10
- const [[{ userCount }]] = await ctx.databaseConnection.query(`
9
+ const {
10
+ config: { magentoConfiguration }
11
+ } = ctx
12
+ const [[{ userCount }]] = await ctx.databaseConnection.query(
13
+ `
11
14
  SELECT count(*) AS userCount
12
15
  FROM admin_user
13
16
  WHERE username = ?;
14
- `, [magentoConfiguration.user]);
17
+ `,
18
+ [magentoConfiguration.user]
19
+ )
15
20
 
16
21
  if (userCount === 1) {
17
- task.skip();
18
- return;
22
+ task.skip()
23
+ return
19
24
  }
20
25
 
21
- await runMagentoCommand(ctx, `admin:user:create \
22
- --admin-firstname='${ magentoConfiguration.first_name }' \
23
- --admin-lastname='${ magentoConfiguration.last_name }' \
24
- --admin-email='${ magentoConfiguration.email }' \
25
- --admin-user='${ magentoConfiguration.user }' \
26
- --admin-password='${ magentoConfiguration.password }'`);
26
+ await runMagentoCommand(
27
+ ctx,
28
+ `admin:user:create \
29
+ --admin-firstname='${magentoConfiguration.first_name}' \
30
+ --admin-lastname='${magentoConfiguration.last_name}' \
31
+ --admin-email='${magentoConfiguration.email}' \
32
+ --admin-user='${magentoConfiguration.user}' \
33
+ --admin-password='${magentoConfiguration.password}'`
34
+ )
27
35
  }
28
- });
36
+ })
@@ -1,4 +1,4 @@
1
- const { isTableExists } = require('../../../util/database');
1
+ const { isTableExists } = require('../../../util/database')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -7,11 +7,11 @@ const deleteAdminUsers = () => ({
7
7
  title: 'Deleting old admin users',
8
8
  skip: async (ctx) => !(await isTableExists('magento', 'admin_user', ctx)),
9
9
  task: async (ctx) => {
10
- const { databaseConnection } = ctx;
10
+ const { databaseConnection } = ctx
11
11
  await databaseConnection.query(`
12
12
  TRUNCATE TABLE admin_user;
13
- `);
13
+ `)
14
14
  }
15
- });
15
+ })
16
16
 
17
- module.exports = deleteAdminUsers;
17
+ module.exports = deleteAdminUsers
@@ -1,4 +1,4 @@
1
- const { customerTables } = require('../../database/magento-tables');
1
+ const { customerTables } = require('../../database/magento-tables')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -6,21 +6,27 @@ const { customerTables } = require('../../database/magento-tables');
6
6
  const deleteCustomers = () => ({
7
7
  title: 'Deleting customers',
8
8
  task: async (ctx, task) => {
9
- const { databaseConnection, withCustomersData } = ctx;
9
+ const { databaseConnection, withCustomersData } = ctx
10
10
 
11
11
  if (withCustomersData) {
12
- task.skip();
13
- return;
12
+ task.skip()
13
+ return
14
14
  }
15
15
 
16
- const [rows] = await databaseConnection.query('select TABLE_NAME from information_schema.TABLES;');
16
+ const [rows] = await databaseConnection.query(
17
+ 'select TABLE_NAME from information_schema.TABLES;'
18
+ )
17
19
 
18
20
  await Promise.all(
19
21
  customerTables
20
- .filter((tableName) => rows.some((row) => row.TABLE_NAME === tableName))
21
- .map((tableName) => databaseConnection.query(`TRUNCATE TABLE \`${ tableName }\`;`))
22
- );
22
+ .filter((tableName) =>
23
+ rows.some((row) => row.TABLE_NAME === tableName)
24
+ )
25
+ .map((tableName) =>
26
+ databaseConnection.query(`TRUNCATE TABLE \`${tableName}\`;`)
27
+ )
28
+ )
23
29
  }
24
- });
30
+ })
25
31
 
26
- module.exports = deleteCustomers;
32
+ module.exports = deleteCustomers