@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
- import { ExecAsyncSpawnOptions } from '../../../util/exec-async-command';
1
+ import { ExecAsyncSpawnOptions } from '../../../util/exec-async-command'
2
2
 
3
3
  export interface ImagesLsOptions<T extends boolean = false> {
4
4
  all?: boolean
@@ -46,12 +46,11 @@ export interface ImagesInspectResult {
46
46
  Parent: string
47
47
  Comment: string
48
48
  Created: string
49
- Container: string
50
49
  ContainerConfig: unknown
51
50
  DockerVersion: string
52
51
  Author: string
53
52
  Config: {
54
- Env: string[],
53
+ Env: string[]
55
54
  Cmd: string[]
56
55
  WorkingDir: string
57
56
  Entrypoint: string[]
@@ -1,4 +1,4 @@
1
- const { execAsyncSpawn } = require('../../../util/exec-async-command');
1
+ const { execAsyncSpawn } = require('../../../util/exec-async-command')
2
2
 
3
3
  /**
4
4
  * @param {import('./image-api').ImagesLsOptions} options
@@ -13,18 +13,23 @@ const ls = async (options, execOptions = {}) => {
13
13
  noTrunc,
14
14
  quiet,
15
15
  digests
16
- } = options;
16
+ } = options
17
17
 
18
- const allArg = all && '--all';
19
- const filterArg = filter && typeof filter === 'string'
20
- ? `--filter=${filter}`
21
- : filter && Array.isArray(filter) && filter.every((f) => typeof f === 'string') && filter.map((f) => `--filter=${f}`).join(' ');
22
- const formatArg = !formatToJSON && format
23
- ? `--format=${format}`
24
- : formatToJSON && '--format=\'{{json .}}\'';
25
- const digestsArg = digests && '--digests';
26
- const noTruncArg = noTrunc && '--no-trunc';
27
- const quietArg = quiet && '--quiet';
18
+ const allArg = all && '--all'
19
+ const filterArg =
20
+ filter && typeof filter === 'string'
21
+ ? `--filter=${filter}`
22
+ : filter &&
23
+ Array.isArray(filter) &&
24
+ filter.every((f) => typeof f === 'string') &&
25
+ filter.map((f) => `--filter=${f}`).join(' ')
26
+ const formatArg =
27
+ !formatToJSON && format
28
+ ? `--format=${format}`
29
+ : formatToJSON && "--format='{{json .}}'"
30
+ const digestsArg = digests && '--digests'
31
+ const noTruncArg = noTrunc && '--no-trunc'
32
+ const quietArg = quiet && '--quiet'
28
33
 
29
34
  const args = [
30
35
  allArg,
@@ -33,45 +38,47 @@ const ls = async (options, execOptions = {}) => {
33
38
  digestsArg,
34
39
  noTruncArg,
35
40
  quietArg
36
- ].filter(Boolean).join(' ');
41
+ ]
42
+ .filter(Boolean)
43
+ .join(' ')
37
44
 
38
45
  if (formatToJSON) {
39
- const result = await execAsyncSpawn(`docker image ls ${args}`, execOptions);
40
- return JSON.parse(`[${result.split('\n').join(', ')}]`);
46
+ const result = await execAsyncSpawn(
47
+ `docker image ls ${args}`,
48
+ execOptions
49
+ )
50
+ return JSON.parse(`[${result.split('\n').join(', ')}]`)
41
51
  }
42
52
 
43
- return execAsyncSpawn(`docker image ls ${args}`, execOptions);
44
- };
53
+ return execAsyncSpawn(`docker image ls ${args}`, execOptions)
54
+ }
45
55
 
46
56
  /**
47
57
  * @param {import('./image-api').ImagesInspectOptions} options
48
58
  * @param {import('../../../util/exec-async-command').ExecAsyncSpawnOptions} execOptions
49
59
  */
50
60
  const inspect = async (options, execOptions = {}) => {
51
- const {
52
- image,
53
- format,
54
- formatToJSON = false
55
- } = options;
61
+ const { image, format, formatToJSON = false } = options
56
62
 
57
- const formatArg = !formatToJSON && format
58
- ? `--format=${format}`
59
- : formatToJSON && '--format=\'{{json .}}\'';
63
+ const formatArg =
64
+ !formatToJSON && format
65
+ ? `--format=${format}`
66
+ : formatToJSON && "--format='{{json .}}'"
60
67
 
61
- const args = [
62
- formatArg,
63
- image
64
- ].filter(Boolean).join(' ');
68
+ const args = [formatArg, image].filter(Boolean).join(' ')
65
69
 
66
70
  if (formatToJSON) {
67
- const result = await execAsyncSpawn(`docker image inspect ${args}`, execOptions);
68
- return JSON.parse(result);
71
+ const result = await execAsyncSpawn(
72
+ `docker image inspect ${args}`,
73
+ execOptions
74
+ )
75
+ return JSON.parse(result)
69
76
  }
70
77
 
71
- return execAsyncSpawn(`docker image inspect ${args}`, execOptions);
72
- };
78
+ return execAsyncSpawn(`docker image inspect ${args}`, execOptions)
79
+ }
73
80
 
74
81
  module.exports = {
75
82
  ls,
76
83
  inspect
77
- };
84
+ }
@@ -1,5 +1,5 @@
1
- const imageApi = require('./image-api');
1
+ const imageApi = require('./image-api')
2
2
 
3
3
  module.exports = {
4
4
  imageApi
5
- };
5
+ }
@@ -1,36 +1,41 @@
1
- const containers = require('./containers');
2
- const network = require('./network');
3
- const volume = require('./volume');
4
- const dockerApi = require('./api');
1
+ const containers = require('./containers')
2
+ const network = require('./network')
3
+ const volume = require('./volume')
4
+ const dockerApi = require('./api')
5
5
 
6
6
  /**
7
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
7
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
8
8
  */
9
9
  const startServices = () => ({
10
10
  title: 'Starting Docker services',
11
- task: (ctx, task) => task.newListr([
12
- containers.startContainers(),
13
- containers.checkContainersAreRunning()
14
- ], {
15
- concurrent: false,
16
- exitOnError: true
17
- })
18
- });
11
+ task: (ctx, task) =>
12
+ task.newListr(
13
+ [
14
+ containers.startContainers(),
15
+ containers.checkContainersAreRunning()
16
+ ],
17
+ {
18
+ concurrent: false,
19
+ exitOnError: true
20
+ }
21
+ )
22
+ })
19
23
 
20
24
  /**
21
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
25
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
22
26
  */
23
27
  const stopServices = () => ({
24
28
  title: 'Stopping Docker services',
25
- task: (ctx, task) => task.newListr([
26
- containers.stopContainers(),
27
- volume.removeLocalVolumes(),
28
- network.tasks.removeNetwork()
29
- ])
30
- });
29
+ task: (ctx, task) =>
30
+ task.newListr([
31
+ containers.stopContainers(),
32
+ volume.removeLocalVolumes(),
33
+ network.tasks.removeNetwork()
34
+ ])
35
+ })
31
36
 
32
37
  module.exports = {
33
38
  startServices,
34
39
  stopServices,
35
40
  dockerApi
36
- };
41
+ }
@@ -1,7 +1,7 @@
1
- const networkApi = require('./network-api');
2
- const tasks = require('./tasks');
1
+ const networkApi = require('./network-api')
2
+ const tasks = require('./tasks')
3
3
 
4
4
  module.exports = {
5
5
  networkApi,
6
6
  tasks
7
- };
7
+ }
@@ -1,4 +1,4 @@
1
- import { ExecAsyncSpawnOptions } from '../../../util/exec-async-command';
1
+ import { ExecAsyncSpawnOptions } from '../../../util/exec-async-command'
2
2
 
3
3
  export interface NetworkLsOptions<T extends boolean = false> {
4
4
  filter?: string | string[]
@@ -56,13 +56,16 @@ export interface NetworkInspectResult {
56
56
  Network: string
57
57
  }
58
58
  ConfigOnly: boolean
59
- Containers: Record<string, {
60
- Name: string
61
- EndpointID: string
62
- MacAddress: string
63
- IPv4Address: string
64
- IPv6Address: string
65
- }>
59
+ Containers: Record<
60
+ string,
61
+ {
62
+ Name: string
63
+ EndpointID: string
64
+ MacAddress: string
65
+ IPv4Address: string
66
+ IPv6Address: string
67
+ }
68
+ >
66
69
  Options: Record<string, unknown>
67
70
  Labels: Record<string, unknown>
68
71
  }
@@ -1,99 +1,91 @@
1
- const { execAsyncSpawn } = require('../../../util/exec-async-command');
1
+ const { execAsyncSpawn } = require('../../../util/exec-async-command')
2
2
 
3
3
  /**
4
4
  * @param {import('./network-api').NetworkLsOptions} options
5
5
  * @param {import('../../../util/exec-async-command').ExecAsyncSpawnOptions} execOptions
6
6
  */
7
7
  const ls = async (options, execOptions = {}) => {
8
- const {
9
- filter,
10
- format,
11
- formatToJSON = false,
12
- noTrunc,
13
- quiet
14
- } = options;
8
+ const { filter, format, formatToJSON = false, noTrunc, quiet } = options
15
9
 
16
- const formatArg = !formatToJSON && format
17
- ? `--format=${format}`
18
- : formatToJSON && '--format=\'{{json .}}\'';
19
- const filterArg = filter && typeof filter === 'string'
20
- ? `--filter=${filter}`
21
- : filter && Array.isArray(filter) && filter.every((f) => typeof f === 'string') && filter.map((f) => `--filter=${f}`).join(' ');
22
- const noTruncArg = noTrunc && '--no-trunc';
23
- const quietArg = quiet && '--quiet';
24
- const args = [
25
- filterArg,
26
- formatArg,
27
- noTruncArg,
28
- quietArg
29
- ].filter(Boolean).join(' ');
10
+ const formatArg =
11
+ !formatToJSON && format
12
+ ? `--format=${format}`
13
+ : formatToJSON && "--format='{{json .}}'"
14
+ const filterArg =
15
+ filter && typeof filter === 'string'
16
+ ? `--filter=${filter}`
17
+ : filter &&
18
+ Array.isArray(filter) &&
19
+ filter.every((f) => typeof f === 'string') &&
20
+ filter.map((f) => `--filter=${f}`).join(' ')
21
+ const noTruncArg = noTrunc && '--no-trunc'
22
+ const quietArg = quiet && '--quiet'
23
+ const args = [filterArg, formatArg, noTruncArg, quietArg]
24
+ .filter(Boolean)
25
+ .join(' ')
30
26
 
31
27
  if (formatToJSON) {
32
- const result = await execAsyncSpawn(`docker network ls ${args}`, execOptions);
33
- return JSON.parse(`[${result.split('\n').join(', ')}]`);
28
+ const result = await execAsyncSpawn(
29
+ `docker network ls ${args}`,
30
+ execOptions
31
+ )
32
+ return JSON.parse(`[${result.split('\n').join(', ')}]`)
34
33
  }
35
34
 
36
- return execAsyncSpawn(`docker network ls ${args}`, execOptions);
37
- };
35
+ return execAsyncSpawn(`docker network ls ${args}`, execOptions)
36
+ }
38
37
 
39
38
  /**
40
39
  * @param {import('./network-api').NetworkInspectOptions} options
41
40
  * @param {import('../../../util/exec-async-command').ExecAsyncSpawnOptions} execOptions
42
41
  */
43
42
  const inspect = async (options, execOptions = {}) => {
44
- const {
45
- network,
46
- format,
47
- formatToJSON = false,
48
- verbose
49
- } = options;
43
+ const { network, format, formatToJSON = false, verbose } = options
50
44
 
51
- const formatArg = !formatToJSON && format
52
- ? `--format=${format}`
53
- : formatToJSON && '--format=\'{{json .}}\'';
54
- const verboseArg = verbose && '--verbose';
55
- const networks = typeof network === 'string'
56
- ? network
57
- : network.join(' ');
45
+ const formatArg =
46
+ !formatToJSON && format
47
+ ? `--format=${format}`
48
+ : formatToJSON && "--format='{{json .}}'"
49
+ const verboseArg = verbose && '--verbose'
50
+ const networks = typeof network === 'string' ? network : network.join(' ')
58
51
 
59
- const args = [
60
- formatArg,
61
- verboseArg
62
- ].filter(Boolean).join(' ');
52
+ const args = [formatArg, verboseArg].filter(Boolean).join(' ')
63
53
 
64
54
  if (formatToJSON) {
65
- const result = await execAsyncSpawn(`docker network inspect ${args} ${networks}`, execOptions);
66
- return JSON.parse(result);
55
+ const result = await execAsyncSpawn(
56
+ `docker network inspect ${args} ${networks}`,
57
+ execOptions
58
+ )
59
+ return JSON.parse(result)
67
60
  }
68
61
 
69
- return execAsyncSpawn(`docker network inspect ${args} ${networks}`, execOptions);
70
- };
62
+ return execAsyncSpawn(
63
+ `docker network inspect ${args} ${networks}`,
64
+ execOptions
65
+ )
66
+ }
71
67
 
72
68
  /**
73
69
  * @param {import('./network-api').NetworkCreateOptions} options
74
70
  * @param {import('../../../util/exec-async-command').ExecAsyncSpawnOptions} execOptions
75
71
  */
76
72
  const create = async (options, execOptions = {}) => {
77
- const {
78
- network,
79
- driver
80
- } = options;
73
+ const { network, driver } = options
81
74
 
82
- const networks = typeof network === 'string'
83
- ? network
84
- : network.join(' ');
75
+ const networks = typeof network === 'string' ? network : network.join(' ')
85
76
 
86
- const driverArg = driver && `--driver='${ driver }'`;
77
+ const driverArg = driver && `--driver='${driver}'`
87
78
 
88
- const args = [
89
- driverArg
90
- ].filter(Boolean).join(' ');
79
+ const args = [driverArg].filter(Boolean).join(' ')
91
80
 
92
- return execAsyncSpawn(`docker network create ${args} ${networks}`, execOptions);
93
- };
81
+ return execAsyncSpawn(
82
+ `docker network create ${args} ${networks}`,
83
+ execOptions
84
+ )
85
+ }
94
86
 
95
87
  module.exports = {
96
88
  ls,
97
89
  inspect,
98
90
  create
99
- };
91
+ }
@@ -1,82 +1,92 @@
1
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
2
- const KnownError = require('../../../errors/known-error');
3
- const UnknownError = require('../../../errors/unknown-error');
4
- const { execAsyncSpawn } = require('../../../util/exec-async-command');
5
- const networkApi = require('./network-api');
1
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
2
+ const KnownError = require('../../../errors/known-error')
3
+ const UnknownError = require('../../../errors/unknown-error')
4
+ const { execAsyncSpawn } = require('../../../util/exec-async-command')
5
+ const networkApi = require('./network-api')
6
6
 
7
7
  /**
8
- * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
8
+ * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
9
9
  */
10
10
  const pruneNetworks = () => ({
11
11
  title: 'Removing custom networks not used by at least one container',
12
12
  task: () => execAsyncSpawn('docker network prune -f')
13
- });
13
+ })
14
14
 
15
15
  /**
16
- * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
16
+ * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
17
17
  */
18
18
  const createNetwork = () => ({
19
19
  title: 'Deploying Docker network',
20
20
  task: async ({ config: { docker } }, task) => {
21
- const networkList = await networkApi.ls({ formatToJSON: true });
21
+ const networkList = await networkApi.ls({ formatToJSON: true })
22
22
 
23
- if (networkList.some((network) => network.Name === docker.network.name)) {
24
- task.skip();
25
- return;
23
+ if (
24
+ networkList.some((network) => network.Name === docker.network.name)
25
+ ) {
26
+ task.skip()
27
+ return
26
28
  }
27
29
  try {
28
30
  await networkApi.create({
29
31
  network: docker.network.name,
30
32
  driver: 'bridge'
31
- });
33
+ })
32
34
  } catch (e) {
33
- if (e.message.includes('could not find an available, non-overlapping IPv4 address pool')) {
35
+ if (
36
+ e.message.includes(
37
+ 'could not find an available, non-overlapping IPv4 address pool'
38
+ )
39
+ ) {
34
40
  const doPruneNetworks = await task.prompt({
35
41
  type: 'Confirm',
36
42
  message: `You don't have available, non-overlapping IPv4 address pool on you system.
37
43
  Do you want remove all custom networks not used by at least one container?`
38
- });
44
+ })
39
45
 
40
46
  if (doPruneNetworks) {
41
47
  return task.newListr([
42
48
  pruneNetworks(),
43
49
  {
44
- task: () => networkApi.create({
45
- network: docker.network.name,
46
- driver: 'bridge'
47
- })
48
- }]);
50
+ task: () =>
51
+ networkApi.create({
52
+ network: docker.network.name,
53
+ driver: 'bridge'
54
+ })
55
+ }
56
+ ])
49
57
  }
50
58
 
51
59
  throw new KnownError(`Unable to create network for your project.
52
60
  You need to delete unused networks yourself.
53
- Use command ${logger.style.command('docker network prune')}`);
61
+ Use command ${logger.style.command('docker network prune')}`)
54
62
  }
55
63
 
56
- throw new UnknownError(`Unable to create network!\n\n${e}`);
64
+ throw new UnknownError(`Unable to create network!\n\n${e}`)
57
65
  }
58
66
  }
59
- });
67
+ })
60
68
 
61
69
  /**
62
- * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
70
+ * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
63
71
  */
64
72
  const removeNetwork = () => ({
65
73
  title: 'Removing Docker network',
66
74
  task: async ({ config: { docker } }, task) => {
67
- const networkList = await networkApi.ls({ formatToJSON: true });
75
+ const networkList = await networkApi.ls({ formatToJSON: true })
68
76
 
69
- if (!networkList.some((network) => network.Name === docker.network.name)) {
70
- task.skip();
71
- return;
77
+ if (
78
+ !networkList.some((network) => network.Name === docker.network.name)
79
+ ) {
80
+ task.skip()
81
+ return
72
82
  }
73
83
 
74
- await execAsyncSpawn(`docker network rm ${ docker.network.name }`);
84
+ await execAsyncSpawn(`docker network rm ${docker.network.name}`)
75
85
  }
76
- });
86
+ })
77
87
 
78
88
  module.exports = {
79
89
  createNetwork,
80
90
  removeNetwork,
81
91
  pruneNetworks
82
- };
92
+ }