@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,22 +1,20 @@
1
- const waitForIt = require('../../../util/wait-for-it');
1
+ const waitForIt = require('../../../util/wait-for-it')
2
2
 
3
3
  /**
4
4
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  module.exports = () => ({
7
7
  title: 'Waiting for Redis',
8
- task: async ({ ports }, task) => {
9
- await waitForIt({
8
+ task: ({ ports }, task) =>
9
+ waitForIt({
10
10
  name: 'redis',
11
11
  host: '127.0.0.1',
12
12
  port: ports.redis,
13
13
  output: (t) => {
14
- // eslint-disable-next-line no-param-reassign
15
- task.output = t;
14
+ task.output = t
16
15
  }
17
- });
18
- },
16
+ }),
19
17
  options: {
20
18
  bottomBar: 10
21
19
  }
22
- });
20
+ })
@@ -1,127 +1,168 @@
1
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
2
- const semver = require('semver');
3
- const fs = require('fs');
4
- const path = require('path');
5
- const { request } = require('smol-request');
6
- const KnownError = require('../../../errors/known-error');
7
- const { NginxParser } = require('../../../util/nginx-logs-parser');
8
- const sleep = require('../../../util/sleep');
9
- const { containerApi } = require('../../docker/containers');
10
-
11
- const pathToWorkingHealthCheckPhp = path.join(__dirname, '..', '..', 'php', 'working_health_check.php');
12
- const pathToProjectsHealthCheckPhp = path.join(process.cwd(), 'pub', 'health_check.php');
13
- const pathToHealthCheckBackupPhp = path.join(process.cwd(), 'pub', 'health_check-super-backup-file.php');
1
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
2
+ const semver = require('semver')
3
+ const fs = require('fs')
4
+ const path = require('path')
5
+ const { request } = require('smol-request')
6
+ const KnownError = require('../../../errors/known-error')
7
+ const { NginxParser } = require('../../../util/nginx-logs-parser')
8
+ const sleep = require('../../../util/sleep')
9
+ const { containerApi } = require('../../docker/containers')
10
+
11
+ const pathToWorkingHealthCheckPhp = path.join(
12
+ __dirname,
13
+ '..',
14
+ '..',
15
+ 'php',
16
+ 'working_health_check.php'
17
+ )
18
+ const pathToProjectsHealthCheckPhp = path.join(
19
+ process.cwd(),
20
+ 'pub',
21
+ 'health_check.php'
22
+ )
23
+ const pathToHealthCheckBackupPhp = path.join(
24
+ process.cwd(),
25
+ 'pub',
26
+ 'health_check-super-backup-file.php'
27
+ )
14
28
 
15
29
  /**
16
30
  * @param {import('../../../../typings/context').ListrContext} ctx
17
31
  */
18
32
  const getIsHealthCheckRequestBroken = async (ctx) => {
19
- const { nginx } = ctx.config.docker.getContainers(ctx.ports);
33
+ const { nginx } = ctx.config.docker.getContainers(ctx.ports)
20
34
  const parser = new NginxParser(
21
35
  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
22
- );
36
+ )
23
37
  const parsedLogs = await containerApi.logs({
24
38
  name: nginx.name,
25
39
  parser: (line) => parser.parseLine(line)
26
- });
40
+ })
27
41
 
28
- const healthCheckRequests = parsedLogs
29
- .filter((line) => line.request.includes('/health_check.php'));
42
+ const healthCheckRequests = parsedLogs.filter(
43
+ (line) =>
44
+ line && line.request && line.request.includes('/health_check.php')
45
+ )
30
46
 
31
- return healthCheckRequests.every((parsedRequest) => parsedRequest.status !== '200');
32
- };
47
+ return healthCheckRequests.every(
48
+ (parsedRequest) => parsedRequest.status !== '200'
49
+ )
50
+ }
33
51
 
34
52
  /**
35
53
  * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
36
54
  */
37
55
  const waitingForVarnish = () => ({
38
56
  title: 'Waiting for Varnish to return code 200',
39
- skip: (ctx) => ctx.debug
40
- || !ctx.config.overridenConfiguration.configuration.varnish.enabled
41
- || ctx.config.overridenConfiguration.ssl.enabled
42
- || !ctx.config.overridenConfiguration.configuration.varnish.healthCheck,
57
+ skip: (ctx) =>
58
+ ctx.debug ||
59
+ !ctx.config.overridenConfiguration.configuration.varnish.enabled ||
60
+ ctx.config.overridenConfiguration.ssl.enabled ||
61
+ !ctx.config.overridenConfiguration.configuration.varnish.healthCheck,
43
62
  task: async (ctx, task) => {
44
- const pureMagentoVersion = ctx.magentoVersion.match(/^([0-9]+\.[0-9]+\.[0-9]+)/)[1];
63
+ const pureMagentoVersion = ctx.magentoVersion.match(
64
+ /^([0-9]+\.[0-9]+\.[0-9]+)/
65
+ )[1]
45
66
 
46
- const isMagento23 = semver.satisfies(pureMagentoVersion, '<2.4');
47
- let tries = 0;
67
+ const isMagento23 = semver.satisfies(pureMagentoVersion, '<2.4')
68
+ let tries = 0
48
69
  while (tries < 10) {
49
70
  try {
50
- const response = await request(`http://localhost:${ctx.ports.sslTerminator}/`, {
51
- responseType: 'headers'
52
- });
71
+ const response = await request(
72
+ `http://localhost:${ctx.ports.sslTerminator}/`,
73
+ {
74
+ responseType: 'headers'
75
+ }
76
+ )
53
77
 
54
78
  if (response.status !== 200) {
55
- tries++;
56
- await sleep(2000);
79
+ tries++
80
+ await sleep(2000)
57
81
  } else {
58
- break;
82
+ break
59
83
  }
60
84
  } catch (e) {
61
- tries++;
62
- await sleep(200);
85
+ tries++
86
+ await sleep(200)
63
87
  }
64
88
  }
65
89
 
66
90
  if (tries === 10 && isMagento23) {
67
- const isHealthCheckRequestBroken = await getIsHealthCheckRequestBroken(ctx);
91
+ const isHealthCheckRequestBroken =
92
+ await getIsHealthCheckRequestBroken(ctx)
68
93
  if (isHealthCheckRequestBroken) {
69
94
  const confirm = await task.prompt({
70
95
  type: 'Select',
71
96
  message: `We detected that your Magento instance is experiencing problems with Varnish server.
72
97
  Health Check request is returning status 500.
73
98
 
74
- Do you want to try resolving this issue by replacing ${logger.style.file('./pub/health_check.php')} file content with content from newer Magento version (2.4.4)?`,
99
+ Do you want to try resolving this issue by replacing ${logger.style.file(
100
+ './pub/health_check.php'
101
+ )} file content with content from newer Magento version (2.4.4)?`,
75
102
  choices: [
76
103
  {
77
104
  name: 'yes',
78
- message: 'Okay, let\'s try that'
105
+ message: "Okay, let's try that"
79
106
  },
80
107
  {
81
108
  name: 'no',
82
- message: 'I will try to fix this myself, thanks for the info!'
109
+ message:
110
+ 'I will try to fix this myself, thanks for the info!'
83
111
  }
84
112
  ]
85
- });
113
+ })
86
114
 
87
115
  if (confirm === 'yes') {
88
116
  await fs.promises.writeFile(
89
117
  pathToHealthCheckBackupPhp,
90
- await fs.promises.readFile(pathToProjectsHealthCheckPhp, 'utf-8'),
118
+ await fs.promises.readFile(
119
+ pathToProjectsHealthCheckPhp,
120
+ 'utf-8'
121
+ ),
91
122
  'utf-8'
92
- );
123
+ )
93
124
 
94
- task.output = `Backup made! Available at ${logger.style.file(pathToHealthCheckBackupPhp)}`;
125
+ task.output = `Backup made! Available at ${logger.style.file(
126
+ pathToHealthCheckBackupPhp
127
+ )}`
95
128
 
96
129
  await fs.promises.writeFile(
97
130
  pathToProjectsHealthCheckPhp,
98
- await fs.promises.readFile(pathToWorkingHealthCheckPhp, 'utf-8'),
131
+ await fs.promises.readFile(
132
+ pathToWorkingHealthCheckPhp,
133
+ 'utf-8'
134
+ ),
99
135
  'utf-8'
100
- );
136
+ )
101
137
 
102
- task.output = `${logger.style.file('./pub/health_check.php')} content is replaced, waiting for nginx logs...`;
138
+ task.output = `${logger.style.file(
139
+ './pub/health_check.php'
140
+ )} content is replaced, waiting for nginx logs...`
103
141
 
104
- let connectionFixed = false;
142
+ let connectionFixed = false
105
143
 
106
144
  for (let i = 0; i < 10; i++) {
107
145
  try {
108
- const response = await request(`http://localhost:${ctx.ports.sslTerminator}/`, {
109
- responseType: 'headers'
110
- });
146
+ const response = await request(
147
+ `http://localhost:${ctx.ports.sslTerminator}/`,
148
+ {
149
+ responseType: 'headers'
150
+ }
151
+ )
111
152
 
112
153
  if (response.status !== 200) {
113
- await sleep(2000);
154
+ await sleep(2000)
114
155
  } else {
115
- connectionFixed = true;
116
- break;
156
+ connectionFixed = true
157
+ break
117
158
  }
118
159
  } catch (e) {
119
- await sleep(200);
160
+ await sleep(200)
120
161
  }
121
162
  }
122
163
 
123
164
  if (connectionFixed) {
124
- task.output = 'Connection looks good!';
165
+ task.output = 'Connection looks good!'
125
166
  const secondConfirm = await task.prompt({
126
167
  type: 'Select',
127
168
  message: `Okay, looks like it helped!
@@ -129,25 +170,27 @@ Do you want to keep backed up ${logger.style.file('health_check.php')} file?`,
129
170
  choices: [
130
171
  {
131
172
  name: 'no',
132
- message: 'I don\'t think I will need it anymore, thanks'
173
+ message:
174
+ "I don't think I will need it anymore, thanks"
133
175
  },
134
176
  {
135
177
  name: 'yes',
136
- message: 'I will keep it, maybe it will be useful (X to doubt)'
178
+ message:
179
+ 'I will keep it, maybe it will be useful (X to doubt)'
137
180
  }
138
181
  ]
139
- });
182
+ })
140
183
 
141
184
  if (secondConfirm === 'no') {
142
- await fs.promises.rm(pathToHealthCheckBackupPhp);
185
+ await fs.promises.rm(pathToHealthCheckBackupPhp)
143
186
  }
144
187
  }
145
188
 
146
- return;
189
+ return
147
190
  }
148
191
 
149
- task.skip('User choose to fix issue himself');
150
- return;
192
+ task.skip('User choose to fix issue himself')
193
+ return
151
194
  }
152
195
  }
153
196
 
@@ -155,13 +198,13 @@ Do you want to keep backed up ${logger.style.file('health_check.php')} file?`,
155
198
  throw new KnownError(`After 20 seconds website is still responding with non-200 code, which might indicate issue with setup.
156
199
  Or Varnish is still loading...
157
200
 
158
- Please check the logs!`);
201
+ Please check the logs!`)
159
202
  }
160
203
  },
161
204
  exitOnError: false,
162
205
  options: {
163
206
  bottomBar: 10
164
207
  }
165
- });
208
+ })
166
209
 
167
- module.exports = waitingForVarnish;
210
+ module.exports = waitingForVarnish
@@ -1,36 +1,39 @@
1
- const runMagentoCommand = require('../../util/run-magento');
2
- const pathExists = require('../../util/path-exists');
1
+ const runMagentoCommand = require('../../util/run-magento')
2
+ const pathExists = require('../../util/path-exists')
3
3
 
4
4
  /**
5
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
5
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
6
6
  */
7
7
  const uninstallMagento = () => ({
8
8
  title: 'Uninstall Magento App',
9
- task: async ({ config: { baseConfig } }, task) => {
10
- const appFolderExists = await pathExists(baseConfig.magentoDir);
9
+ task: async (ctx, task) => {
10
+ const {
11
+ config: { baseConfig }
12
+ } = ctx
13
+ const appFolderExists = await pathExists(baseConfig.magentoDir)
11
14
  if (!appFolderExists) {
12
- task.skip();
13
- return;
15
+ task.skip()
16
+ return
14
17
  }
15
18
 
16
- const { code } = await runMagentoCommand('setup:db:status', {
19
+ const { code } = await runMagentoCommand(ctx, 'setup:db:status', {
17
20
  throwNonZeroCode: false
18
- });
21
+ })
19
22
 
20
23
  // Magento application is not installed
21
24
  if (code === 1) {
22
- task.skip();
23
- return;
25
+ task.skip()
26
+ return
24
27
  }
25
- await runMagentoCommand('setup:uninstall', {
28
+ await runMagentoCommand(ctx, 'setup:uninstall', {
26
29
  callback: (t) => {
27
- task.output = t;
30
+ task.output = t
28
31
  }
29
- });
32
+ })
30
33
  },
31
34
  options: {
32
35
  bottomBar: Infinity
33
36
  }
34
- });
37
+ })
35
38
 
36
- module.exports = uninstallMagento;
39
+ module.exports = uninstallMagento
@@ -0,0 +1,19 @@
1
+ import { ListrContext } from "../../../typings/context";
2
+ import { ExecAsyncSpawnOptions } from "../../util/exec-async-command";
3
+
4
+ export function runPHPContainerCommand<T>(
5
+ ctx: ListrContext,
6
+ command: string,
7
+ options?: ExecAsyncSpawnOptions<T> & { useXDebugContainer?: boolean }
8
+ ): Promise<any>
9
+
10
+ export function runPHPContainerCommandTask<T>(
11
+ command: string,
12
+ options?: ExecAsyncSpawnOptions<T> & { useXDebugContainer?: boolean }
13
+ ): import('listr2').ListrTask<import('../../../typings/context').ListrContext>
14
+
15
+ export function execPHPContainerCommand<T>(
16
+ ctx: ListrContext,
17
+ command: string,
18
+ options?: ExecAsyncSpawnOptions<T> & { useXDebugContainer?: boolean }
19
+ ): Promise<any>
@@ -1,23 +1,21 @@
1
1
  /* eslint-disable no-use-before-define */
2
- const { deepmerge } = require('../../util/deepmerge');
3
- const { containerApi } = require('../docker/containers');
2
+ const { deepmerge } = require('../../util/deepmerge')
3
+ const { containerApi } = require('../docker/containers')
4
4
 
5
5
  /**
6
- * @param {import('../../../typings/context').ListrContext} ctx
7
- * @param {import('../../util/exec-async-command').ExecAsyncSpawnOptions<false> & { useXDebugContainer?: boolean }} [options]
8
- * @param {string} command
6
+ * @type {typeof import('./php-container')['runPHPContainerCommand']}
9
7
  */
10
8
  const runPHPContainerCommand = async (ctx, command, options = {}) => {
11
- const { php } = ctx.config.docker.getContainers(ctx.ports);
9
+ const { php } = ctx.config.docker.getContainers(ctx.ports)
12
10
 
13
11
  const containers = await containerApi.ls({
14
12
  formatToJSON: true,
15
13
  all: true,
16
14
  filter: `name=${php.name}`
17
- });
15
+ })
18
16
 
19
17
  if (containers.length > 0) {
20
- return execPHPContainerCommand(ctx, command, options);
18
+ return execPHPContainerCommand(ctx, command, options)
21
19
  }
22
20
 
23
21
  return containerApi.run(
@@ -29,48 +27,46 @@ const runPHPContainerCommand = async (ctx, command, options = {}) => {
29
27
  },
30
28
  options.useXDebugContainer
31
29
  ? {
32
- image: php.debugImage
33
- }
30
+ image: php.debugImage
31
+ }
34
32
  : {},
35
33
  {
36
34
  command
37
- },
35
+ }
38
36
  ),
39
37
  options
40
- );
41
- };
38
+ )
39
+ }
42
40
 
43
41
  /**
44
- * @param {string} command
45
- * @param {import('../../util/exec-async-command').ExecAsyncSpawnOptions<false> & { useXDebugContainer?: boolean }} [options]
46
- * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
42
+ * @type {typeof import('./php-container')['runPHPContainerCommandTask']}
47
43
  */
48
44
  const runPHPContainerCommandTask = (command, options = {}) => ({
49
45
  title: `Running command "${command}"`,
50
- task: (ctx, task) => runPHPContainerCommand(ctx, command, {
51
- callback: !ctx.verbose ? undefined : (t) => {
52
- task.output = t;
53
- },
54
- ...options
55
- }),
56
- option: {
46
+ task: (ctx, task) =>
47
+ runPHPContainerCommand(ctx, command, {
48
+ callback: !ctx.verbose
49
+ ? undefined
50
+ : (t) => {
51
+ task.output = t
52
+ },
53
+ ...options
54
+ }),
55
+ options: {
57
56
  bottomBar: 10
58
57
  }
59
- });
58
+ })
60
59
 
61
60
  /**
62
- *
63
- * @param {import('../../../typings/context').ListrContext} ctx
64
- * @param {import('../../util/exec-async-command').ExecAsyncSpawnOptions<false> & { useXDebugContainer?: boolean }} [options]
65
- * @param {string} command
61
+ * @type {typeof import('./php-container')['execPHPContainerCommand']}
66
62
  */
67
63
  const execPHPContainerCommand = async (ctx, command, options = {}) => {
68
- const { php } = ctx.config.docker.getContainers(ctx.ports);
64
+ const { php } = ctx.config.docker.getContainers(ctx.ports)
69
65
 
70
- const containers = await containerApi.ls({ formatToJSON: true, all: true });
66
+ const containers = await containerApi.ls({ formatToJSON: true, all: true })
71
67
 
72
68
  if (!containers.some((c) => c.Names === php.name)) {
73
- return runPHPContainerCommand(ctx, command, options);
69
+ return runPHPContainerCommand(ctx, command, options)
74
70
  }
75
71
 
76
72
  return containerApi.exec(
@@ -78,13 +74,15 @@ const execPHPContainerCommand = async (ctx, command, options = {}) => {
78
74
  php.name,
79
75
  deepmerge(
80
76
  php,
81
- options.env ? {
82
- env: options.env
83
- } : {}
77
+ options.env
78
+ ? {
79
+ env: options.env
80
+ }
81
+ : {}
84
82
  ),
85
83
  options
86
- );
87
- };
84
+ )
85
+ }
88
86
 
89
87
  /**
90
88
  * @param {string} command
@@ -92,21 +90,27 @@ const execPHPContainerCommand = async (ctx, command, options = {}) => {
92
90
  * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
93
91
  */
94
92
  const execPHPContainerCommandTask = (command, options = {}) => ({
95
- title: typeof options.title === 'string' && options.title === '' ? undefined : options.title || `Running command "${command}"`,
96
- task: (ctx, task) => execPHPContainerCommand(ctx, command, {
97
- callback: !ctx.verbose ? undefined : (t) => {
98
- task.output = t;
99
- },
100
- ...options
101
- }),
102
- option: {
93
+ title:
94
+ typeof options.title === 'string' && options.title === ''
95
+ ? undefined
96
+ : options.title || `Running command "${command}"`,
97
+ task: (ctx, task) =>
98
+ execPHPContainerCommand(ctx, command, {
99
+ callback: !ctx.verbose
100
+ ? undefined
101
+ : (t) => {
102
+ task.output = t
103
+ },
104
+ ...options
105
+ }),
106
+ options: {
103
107
  bottomBar: 10
104
108
  }
105
- });
109
+ })
106
110
 
107
111
  module.exports = {
108
112
  runPHPContainerCommand,
109
113
  runPHPContainerCommandTask,
110
114
  execPHPContainerCommand,
111
115
  execPHPContainerCommandTask
112
- };
116
+ }
@@ -1,51 +1,65 @@
1
- const path = require('path');
2
- const os = require('os');
3
- const getJsonfileData = require('../../util/get-jsonfile-data');
4
- const pathExists = require('../../util/path-exists');
5
- const { containerApi } = require('../docker/containers');
1
+ const path = require('path')
2
+ const os = require('os')
3
+ const getJsonfileData = require('../../util/get-jsonfile-data')
4
+ const pathExists = require('../../util/path-exists')
5
+ const { containerApi } = require('../docker/containers')
6
6
 
7
- const composerLockPath = path.join(process.cwd(), 'composer.lock');
8
- const envPhpPath = path.join(process.cwd(), 'app', 'etc', 'env.php');
7
+ const composerLockPath = path.join(process.cwd(), 'composer.lock')
8
+ const envPhpPath = path.join(process.cwd(), 'app', 'etc', 'env.php')
9
9
  /**
10
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
10
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
11
11
  */
12
12
  const updateEnvPHP = () => ({
13
13
  title: 'Updating env.php',
14
14
  task: async (ctx, task) => {
15
15
  // update env.php only if it's exist
16
- if (!await pathExists(envPhpPath)) {
17
- task.skip();
18
- return;
16
+ if (!(await pathExists(envPhpPath))) {
17
+ task.skip()
18
+ return
19
19
  }
20
20
 
21
- const { isDockerDesktop } = ctx;
22
- const { php } = ctx.config.docker.getContainers(ctx.ports);
21
+ const { isDockerDesktop } = ctx
22
+ const { php } = ctx.config.docker.getContainers(ctx.ports)
23
23
 
24
- const hostMachine = !isDockerDesktop ? '127.0.0.1' : 'host.docker.internal';
24
+ const hostMachine = !isDockerDesktop
25
+ ? '127.0.0.1'
26
+ : 'host.docker.internal'
25
27
 
26
- const useVarnish = (!ctx.debug && ctx.config.overridenConfiguration.configuration.varnish.enabled) ? '1' : '';
27
- const varnishHost = hostMachine;
28
- const varnishPort = ctx.ports.varnish;
28
+ const useVarnish =
29
+ !ctx.debug &&
30
+ ctx.config.overridenConfiguration.configuration.varnish.enabled
31
+ ? '1'
32
+ : ''
33
+ const varnishHost = hostMachine
34
+ const varnishPort = ctx.ports.varnish
29
35
  const previousVarnishPort = ctx.cachedPorts
30
36
  ? ctx.cachedPorts.varnish
31
- : ctx.cachedPorts;
37
+ : ctx.cachedPorts
32
38
 
33
- let SETUP_PQ = '1';
39
+ let SETUP_PQ = '1'
34
40
 
35
41
  if (await pathExists(composerLockPath)) {
36
- const composerLockData = await getJsonfileData(composerLockPath);
42
+ /**
43
+ * @type {{ packages: { name: string }[] } | null}
44
+ */
45
+ const composerLockData = await getJsonfileData(composerLockPath)
37
46
 
38
- if (!composerLockData.packages.some(({ name }) => name === 'scandipwa/persisted-query')) {
39
- SETUP_PQ = '';
47
+ if (
48
+ composerLockData &&
49
+ !composerLockData.packages.some(
50
+ ({ name }) => name === 'scandipwa/persisted-query'
51
+ )
52
+ ) {
53
+ SETUP_PQ = ''
40
54
  }
41
55
  }
42
56
 
43
57
  const result = await containerApi.run({
44
58
  env: {
45
59
  USE_VARNISH: useVarnish,
46
- VARNISH_PORT: `${ varnishPort }`,
60
+ VARNISH_PORT: `${varnishPort}`,
47
61
  VARNISH_HOST: varnishHost,
48
- PREVIOUS_VARNISH_PORT: `${ previousVarnishPort }`,
62
+ PREVIOUS_VARNISH_PORT: `${previousVarnishPort}`,
49
63
  SETUP_PQ,
50
64
  REDIS_PORT: ctx.ports.redis,
51
65
  ADMIN_URI: ctx.config.overridenConfiguration.magento.adminuri,
@@ -54,17 +68,23 @@ const updateEnvPHP = () => ({
54
68
  },
55
69
  command: 'php ./update-env-php.php',
56
70
  mountVolumes: [
57
- `${path.join(__dirname, 'update-env.php')}:${ctx.config.baseConfig.containerMagentoDir}/update-env-php.php`,
71
+ `${path.join(__dirname, 'update-env.php')}:${
72
+ ctx.config.baseConfig.containerMagentoDir
73
+ }/update-env-php.php`,
58
74
  `${envPhpPath}:${ctx.config.baseConfig.containerMagentoDir}/env.php`
59
75
  ],
60
76
  image: php.image,
61
77
  detach: false,
62
78
  rm: true,
63
- user: ((ctx.platform === 'linux' && isDockerDesktop) || !isDockerDesktop) ? `${os.userInfo().uid}:${os.userInfo().gid}` : ''
64
- });
79
+ user:
80
+ (ctx.platform === 'linux' && isDockerDesktop) ||
81
+ !isDockerDesktop
82
+ ? `${os.userInfo().uid}:${os.userInfo().gid}`
83
+ : ''
84
+ })
65
85
 
66
- task.output = result;
86
+ task.output = result
67
87
  }
68
- });
88
+ })
69
89
 
70
- module.exports = updateEnvPHP;
90
+ module.exports = updateEnvPHP