@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,205 +1,229 @@
1
- const openBrowser = require('../util/open-browser');
1
+ const openBrowser = require('../util/open-browser')
2
2
 
3
- const getMagentoVersionConfig = require('../config/get-magento-version-config');
4
- const { saveConfiguration } = require('../config/save-config');
5
- const { getAvailablePorts, getCachedPorts } = require('../config/get-port-config');
6
- const { getComposerVersionTask } = require('./composer');
7
- const { startServices } = require('./docker');
8
- const { checkRequirements } = require('./requirements');
9
- const { createCacheFolder } = require('./cache');
10
- const { prepareFileSystem } = require('./file-system');
11
- const { installMagentoProject, setupMagento } = require('./magento');
12
- const { pullImages, stopContainers } = require('./docker/containers');
13
- const dockerNetwork = require('./docker/network');
14
- const { connectToDatabase } = require('./database');
15
- const { buildProjectImage, buildDebugProjectImage } = require('./docker/project-image-builder');
16
- const getProjectConfiguration = require('../config/get-project-configuration');
17
- const { getSystemConfigTask } = require('../config/system-config');
18
- const setupThemes = require('./theme/setup-themes');
19
- const pkg = require('../../package.json');
20
- const checkConfigurationFile = require('../config/check-configuration-file');
21
- const convertLegacyVolumes = require('./docker/convert-legacy-volumes');
22
- const enableMagentoComposerPlugins = require('./magento/enable-magento-composer-plugins');
23
- const getIsWsl = require('../util/is-wsl');
24
- const checkForXDGOpen = require('../util/xdg-open-exists');
25
- const { getInstanceMetadata, constants: { WEB_LOCATION_TITLE } } = require('../util/instance-metadata');
26
- const waitingForVarnish = require('./magento/setup-magento/waiting-for-varnish');
27
- const checkPHPVersion = require('./requirements/php-version');
28
- const volumes = require('./docker/volume/tasks');
29
- const convertMySQLDatabaseToMariaDB = require('./docker/convert-mysql-to-mariadb');
30
- const { cmaGlobalConfig } = require('../config/cma-config');
31
- const { setProjectConfigTask } = require('./project-config');
32
- const { convertComposerHomeToComposerCacheVolume } = require('./docker/convert-composer-home-to-composer-cache-volume');
3
+ const getMagentoVersionConfig = require('../config/get-magento-version-config')
4
+ const { saveConfiguration } = require('../config/save-config')
5
+ const {
6
+ getAvailablePorts,
7
+ getCachedPorts
8
+ } = require('../config/get-port-config')
9
+ const { getComposerVersionTask } = require('./composer')
10
+ const { startServices } = require('./docker')
11
+ const { checkRequirements } = require('./requirements')
12
+ const { createCacheFolder } = require('./cache')
13
+ const { prepareFileSystem } = require('./file-system')
14
+ const { installMagentoProject, setupMagento } = require('./magento')
15
+ const { pullImages, stopContainers } = require('./docker/containers')
16
+ const dockerNetwork = require('./docker/network')
17
+ const { connectToDatabase } = require('./database')
18
+ const {
19
+ buildProjectImage,
20
+ buildDebugProjectImage
21
+ } = require('./docker/project-image-builder')
22
+ const getProjectConfiguration = require('../config/get-project-configuration')
23
+ const { getSystemConfigTask } = require('../config/system-config')
24
+ const setupThemes = require('./theme/setup-themes')
25
+ const pkg = require('../../package.json')
26
+ const checkConfigurationFile = require('../config/check-configuration-file')
27
+ const convertLegacyVolumes = require('./docker/convert-legacy-volumes')
28
+ const enableMagentoComposerPlugins = require('./magento/enable-magento-composer-plugins')
29
+ const getIsWsl = require('../util/is-wsl')
30
+ const checkForXDGOpen = require('../util/xdg-open-exists')
31
+ const {
32
+ getInstanceMetadata,
33
+ constants: { WEB_LOCATION_TITLE }
34
+ } = require('../util/instance-metadata')
35
+ const waitingForVarnish = require('./magento/setup-magento/waiting-for-varnish')
36
+ const checkPHPVersion = require('./requirements/php-version')
37
+ const volumes = require('./docker/volume/tasks')
38
+ const convertMySQLDatabaseToMariaDB = require('./docker/convert-mysql-to-mariadb')
39
+ const { cmaGlobalConfig } = require('../config/cma-config')
40
+ const { setProjectConfigTask } = require('./project-config')
41
+ const {
42
+ convertComposerHomeToComposerCacheVolume
43
+ } = require('./docker/convert-composer-home-to-composer-cache-volume')
33
44
 
34
45
  /**
35
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
46
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
36
47
  */
37
48
  const resetCmaGlobalConfig = () => ({
38
49
  skip: (ctx) => !ctx.resetGlobalConfig,
39
50
  task: () => {
40
- cmaGlobalConfig.clear();
51
+ cmaGlobalConfig.clear()
41
52
  }
42
- });
53
+ })
43
54
 
44
55
  /**
45
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
56
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
46
57
  */
47
58
  const retrieveProjectConfiguration = () => ({
48
59
  title: 'Retrieving project configuration',
49
- task: (ctx, task) => task.newListr([
50
- getMagentoVersionConfig(),
51
- checkConfigurationFile(),
52
- getProjectConfiguration(),
53
- convertLegacyVolumes(),
54
- createCacheFolder(),
55
- getSystemConfigTask(),
56
- getCachedPorts()
57
- ], {
58
- rendererOptions: {
59
- collapse: true
60
- }
61
- }),
60
+ task: (ctx, task) =>
61
+ task.newListr(
62
+ [
63
+ getMagentoVersionConfig(),
64
+ checkConfigurationFile(),
65
+ getProjectConfiguration(),
66
+ convertLegacyVolumes(),
67
+ createCacheFolder(),
68
+ getSystemConfigTask(),
69
+ getCachedPorts()
70
+ ],
71
+ {
72
+ rendererOptions: {
73
+ collapse: true
74
+ }
75
+ }
76
+ ),
62
77
  options: {
63
78
  showTimer: false
64
79
  }
65
- });
80
+ })
66
81
 
67
82
  /**
68
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
83
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
69
84
  */
70
85
  const stopProject = () => ({
71
86
  title: 'Stopping project',
72
- task: (ctx, task) => task.newListr([
73
- stopContainers(),
74
- volumes.removeLocalVolumes()
75
- ]),
87
+ task: (ctx, task) =>
88
+ task.newListr([stopContainers(), volumes.removeLocalVolumes()]),
76
89
  options: {
77
90
  showTimer: false
78
91
  }
79
- });
92
+ })
80
93
 
81
94
  /**
82
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
95
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
83
96
  */
84
97
  const retrieveFreshProjectConfiguration = () => ({
85
98
  title: 'Retrieving fresh project configuration',
86
- task: (ctx, task) => task.newListr([
87
- setProjectConfigTask(),
88
- getProjectConfiguration(),
89
- // get fresh ports
90
- getAvailablePorts(),
91
- saveConfiguration()
92
- ], {
93
- rendererOptions: {
94
- collapse: true
95
- }
96
- }),
99
+ task: (ctx, task) =>
100
+ task.newListr(
101
+ [
102
+ setProjectConfigTask(),
103
+ getProjectConfiguration(),
104
+ // get fresh ports
105
+ getAvailablePorts(),
106
+ saveConfiguration()
107
+ ],
108
+ {
109
+ rendererOptions: {
110
+ collapse: true
111
+ }
112
+ }
113
+ ),
97
114
  options: {
98
115
  showTimer: false
99
116
  }
100
- });
117
+ })
101
118
 
102
119
  /**
103
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
120
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
104
121
  */
105
122
  const configureProject = () => ({
106
123
  title: 'Configuring project',
107
- task: (ctx, task) => task.newListr([
108
- convertMySQLDatabaseToMariaDB(),
109
- {
110
- task: (ctx, task) => task.newListr([
111
- pullImages(),
112
- dockerNetwork.tasks.createNetwork()
113
- ], { concurrent: true })
114
- },
115
- checkPHPVersion(),
116
- {
117
- task: (ctx, task) => task.newListr([
118
- buildProjectImage(),
119
- buildDebugProjectImage()
120
- ], {
121
- concurrent: true
122
- })
123
- },
124
- getComposerVersionTask(),
125
- prepareFileSystem(),
126
- volumes.createVolumes(),
127
- convertComposerHomeToComposerCacheVolume(),
128
- installMagentoProject(),
129
- enableMagentoComposerPlugins(),
130
- startServices(),
131
- connectToDatabase()
132
- ])
133
- });
124
+ task: (ctx, task) =>
125
+ task.newListr([
126
+ convertMySQLDatabaseToMariaDB(),
127
+ {
128
+ task: (ctx, task) =>
129
+ task.newListr(
130
+ [pullImages(), dockerNetwork.tasks.createNetwork()],
131
+ { concurrent: true }
132
+ )
133
+ },
134
+ checkPHPVersion(),
135
+ {
136
+ task: (ctx, task) =>
137
+ task.newListr(
138
+ [buildProjectImage(), buildDebugProjectImage()],
139
+ {
140
+ concurrent: true
141
+ }
142
+ )
143
+ },
144
+ getComposerVersionTask(),
145
+ prepareFileSystem(),
146
+ volumes.createVolumes(),
147
+ convertComposerHomeToComposerCacheVolume(),
148
+ installMagentoProject(),
149
+ enableMagentoComposerPlugins(),
150
+ startServices(),
151
+ connectToDatabase()
152
+ ])
153
+ })
134
154
 
135
155
  /**
136
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
156
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
137
157
  */
138
158
  const finishProjectConfiguration = () => ({
139
159
  title: 'Finishing project configuration',
140
- skip: ({ skipSetup }) => skipSetup,
141
- task: (ctx, task) => task.newListr([
142
- setupThemes(),
143
- waitingForVarnish()
144
- ], {
145
- rendererOptions: {
146
- collapse: false
147
- }
148
- })
149
- });
160
+ skip: ({ skipSetup }) => Boolean(skipSetup),
161
+ task: (ctx, task) =>
162
+ task.newListr([setupThemes(), waitingForVarnish()], {
163
+ rendererOptions: {
164
+ collapse: false
165
+ }
166
+ })
167
+ })
150
168
 
151
169
  /**
152
- * @type {() => import('listr2').ListrTask<import('../../typings/context').ListrContext>}
170
+ * @returns {import('listr2').ListrTask<import('../../typings/context').ListrContext>}
153
171
  */
154
172
  const start = () => ({
155
173
  title: 'Starting project',
156
174
  task: (ctx, task) => {
157
- task.title = `Starting project (magento-scripts@${pkg.version})`;
158
- return task.newListr([
159
- resetCmaGlobalConfig(),
160
- checkRequirements(),
161
- retrieveProjectConfiguration(),
162
- stopProject(),
163
- retrieveFreshProjectConfiguration(),
164
- configureProject(),
165
- setupMagento(),
166
- finishProjectConfiguration(),
167
- {
168
- title: 'Opening browser',
169
- skip: async (ctx) => {
170
- if (ctx.noOpen) {
171
- return true;
172
- }
175
+ task.title = `Starting project (magento-scripts@${pkg.version})`
176
+ return task.newListr(
177
+ [
178
+ resetCmaGlobalConfig(),
179
+ checkRequirements(),
180
+ retrieveProjectConfiguration(),
181
+ stopProject(),
182
+ retrieveFreshProjectConfiguration(),
183
+ configureProject(),
184
+ setupMagento(),
185
+ finishProjectConfiguration(),
186
+ {
187
+ title: 'Opening browser',
188
+ skip: async (ctx) => {
189
+ if (ctx.noOpen) {
190
+ return true
191
+ }
173
192
 
174
- if (await getIsWsl()) {
175
- const canOpenBrowser = await checkForXDGOpen();
193
+ if (await getIsWsl()) {
194
+ const canOpenBrowser = await checkForXDGOpen()
176
195
 
177
- if (!canOpenBrowser) {
178
- return 'Cannot open the browser, xdg-open is not available.';
196
+ if (!canOpenBrowser) {
197
+ return 'Cannot open the browser, xdg-open is not available.'
198
+ }
179
199
  }
180
- }
181
-
182
- return false;
183
- },
184
- task: (ctx) => {
185
- const instanceMetadata = getInstanceMetadata(ctx);
186
- const locationOnTheWeb = instanceMetadata.frontend.find(({ title }) => title === WEB_LOCATION_TITLE);
187
200
 
188
- openBrowser(locationOnTheWeb.link);
189
- },
190
- options: {
191
- showTimer: false
201
+ return false
202
+ },
203
+ task: (ctx) => {
204
+ const instanceMetadata = getInstanceMetadata(ctx)
205
+ const locationOnTheWeb = instanceMetadata.frontend.find(
206
+ ({ title }) => title === WEB_LOCATION_TITLE
207
+ )
208
+ if (locationOnTheWeb) {
209
+ openBrowser(locationOnTheWeb.text)
210
+ }
211
+ },
212
+ options: {
213
+ showTimer: false
214
+ }
215
+ }
216
+ ],
217
+ {
218
+ concurrent: false,
219
+ exitOnError: true,
220
+ rendererOptions: {
221
+ collapse: false
192
222
  }
193
223
  }
194
- ], {
195
- concurrent: false,
196
- exitOnError: true,
197
- rendererOptions: {
198
- collapse: false
199
- }
200
- });
224
+ )
201
225
  }
202
- });
226
+ })
203
227
 
204
228
  module.exports = {
205
229
  start,
@@ -208,4 +232,4 @@ module.exports = {
208
232
  stopProject,
209
233
  configureProject,
210
234
  finishProjectConfiguration
211
- };
235
+ }