@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,4 +1,4 @@
1
- const { orderTables } = require('../../database/magento-tables');
1
+ const { orderTables } = require('../../database/magento-tables')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -6,21 +6,27 @@ const { orderTables } = require('../../database/magento-tables');
6
6
  const deleteOrders = () => ({
7
7
  title: 'Deleting orders',
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
  orderTables
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 = deleteOrders;
32
+ module.exports = deleteOrders
@@ -1,5 +1,5 @@
1
- const configPhpToJson = require('../../../util/config-php-json');
2
- const runMagentoCommand = require('../../../util/run-magento');
1
+ const configPhpToJson = require('../../../util/config-php-json')
2
+ const runMagentoCommand = require('../../../util/run-magento')
3
3
 
4
4
  /**
5
5
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -7,14 +7,17 @@ const runMagentoCommand = require('../../../util/run-magento');
7
7
  module.exports = () => ({
8
8
  title: 'Disabling 2fa for admin',
9
9
  task: async (ctx, task) => {
10
- const { modules } = await configPhpToJson(ctx);
10
+ const { modules } = await configPhpToJson(ctx)
11
11
 
12
- if (modules.Magento_TwoFactorAuth !== undefined && modules.Magento_TwoFactorAuth !== 0) {
13
- await runMagentoCommand(ctx, 'module:disable Magento_TwoFactorAuth');
12
+ if (
13
+ modules.Magento_TwoFactorAuth !== undefined &&
14
+ modules.Magento_TwoFactorAuth !== 0
15
+ ) {
16
+ await runMagentoCommand(ctx, 'module:disable Magento_TwoFactorAuth')
14
17
 
15
- return;
18
+ return
16
19
  }
17
20
 
18
- task.skip();
21
+ task.skip()
19
22
  }
20
- });
23
+ })
@@ -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>}
@@ -8,15 +8,15 @@ const disableMaintenanceMode = () => ({
8
8
  task: async (ctx, task) => {
9
9
  const { result } = await runMagentoCommand(ctx, 'maintenance:status', {
10
10
  throwNonZeroCode: false
11
- });
11
+ })
12
12
 
13
13
  if (result.includes('maintenance mode is not active')) {
14
- task.skip();
15
- return;
14
+ task.skip()
15
+ return
16
16
  }
17
17
 
18
- await runMagentoCommand(ctx, 'maintenance:disable');
18
+ await runMagentoCommand(ctx, 'maintenance:disable')
19
19
  }
20
- });
20
+ })
21
21
 
22
- module.exports = disableMaintenanceMode;
22
+ module.exports = disableMaintenanceMode
@@ -1,11 +1,12 @@
1
- const magentoTask = require('../../../util/magento-task');
1
+ const magentoTask = require('../../../util/magento-task')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  const disablePageBuilder = () => ({
7
7
  title: 'Disabling page builder in Magento',
8
- task: (ctx, task) => task.newListr(magentoTask('config:set cms/pagebuilder/enabled 0'))
9
- });
8
+ task: (ctx, task) =>
9
+ task.newListr(magentoTask('config:set cms/pagebuilder/enabled 0'))
10
+ })
10
11
 
11
- module.exports = disablePageBuilder;
12
+ module.exports = disablePageBuilder
@@ -1,5 +1,5 @@
1
- const { execAsyncSpawn } = require('../../../util/exec-async-command');
2
- const UnknownError = require('../../../errors/unknown-error');
1
+ const { execAsyncSpawn } = require('../../../util/exec-async-command')
2
+ const UnknownError = require('../../../errors/unknown-error')
3
3
 
4
4
  /**
5
5
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
@@ -7,13 +7,19 @@ const UnknownError = require('../../../errors/unknown-error');
7
7
  module.exports = () => ({
8
8
  title: 'Flushing Magento Redis cache',
9
9
  task: async ({ ports, config: { docker }, isDockerDesktop }) => {
10
- const { redis: { name } } = docker.getContainers(ports);
11
- const host = !isDockerDesktop ? 'localhost' : 'host.docker.internal';
12
- const port = !isDockerDesktop ? '6379' : ports.redis;
13
- const result = await execAsyncSpawn(`docker exec ${ name } redis-cli -h ${ host } -p ${ port } -n 0 flushdb`);
10
+ const {
11
+ redis: { name }
12
+ } = docker.getContainers(ports)
13
+ const host = !isDockerDesktop ? 'localhost' : 'host.docker.internal'
14
+ const port = !isDockerDesktop ? '6379' : ports.redis
15
+ const result = await execAsyncSpawn(
16
+ `docker exec ${name} redis-cli -h ${host} -p ${port} -n 0 flushdb`
17
+ )
14
18
 
15
19
  if (!result.trim().includes('OK')) {
16
- throw new UnknownError(`Unexpected output from redis flush command: ${result}`);
20
+ throw new UnknownError(
21
+ `Unexpected output from redis flush command: ${result}`
22
+ )
17
23
  }
18
24
  }
19
- });
25
+ })
@@ -1,24 +1,28 @@
1
- const { updateTableValues } = require('../../../util/database');
1
+ const { updateTableValues } = require('../../../util/database')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  const increaseAdminSessionLifetime = () => ({
7
7
  title: 'Increase admin session lifetime to 1 month',
8
- task: async ({ databaseConnection }, task) => updateTableValues('core_config_data', [
9
- {
10
- path: 'admin/security/session_lifetime',
11
- value: '2800000'
12
- },
13
- {
14
- path: 'admin/security/password_lifetime',
15
- value: null
16
- }
17
- ], {
18
- databaseConnection,
19
- task
20
- })
8
+ task: async ({ databaseConnection }, task) =>
9
+ updateTableValues(
10
+ 'core_config_data',
11
+ [
12
+ {
13
+ path: 'admin/security/session_lifetime',
14
+ value: '2800000'
15
+ },
16
+ {
17
+ path: 'admin/security/password_lifetime',
18
+ value: null
19
+ }
20
+ ],
21
+ {
22
+ databaseConnection,
23
+ task
24
+ }
25
+ )
26
+ })
21
27
 
22
- });
23
-
24
- module.exports = increaseAdminSessionLifetime;
28
+ module.exports = increaseAdminSessionLifetime
@@ -1,13 +1,11 @@
1
- const magentoTask = require('../../../util/magento-task');
1
+ const magentoTask = require('../../../util/magento-task')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  const indexProducts = () => ({
7
- task: (ctx, task) => task.newListr(
8
- magentoTask('index:reindex')
9
- ),
7
+ task: (ctx, task) => task.newListr(magentoTask('index:reindex')),
10
8
  retry: 2
11
- });
9
+ })
12
10
 
13
- module.exports = indexProducts;
11
+ module.exports = indexProducts
@@ -1,65 +1,72 @@
1
- const flushRedisConfig = require('./flush-redis-config');
2
- const waitingForRedis = require('./waiting-for-redis');
3
- const migrateDatabase = require('./migrate-database');
4
- const createAdmin = require('./create-admin');
5
- const setDeploymentMode = require('./set-deployment-mode');
6
- const setBaseUrl = require('./set-base-url');
7
- const disableMaintenanceMode = require('./disable-maintenance-mode');
8
- const disable2fa = require('./disable-2fa');
9
- const setUrlRewrite = require('./set-url-rewrite');
10
- const increaseAdminSessionLifetime = require('./increase-admin-session-lifetime');
11
- const magentoTask = require('../../../util/magento-task');
12
- const urnHighlighter = require('./urn-highlighter');
13
- const adjustFullPageCache = require('./adjust-full-page-cache');
14
- const updateEnvPHP = require('../../php/update-env-php');
15
- const setMailConfig = require('./set-mail-config');
1
+ const flushRedisConfig = require('./flush-redis-config')
2
+ const waitingForRedis = require('./waiting-for-redis')
3
+ const migrateDatabase = require('./migrate-database')
4
+ const createAdmin = require('./create-admin')
5
+ const setDeploymentMode = require('./set-deployment-mode')
6
+ const setBaseUrl = require('./set-base-url')
7
+ const disableMaintenanceMode = require('./disable-maintenance-mode')
8
+ const disable2fa = require('./disable-2fa')
9
+ const setUrlRewrite = require('./set-url-rewrite')
10
+ const increaseAdminSessionLifetime = require('./increase-admin-session-lifetime')
11
+ const magentoTask = require('../../../util/magento-task')
12
+ const urnHighlighter = require('./urn-highlighter')
13
+ const adjustFullPageCache = require('./adjust-full-page-cache')
14
+ const updateEnvPHP = require('../../php/update-env-php')
15
+ const setMailConfig = require('./set-mail-config')
16
16
 
17
17
  /**
18
18
  * @param {Object} [options]
19
- * @param {Boolean} options.onlyInstallMagento
19
+ * @param {Boolean} [options.onlyInstallMagento]
20
20
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
21
21
  */
22
22
  const setupMagento = (options = {}) => ({
23
23
  title: 'Setting up Magento',
24
- skip: ({ skipSetup }) => skipSetup,
24
+ skip: ({ skipSetup }) => Boolean(skipSetup),
25
25
  task: (ctx, task) => {
26
26
  if (options.onlyInstallMagento) {
27
27
  return task.newListr([
28
28
  flushRedisConfig(),
29
29
  waitingForRedis(),
30
30
  migrateDatabase({ onlyInstallMagento: true })
31
- ]);
31
+ ])
32
32
  }
33
33
 
34
- return task.newListr([
35
- waitingForRedis(),
36
- updateEnvPHP(),
37
- migrateDatabase(),
38
- flushRedisConfig(),
34
+ return task.newListr(
35
+ [
36
+ waitingForRedis(),
37
+ updateEnvPHP(),
38
+ migrateDatabase(),
39
+ flushRedisConfig(),
40
+ {
41
+ title: 'Configuring Magento settings',
42
+ task: (ctx, task) =>
43
+ task.newListr(
44
+ [
45
+ setBaseUrl(),
46
+ setUrlRewrite(),
47
+ setMailConfig(),
48
+ increaseAdminSessionLifetime()
49
+ ],
50
+ {
51
+ concurrent: true
52
+ }
53
+ )
54
+ },
55
+ createAdmin(),
56
+ setDeploymentMode(),
57
+ disableMaintenanceMode(),
58
+ disable2fa(),
59
+ urnHighlighter(),
60
+ adjustFullPageCache(),
61
+ magentoTask('cache:flush')
62
+ ],
39
63
  {
40
- title: 'Configuring Magento settings',
41
- task: (ctx, task) => task.newListr([
42
- setBaseUrl(),
43
- setUrlRewrite(),
44
- setMailConfig(),
45
- increaseAdminSessionLifetime()
46
- ], {
47
- concurrent: true
48
- })
49
- },
50
- createAdmin(),
51
- setDeploymentMode(),
52
- disableMaintenanceMode(),
53
- disable2fa(),
54
- urnHighlighter(),
55
- adjustFullPageCache(),
56
- magentoTask('cache:flush')
57
- ], {
58
- concurrent: false,
59
- exitOnError: true,
60
- ctx
61
- });
64
+ concurrent: false,
65
+ exitOnError: true,
66
+ ctx
67
+ }
68
+ )
62
69
  }
63
- });
70
+ })
64
71
 
65
- module.exports = setupMagento;
72
+ module.exports = setupMagento
@@ -1,189 +1,222 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const semver = require('semver');
4
- const UnknownError = require('../../../errors/unknown-error');
5
- const runMagentoCommand = require('../../../util/run-magento');
6
- const envPhpToJson = require('../../../util/env-php-json');
7
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
8
- const { defaultMagentoDatabase } = require('../../database/default-magento-database');
9
- const defaultMagentoUser = require('../../database/default-magento-user');
1
+ const fs = require('fs')
2
+ const path = require('path')
3
+ const semver = require('semver')
4
+ const UnknownError = require('../../../errors/unknown-error')
5
+ const runMagentoCommand = require('../../../util/run-magento')
6
+ const envPhpToJson = require('../../../util/env-php-json')
7
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
8
+ const {
9
+ defaultMagentoDatabase
10
+ } = require('../../database/default-magento-database')
11
+ const defaultMagentoUser = require('../../database/default-magento-user')
10
12
 
11
13
  /**
12
- * @param {Object} [param0]
13
- * @param {Boolean} param0.isDbEmpty
14
+ * @param {Object} param0
15
+ * @param {Boolean} [param0.isDbEmpty]
14
16
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
15
17
  */
16
18
  const installMagento = ({ isDbEmpty = false } = {}) => ({
17
19
  title: 'Installing Magento in Database',
18
20
  task: async (ctx, task) => {
19
21
  if (isDbEmpty) {
20
- task.output = 'No Magento is installed in DB!\nInstalling...';
22
+ task.output = 'No Magento is installed in DB!\nInstalling...'
21
23
  }
22
24
  const {
23
25
  magentoVersion,
24
- config: {
25
- magentoConfiguration
26
- },
26
+ config: { magentoConfiguration },
27
27
  ports,
28
28
  databaseConnection,
29
29
  isDockerDesktop
30
- } = ctx;
30
+ } = ctx
31
31
 
32
- const hostMachine = !isDockerDesktop ? '127.0.0.1' : 'host.docker.internal';
32
+ const hostMachine = !isDockerDesktop
33
+ ? '127.0.0.1'
34
+ : 'host.docker.internal'
33
35
 
34
36
  const [tableResponse] = await databaseConnection.query(
35
- 'SELECT * FROM information_schema.tables WHERE table_schema = \'magento\' AND table_name = \'admin_user\' LIMIT 1;'
36
- );
37
+ "SELECT * FROM information_schema.tables WHERE table_schema = 'magento' AND table_name = 'admin_user' LIMIT 1;"
38
+ )
37
39
 
38
40
  if (tableResponse.length > 0) {
39
41
  const response = await databaseConnection.query(
40
- 'select * from admin_user where username=\'admin\';'
41
- );
42
+ "select * from admin_user where username='admin';"
43
+ )
42
44
 
43
- const usersWithUsernameAdmin = response && response.length > 0 && response[0];
45
+ const usersWithUsernameAdmin =
46
+ response && response.length > 0 && response[0]
44
47
 
45
48
  if (usersWithUsernameAdmin && usersWithUsernameAdmin.length > 0) {
46
49
  const confirmDeleteAdminUsers = await task.prompt({
47
50
  type: 'Select',
48
- message: `In order to install Magento in database you will need to delete admin user with username ${logger.style.command('admin')}`,
51
+ message: `In order to install Magento in database you will need to delete admin user with username ${logger.style.command(
52
+ 'admin'
53
+ )}`,
49
54
  choices: [
50
55
  {
51
56
  name: 'delete-all',
52
- message: `Delete all admin users (${logger.style.code('Recommended')})`
57
+ message: `Delete all admin users (${logger.style.code(
58
+ 'Recommended'
59
+ )})`
53
60
  },
54
61
  {
55
62
  name: 'delete-only-admin',
56
- message: `Delete only admin user with ${logger.style.command('admin')} username`
63
+ message: `Delete only admin user with ${logger.style.command(
64
+ 'admin'
65
+ )} username`
57
66
  }
58
67
  ]
59
- });
68
+ })
60
69
 
61
- await databaseConnection.query('SET FOREIGN_KEY_CHECKS = 0;');
70
+ await databaseConnection.query('SET FOREIGN_KEY_CHECKS = 0;')
62
71
 
63
72
  if (confirmDeleteAdminUsers === 'delete-all') {
64
73
  await databaseConnection.query(`
65
74
  TRUNCATE TABLE admin_user;
66
- `);
75
+ `)
67
76
  } else {
68
77
  await databaseConnection.query(`
69
78
  DELETE FROM admin_user WHERE username='admin';
70
- `);
79
+ `)
71
80
  }
72
81
 
73
- await databaseConnection.query('SET FOREIGN_KEY_CHECKS = 1;');
82
+ await databaseConnection.query('SET FOREIGN_KEY_CHECKS = 1;')
74
83
  }
75
84
  }
76
- const envPhpData = await envPhpToJson(ctx);
85
+ const envPhpData = await envPhpToJson(ctx)
77
86
 
78
- const envPhpHaveEncryptionKey = envPhpData && envPhpData.crypt && envPhpData.crypt.key && envPhpData.crypt.key;
87
+ const envPhpHaveEncryptionKey =
88
+ envPhpData &&
89
+ envPhpData.crypt &&
90
+ envPhpData.crypt.key &&
91
+ envPhpData.crypt.key
79
92
 
80
- let encryptionKeyOption = null;
93
+ let encryptionKeyOption = null
81
94
 
82
95
  if (ctx.encryptionKey) {
83
- encryptionKeyOption = `--key='${ctx.encryptionKey}'`;
96
+ encryptionKeyOption = `--key='${ctx.encryptionKey}'`
84
97
  }
85
98
 
86
99
  if (envPhpHaveEncryptionKey && !encryptionKeyOption) {
87
- encryptionKeyOption = `--key='${envPhpData.crypt.key}'`;
100
+ encryptionKeyOption = `--key='${envPhpData.crypt.key}'`
88
101
  }
89
102
 
90
- let installed = false;
103
+ let installed = false
91
104
 
92
- const pureMagentoVersion = magentoVersion.match(/^([0-9]+\.[0-9]+\.[0-9]+)/)[1];
105
+ const pureMagentoVersion = magentoVersion.match(
106
+ /^([0-9]+\.[0-9]+\.[0-9]+)/
107
+ )[1]
93
108
 
94
- const isMagento23 = semver.satisfies(pureMagentoVersion, '<2.4');
109
+ const isMagento23 = semver.satisfies(pureMagentoVersion, '<2.4')
95
110
 
96
111
  const elasticsearchConfiguration = ` \
97
112
  --search-engine='elasticsearch7' \
98
- --elasticsearch-host='${ hostMachine }' \
99
- --elasticsearch-port='${ ports.elasticsearch }'`;
113
+ --elasticsearch-host='${hostMachine}' \
114
+ --elasticsearch-port='${ports.elasticsearch}'`
100
115
 
101
116
  /**
102
117
  * @type {Array<Error>}
103
118
  */
104
- const errors = [];
119
+ const errors = []
105
120
 
106
121
  for (let tries = 0; tries < 2; tries++) {
107
122
  try {
108
123
  const command = `setup:install \
109
- --admin-firstname='${ magentoConfiguration.first_name }' \
110
- --admin-lastname='${ magentoConfiguration.last_name }' \
111
- --admin-email='${ magentoConfiguration.email }' \
112
- --admin-user='${ magentoConfiguration.user }' \
113
- --admin-password='${ magentoConfiguration.password }' \
114
- ${ !isMagento23 ? elasticsearchConfiguration : '' } \
124
+ --admin-firstname='${magentoConfiguration.first_name}' \
125
+ --admin-lastname='${magentoConfiguration.last_name}' \
126
+ --admin-email='${magentoConfiguration.email}' \
127
+ --admin-user='${magentoConfiguration.user}' \
128
+ --admin-password='${magentoConfiguration.password}' \
129
+ ${!isMagento23 ? elasticsearchConfiguration : ''} \
115
130
  ${encryptionKeyOption || ''} \
116
131
  --session-save=redis \
117
- --session-save-redis-host='${ hostMachine }' \
118
- --session-save-redis-port='${ ports.redis }' \
132
+ --session-save-redis-host='${hostMachine}' \
133
+ --session-save-redis-port='${ports.redis}' \
119
134
  --session-save-redis-log-level='3' \
120
135
  --session-save-redis-max-concurrency='30' \
121
136
  --session-save-redis-db='1' \
122
137
  --session-save-redis-disable-locking='1' \
123
138
  --cache-backend='redis' \
124
- --cache-backend-redis-server='${ hostMachine }' \
125
- --cache-backend-redis-port='${ ports.redis }' \
139
+ --cache-backend-redis-server='${hostMachine}' \
140
+ --cache-backend-redis-port='${ports.redis}' \
126
141
  --cache-backend-redis-db='0't \
127
- --db-host='${ hostMachine }:${ ports.mariadb }' \
128
- --db-name='${ defaultMagentoDatabase }' \
129
- --db-user='${ defaultMagentoUser.user }' \
130
- --db-password='${ defaultMagentoUser.password }' \
131
- --backend-frontname='${ magentoConfiguration.adminuri }' \
132
- --no-interaction`;
142
+ --db-host='${hostMachine}:${ports.mariadb}' \
143
+ --db-name='${defaultMagentoDatabase}' \
144
+ --db-user='${defaultMagentoUser.user}' \
145
+ --db-password='${defaultMagentoUser.password}' \
146
+ --backend-frontname='${magentoConfiguration.adminuri}' \
147
+ --no-interaction`
133
148
 
134
149
  await runMagentoCommand(ctx, command, {
135
150
  throwNonZeroCode: true,
136
- callback: !ctx.verbose ? undefined : (t) => {
137
- task.output = t;
138
- }
139
- });
140
-
141
- installed = true;
151
+ callback: !ctx.verbose
152
+ ? undefined
153
+ : (t) => {
154
+ task.output = t
155
+ }
156
+ })
157
+
158
+ installed = true
142
159
  } catch (e) {
143
- errors.push(e);
160
+ errors.push(e)
144
161
  }
145
162
 
146
163
  if (installed) {
147
- break;
164
+ break
148
165
  }
149
166
  }
150
167
 
151
168
  if (errors.length > 0) {
152
- if (envPhpHaveEncryptionKey && errors.some(
153
- (e) => e.message.includes('The default website isn\'t defined. Set the website and try again.')
154
- )
169
+ if (
170
+ envPhpHaveEncryptionKey &&
171
+ errors.some((e) =>
172
+ e.message.includes(
173
+ "The default website isn't defined. Set the website and try again."
174
+ )
175
+ )
155
176
  ) {
156
177
  const confirmToWipeEnvPhp = await task.prompt({
157
178
  type: 'Confirm',
158
- message: `We detected that your encryption key in ${logger.style.file('app/etc/env.php')} file is not accepted by Magento installer.
159
- To fix this issue we will need to ${logger.style.misc('DELETE')} ${logger.style.file('app/etc/env.php')} file. It will be recreated but existing encryption key but if you any custom configuration in it will be lost.
179
+ message: `We detected that your encryption key in ${logger.style.file(
180
+ 'app/etc/env.php'
181
+ )} file is not accepted by Magento installer.
182
+ To fix this issue we will need to ${logger.style.misc(
183
+ 'DELETE'
184
+ )} ${logger.style.file(
185
+ 'app/etc/env.php'
186
+ )} file. It will be recreated but existing encryption key but if you any custom configuration in it will be lost.
160
187
 
161
188
  Without this you will not be able to install Magento at this moment.
162
189
 
163
190
  Do you want to continue?`
164
- });
191
+ })
165
192
 
166
193
  if (confirmToWipeEnvPhp) {
167
194
  try {
168
- await fs.promises.unlink(path.join(process.cwd(), 'app', 'etc', 'env.php'));
195
+ await fs.promises.unlink(
196
+ path.join(process.cwd(), 'app', 'etc', 'env.php')
197
+ )
169
198
  } catch (e) {
170
- throw new UnknownError(`Unexpected error occurred during deleting of app/etc/env.php file!\n\n${e}`);
199
+ throw new UnknownError(
200
+ `Unexpected error occurred during deleting of app/etc/env.php file!\n\n${e}`
201
+ )
171
202
  }
172
- ctx.encryptionKey = envPhpData.crypt.key;
203
+ ctx.encryptionKey = envPhpData.crypt.key
173
204
 
174
- return task.run(ctx);
205
+ return task.run(ctx)
175
206
  }
176
207
  }
177
208
  }
178
209
 
179
210
  if (!installed) {
180
- const errorMessages = errors.map((e) => e.message).join('\n\n');
181
- throw new UnknownError(`Unable to install Magento!\n${errorMessages}`);
211
+ const errorMessages = errors.map((e) => e.message).join('\n\n')
212
+ throw new UnknownError(
213
+ `Unable to install Magento!\n${errorMessages}`
214
+ )
182
215
  }
183
216
  },
184
217
  options: {
185
218
  bottomBar: 15
186
219
  }
187
- });
220
+ })
188
221
 
189
- module.exports = installMagento;
222
+ module.exports = installMagento