@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,16 +1,12 @@
1
- const { loadXmlFile, buildXmlFile } = require('../../../../config/xml-parser');
2
- const pathExists = require('../../../../util/path-exists');
3
- const {
4
- nameKey,
5
- valueKey,
6
- classKey
7
- } = require('../keys');
8
- const setupESLintInspection = require('./eslint-inspection-config');
9
- const { getInspectionToolsConfig } = require('./inspection-tools-config');
10
- const setupMessDetectorValidationInspection = require('./mess-detector-validation-inspection-config');
11
- const setupPhpCSFixerValidationInspection = require('./php-cs-fixer-validation-inspection-config');
12
- const setupPhpCSValidationInspection = require('./php-cs-validation-inspection-config');
13
- const setupStyleLintInspection = require('./stylelint-inspection-config');
1
+ const { loadXmlFile, buildXmlFile } = require('../../../../config/xml-parser')
2
+ const pathExists = require('../../../../util/path-exists')
3
+ const { nameKey, valueKey, classKey } = require('../keys')
4
+ const setupESLintInspection = require('./eslint-inspection-config')
5
+ const { getInspectionToolsConfig } = require('./inspection-tools-config')
6
+ const setupMessDetectorValidationInspection = require('./mess-detector-validation-inspection-config')
7
+ const setupPhpCSFixerValidationInspection = require('./php-cs-fixer-validation-inspection-config')
8
+ const setupPhpCSValidationInspection = require('./php-cs-validation-inspection-config')
9
+ const setupStyleLintInspection = require('./stylelint-inspection-config')
14
10
 
15
11
  const inspectionProfileDefaults = {
16
12
  component: {
@@ -31,52 +27,64 @@ const inspectionProfileDefaults = {
31
27
  ]
32
28
  }
33
29
  }
34
- };
30
+ }
35
31
 
36
32
  /**
37
- * @type {() => import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
33
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
38
34
  */
39
35
  const setupInspectionToolsConfigTask = () => ({
40
36
  title: 'Set up inspection tools configuration',
41
37
  task: async (ctx, task) => {
42
- const inspectionToolsConfig = getInspectionToolsConfig();
38
+ const inspectionToolsConfig = getInspectionToolsConfig()
43
39
  if (await pathExists(inspectionToolsConfig.path)) {
44
- const inspectionToolsData = await loadXmlFile(inspectionToolsConfig.path);
40
+ const inspectionToolsData = await loadXmlFile(
41
+ inspectionToolsConfig.path
42
+ )
45
43
 
46
44
  if (!inspectionToolsData.component) {
47
- inspectionToolsData.component = inspectionProfileDefaults.component;
45
+ inspectionToolsData.component =
46
+ inspectionProfileDefaults.component
48
47
  }
49
48
 
50
49
  if (!inspectionToolsData.component.profile) {
51
- inspectionToolsData.component.profile = inspectionProfileDefaults.component.profile;
50
+ inspectionToolsData.component.profile =
51
+ inspectionProfileDefaults.component.profile
52
52
  }
53
53
 
54
54
  if (!inspectionToolsData.component.profile.inspection_tool) {
55
- inspectionToolsData.component.profile.inspection_tool = [];
55
+ inspectionToolsData.component.profile.inspection_tool = []
56
56
  }
57
57
 
58
- // eslint-disable-next-line max-len
59
- if (!Array.isArray(inspectionToolsData.component.profile.inspection_tool) && Boolean(inspectionToolsData.component.profile.inspection_tool)) {
58
+ if (
59
+ !Array.isArray(
60
+ inspectionToolsData.component.profile.inspection_tool
61
+ ) &&
62
+ Boolean(inspectionToolsData.component.profile.inspection_tool)
63
+ ) {
60
64
  inspectionToolsData.component.profile.inspection_tool = [
61
65
  inspectionToolsData.component.profile.inspection_tool
62
- ];
66
+ ]
63
67
  }
64
68
 
65
- const inspectionTools = inspectionToolsData.component.profile.inspection_tool;
69
+ const inspectionTools =
70
+ inspectionToolsData.component.profile.inspection_tool
66
71
  const hasChanges = await Promise.all([
67
72
  setupPhpCSFixerValidationInspection(inspectionTools),
68
73
  setupPhpCSValidationInspection(inspectionTools),
69
74
  setupStyleLintInspection(inspectionTools),
70
75
  setupMessDetectorValidationInspection(inspectionTools)
71
- ]);
76
+ ])
72
77
 
73
78
  if (hasChanges.includes(true)) {
74
- await buildXmlFile(inspectionToolsConfig.path, inspectionToolsData);
79
+ await buildXmlFile(
80
+ inspectionToolsConfig.path,
81
+ inspectionToolsData
82
+ )
75
83
  } else {
76
- task.skip();
84
+ task.skip()
77
85
  }
78
86
 
79
- return;
87
+ return
80
88
  }
81
89
 
82
90
  const inspectionToolsData = {
@@ -98,8 +106,9 @@ const setupInspectionToolsConfigTask = () => ({
98
106
  ]
99
107
  }
100
108
  }
101
- };
102
- const inspectionTools = inspectionToolsData.component.profile.inspection_tool;
109
+ }
110
+ const inspectionTools =
111
+ inspectionToolsData.component.profile.inspection_tool
103
112
 
104
113
  await Promise.all([
105
114
  setupPhpCSFixerValidationInspection(inspectionTools),
@@ -108,10 +117,10 @@ const setupInspectionToolsConfigTask = () => ({
108
117
  setupMessDetectorValidationInspection(inspectionTools),
109
118
  setupStyleLintInspection(inspectionTools),
110
119
  setupESLintInspection(inspectionTools)
111
- ]);
120
+ ])
112
121
 
113
- await buildXmlFile(inspectionToolsConfig.path, inspectionToolsData);
122
+ await buildXmlFile(inspectionToolsConfig.path, inspectionToolsData)
114
123
  }
115
- });
124
+ })
116
125
 
117
- module.exports = setupInspectionToolsConfigTask;
126
+ module.exports = setupInspectionToolsConfigTask
@@ -1,11 +1,19 @@
1
- const path = require('path');
2
- const { baseConfig } = require('../../../../config');
1
+ const path = require('path')
2
+ const { baseConfig } = require('../../../../config')
3
3
 
4
4
  const getInspectionToolsConfig = () => ({
5
- path: path.join(process.cwd(), '.idea', 'inspectionProfiles', 'Project_Default.xml'),
6
- templatePath: path.join(baseConfig.templateDir, 'Project_Default.template.xml')
7
- });
5
+ path: path.join(
6
+ process.cwd(),
7
+ '.idea',
8
+ 'inspectionProfiles',
9
+ 'Project_Default.xml'
10
+ ),
11
+ templatePath: path.join(
12
+ baseConfig.templateDir,
13
+ 'Project_Default.template.xml'
14
+ )
15
+ })
8
16
 
9
17
  module.exports = {
10
18
  getInspectionToolsConfig
11
- };
19
+ }
@@ -1,26 +1,26 @@
1
- const { nameKey, valueKey } = require('../keys');
1
+ const { nameKey, valueKey } = require('../keys')
2
2
  const {
3
3
  options: {
4
4
  CODING_STANDARD_OPTION_NAME,
5
5
  MAGENTO2_CODING_STANDARD_OPTION_VALUE
6
6
  }
7
- } = require('./config');
7
+ } = require('./config')
8
8
 
9
9
  const setupMagento2CodingStandardOption = async (config) => {
10
- let hasChanges = false;
10
+ let hasChanges = false
11
11
  const codingStandardOption = config.option.find(
12
12
  (option) => option[nameKey] === CODING_STANDARD_OPTION_NAME
13
- );
13
+ )
14
14
 
15
15
  if (!codingStandardOption) {
16
- hasChanges = true;
16
+ hasChanges = true
17
17
  config.option.push({
18
18
  [nameKey]: CODING_STANDARD_OPTION_NAME,
19
19
  [valueKey]: MAGENTO2_CODING_STANDARD_OPTION_VALUE
20
- });
20
+ })
21
21
  }
22
22
 
23
- return hasChanges;
24
- };
23
+ return hasChanges
24
+ }
25
25
 
26
- module.exports = setupMagento2CodingStandardOption;
26
+ module.exports = setupMagento2CodingStandardOption
@@ -1,8 +1,6 @@
1
- const { phpMDRuleSetFormattedPath } = require('./paths');
1
+ const { phpMDRuleSetFormattedPath } = require('./paths')
2
2
  const {
3
- classes: {
4
- MESS_DETECTOR_VALIDATION_INSPECTION
5
- },
3
+ classes: { MESS_DETECTOR_VALIDATION_INSPECTION },
6
4
  options: {
7
5
  CODESIZE_OPTION_NAME,
8
6
  CONTROVERSIAL_OPTION_NAME,
@@ -12,13 +10,9 @@ const {
12
10
  CUSTOM_RULESETS_OPTION_NAME,
13
11
  PHP_MD_RULESET_OPTION_VALUE
14
12
  }
15
- } = require('./config');
16
- const {
17
- classKey,
18
- nameKey,
19
- valueKey
20
- } = require('../keys');
21
- const setupDefaultProperties = require('./default-properties-config');
13
+ } = require('./config')
14
+ const { classKey, nameKey, valueKey } = require('../keys')
15
+ const setupDefaultProperties = require('./default-properties-config')
22
16
 
23
17
  const messDetectorBooleanOptionNames = [
24
18
  CODESIZE_OPTION_NAME,
@@ -26,7 +20,7 @@ const messDetectorBooleanOptionNames = [
26
20
  DESIGN_OPTION_NAME,
27
21
  UNUSED_CODE_OPTION_NAME,
28
22
  NAMING_OPTION_NAME
29
- ];
23
+ ]
30
24
 
31
25
  const messDetectorDefaultRuleSetsListContent = {
32
26
  RulesetDescriptor: {
@@ -41,7 +35,7 @@ const messDetectorDefaultRuleSetsListContent = {
41
35
  }
42
36
  ]
43
37
  }
44
- };
38
+ }
45
39
 
46
40
  const messDetectorDefaultOptions = [
47
41
  ...messDetectorBooleanOptionNames.map((optionName) => ({
@@ -52,91 +46,103 @@ const messDetectorDefaultOptions = [
52
46
  [nameKey]: CUSTOM_RULESETS_OPTION_NAME,
53
47
  list: messDetectorDefaultRuleSetsListContent
54
48
  }
55
- ];
49
+ ]
56
50
 
57
51
  /**
58
52
  * @param {Array} inspectionToolsData
59
53
  * @returns {Promise<Boolean>}
60
54
  */
61
55
  const setupMessDetectorValidationInspection = async (inspectionToolsData) => {
62
- let hasChanges = false;
63
- const messDetectorConfig = inspectionToolsData.find((inspectionToolData) => inspectionToolData[classKey] === MESS_DETECTOR_VALIDATION_INSPECTION);
56
+ let hasChanges = false
57
+ const messDetectorConfig = inspectionToolsData.find(
58
+ (inspectionToolData) =>
59
+ inspectionToolData[classKey] === MESS_DETECTOR_VALIDATION_INSPECTION
60
+ )
64
61
  if (messDetectorConfig) {
65
- const hasChangesInProperties = setupDefaultProperties(messDetectorConfig, {
66
- enabled: 'true',
67
- enabled_by_default: 'true',
68
- level: 'WEAK WARNING'
69
- });
62
+ const hasChangesInProperties = setupDefaultProperties(
63
+ messDetectorConfig,
64
+ {
65
+ enabled: 'true',
66
+ enabled_by_default: 'true',
67
+ level: 'WEAK WARNING'
68
+ }
69
+ )
70
70
 
71
71
  if (hasChangesInProperties) {
72
- hasChanges = true;
72
+ hasChanges = true
73
73
  }
74
74
 
75
75
  if (messDetectorConfig.option) {
76
76
  messDetectorBooleanOptionNames.forEach((optionName) => {
77
77
  const booleanOption = messDetectorConfig.option.find(
78
78
  (o) => o[nameKey] === optionName
79
- );
79
+ )
80
80
 
81
81
  if (!booleanOption) {
82
- hasChanges = true;
82
+ hasChanges = true
83
83
  messDetectorConfig.option.push({
84
84
  [nameKey]: optionName,
85
85
  [valueKey]: 'true'
86
- });
86
+ })
87
87
  }
88
- });
88
+ })
89
89
 
90
90
  const customRulesetsOption = messDetectorConfig.option.find(
91
91
  (o) => o[nameKey] === CUSTOM_RULESETS_OPTION_NAME
92
- );
92
+ )
93
93
 
94
94
  if (customRulesetsOption) {
95
95
  if (!customRulesetsOption.list) {
96
- hasChanges = true;
97
- customRulesetsOption.list = [];
96
+ hasChanges = true
97
+ customRulesetsOption.list = []
98
98
  }
99
99
 
100
- if (customRulesetsOption.list && !Array.isArray(customRulesetsOption.list)) {
101
- hasChanges = true;
102
- customRulesetsOption.list = [customRulesetsOption.list];
100
+ if (
101
+ customRulesetsOption.list &&
102
+ !Array.isArray(customRulesetsOption.list)
103
+ ) {
104
+ hasChanges = true
105
+ customRulesetsOption.list = [customRulesetsOption.list]
103
106
  }
104
107
 
105
108
  const correctRulesetsExists = customRulesetsOption.list.some(
106
- (r) => r.RulesetDescriptor.option.some(
107
- (o) => o[nameKey] === 'path' && o[valueKey] === phpMDRuleSetFormattedPath
108
- )
109
- );
109
+ (r) =>
110
+ r.RulesetDescriptor.option.some(
111
+ (o) =>
112
+ o[nameKey] === 'path' &&
113
+ o[valueKey] === phpMDRuleSetFormattedPath
114
+ )
115
+ )
110
116
 
111
117
  if (!correctRulesetsExists) {
112
- hasChanges = true;
118
+ hasChanges = true
113
119
  customRulesetsOption.list.push(
114
120
  messDetectorDefaultRuleSetsListContent
115
- );
121
+ )
116
122
  }
117
123
  } else {
118
- hasChanges = true;
124
+ hasChanges = true
119
125
  messDetectorConfig.option.push({
120
126
  [nameKey]: CUSTOM_RULESETS_OPTION_NAME,
121
127
  list: messDetectorDefaultRuleSetsListContent
122
- });
128
+ })
123
129
  }
124
130
  } else {
125
- hasChanges = true;
126
- messDetectorConfig.option = messDetectorDefaultOptions;
131
+ hasChanges = true
132
+ messDetectorConfig.option = messDetectorDefaultOptions
127
133
  }
128
134
  } else {
129
- hasChanges = true;
135
+ hasChanges = true
130
136
  inspectionToolsData.push({
131
137
  [classKey]: MESS_DETECTOR_VALIDATION_INSPECTION,
132
138
  '@_enabled': 'true',
133
139
  '@_level': 'WEAK WARNING',
134
140
  '@_enabled_by_default': 'true',
135
141
  option: messDetectorDefaultOptions
136
- });
142
+ })
137
143
  }
138
144
 
139
- return hasChanges;
140
- };
145
+ return hasChanges
146
+ }
141
147
 
142
- module.exports = setupMessDetectorValidationInspection;
148
+ module.exports = setupMessDetectorValidationInspection
@@ -1,15 +1,44 @@
1
- const path = require('path');
2
- const { formatPathForPHPStormConfig } = require('../xml-utils');
1
+ const path = require('path')
2
+ const { formatPathForPHPStormConfig } = require('../xml-utils')
3
3
 
4
- const phpCompatibilityPath = path.join(process.cwd(), 'vendor', 'phpcompatibility', 'php-compatibility', 'PHPCompatibility');
5
- const phpCompatibilityRuleSetPath = path.join(phpCompatibilityPath, 'ruleset.xml');
6
- const phpCompatibilityFormattedPath = formatPathForPHPStormConfig(phpCompatibilityPath);
7
- const phpCSConfigurationPath = path.join(process.cwd(), '.php_cs.dist');
8
- const phpCSConfigFormattedPath = formatPathForPHPStormConfig(phpCSConfigurationPath);
9
- const phpCSFixerConfigurationPath = path.join(process.cwd(), '.php-cs-fixer.dist.php');
10
- const phpCSFixerConfigurationFormattedPath = formatPathForPHPStormConfig(phpCSFixerConfigurationPath);
11
- const phpMDRuleSetPath = path.join(process.cwd(), 'dev', 'tests', 'static', 'testsuite', 'Magento', 'Test', 'Php', '_files', 'phpmd', 'ruleset.xml');
12
- const phpMDRuleSetFormattedPath = formatPathForPHPStormConfig(phpMDRuleSetPath);
4
+ const phpCompatibilityPath = path.join(
5
+ process.cwd(),
6
+ 'vendor',
7
+ 'phpcompatibility',
8
+ 'php-compatibility',
9
+ 'PHPCompatibility'
10
+ )
11
+ const phpCompatibilityRuleSetPath = path.join(
12
+ phpCompatibilityPath,
13
+ 'ruleset.xml'
14
+ )
15
+ const phpCompatibilityFormattedPath =
16
+ formatPathForPHPStormConfig(phpCompatibilityPath)
17
+ const phpCSConfigurationPath = path.join(process.cwd(), '.php_cs.dist')
18
+ const phpCSConfigFormattedPath = formatPathForPHPStormConfig(
19
+ phpCSConfigurationPath
20
+ )
21
+ const phpCSFixerConfigurationPath = path.join(
22
+ process.cwd(),
23
+ '.php-cs-fixer.dist.php'
24
+ )
25
+ const phpCSFixerConfigurationFormattedPath = formatPathForPHPStormConfig(
26
+ phpCSFixerConfigurationPath
27
+ )
28
+ const phpMDRuleSetPath = path.join(
29
+ process.cwd(),
30
+ 'dev',
31
+ 'tests',
32
+ 'static',
33
+ 'testsuite',
34
+ 'Magento',
35
+ 'Test',
36
+ 'Php',
37
+ '_files',
38
+ 'phpmd',
39
+ 'ruleset.xml'
40
+ )
41
+ const phpMDRuleSetFormattedPath = formatPathForPHPStormConfig(phpMDRuleSetPath)
13
42
 
14
43
  module.exports = {
15
44
  phpCompatibilityPath,
@@ -21,4 +50,4 @@ module.exports = {
21
50
  phpCSFixerConfigurationFormattedPath,
22
51
  phpMDRuleSetPath,
23
52
  phpMDRuleSetFormattedPath
24
- };
53
+ }
@@ -1,60 +1,63 @@
1
1
  const {
2
- classes: {
3
- PHP_CS_FIXER_VALIDATION_INSPECTION
4
- }
5
- } = require('./config');
6
- const { classKey } = require('../keys');
7
- const setupCodingStandardOption = require('./coding-standard-config');
8
- const setupCustomRuleSetPathOption = require('./custom-ruleset-path-config');
9
- const setupDefaultProperties = require('./default-properties-config');
2
+ classes: { PHP_CS_FIXER_VALIDATION_INSPECTION }
3
+ } = require('./config')
4
+ const { classKey } = require('../keys')
5
+ const setupCodingStandardOption = require('./coding-standard-config')
6
+ const setupCustomRuleSetPathOption = require('./custom-ruleset-path-config')
7
+ const setupDefaultProperties = require('./default-properties-config')
10
8
 
11
9
  /**
12
10
  * @param {Array} inspectionToolsData
13
11
  * @returns {Promise<Boolean>}
14
12
  */
15
13
  const setupPhpCSFixerValidationInspection = async (inspectionToolsData) => {
16
- let hasChanges = false;
14
+ let hasChanges = false
17
15
  const phpCSFixerConfig = inspectionToolsData.find(
18
- (inspectionToolData) => inspectionToolData[classKey] === PHP_CS_FIXER_VALIDATION_INSPECTION
19
- );
16
+ (inspectionToolData) =>
17
+ inspectionToolData[classKey] === PHP_CS_FIXER_VALIDATION_INSPECTION
18
+ )
20
19
 
21
20
  if (phpCSFixerConfig) {
22
- const hasChangesInProperties = setupDefaultProperties(phpCSFixerConfig);
21
+ const hasChangesInProperties = setupDefaultProperties(phpCSFixerConfig)
23
22
  if (hasChangesInProperties) {
24
- hasChanges = true;
23
+ hasChanges = true
25
24
  }
26
25
 
27
26
  if (phpCSFixerConfig.option) {
28
- const hasCodingStandardChanges = await setupCodingStandardOption(phpCSFixerConfig);
27
+ const hasCodingStandardChanges = await setupCodingStandardOption(
28
+ phpCSFixerConfig
29
+ )
29
30
  if (hasCodingStandardChanges) {
30
- hasChanges = true;
31
+ hasChanges = true
31
32
  }
32
33
 
33
- const hasCustomRuleSetChanges = await setupCustomRuleSetPathOption(phpCSFixerConfig);
34
+ const hasCustomRuleSetChanges = await setupCustomRuleSetPathOption(
35
+ phpCSFixerConfig
36
+ )
34
37
  if (hasCustomRuleSetChanges) {
35
- hasChanges = true;
38
+ hasChanges = true
36
39
  }
37
40
  } else {
38
- hasChanges = true;
39
- phpCSFixerConfig.option = [];
40
- await setupCodingStandardOption(phpCSFixerConfig);
41
- await setupCustomRuleSetPathOption(phpCSFixerConfig);
41
+ hasChanges = true
42
+ phpCSFixerConfig.option = []
43
+ await setupCodingStandardOption(phpCSFixerConfig)
44
+ await setupCustomRuleSetPathOption(phpCSFixerConfig)
42
45
  }
43
46
  } else {
44
- hasChanges = true;
47
+ hasChanges = true
45
48
  const phpCSFixerConfig = {
46
49
  [classKey]: PHP_CS_FIXER_VALIDATION_INSPECTION,
47
50
  option: []
48
- };
51
+ }
49
52
 
50
- setupDefaultProperties(phpCSFixerConfig);
51
- await setupCodingStandardOption(phpCSFixerConfig);
52
- await setupCustomRuleSetPathOption(phpCSFixerConfig);
53
+ setupDefaultProperties(phpCSFixerConfig)
54
+ await setupCodingStandardOption(phpCSFixerConfig)
55
+ await setupCustomRuleSetPathOption(phpCSFixerConfig)
53
56
 
54
- inspectionToolsData.push(phpCSFixerConfig);
57
+ inspectionToolsData.push(phpCSFixerConfig)
55
58
  }
56
59
 
57
- return hasChanges;
58
- };
60
+ return hasChanges
61
+ }
59
62
 
60
- module.exports = setupPhpCSFixerValidationInspection;
63
+ module.exports = setupPhpCSFixerValidationInspection