@scandipwa/magento-scripts 2.0.3 → 2.0.4

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 -157
  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 +3 -3
  47. package/lib/config/services/mariadb/versions/mariadb-10.3.js +3 -3
  48. package/lib/config/services/mariadb/versions/mariadb-10.4.js +3 -3
  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 +2 -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 +18 -10
  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 +40 -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 +14 -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 +63 -54
  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 +8 -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 +44 -19
  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,63 +1,74 @@
1
- const {
2
- nameKey
3
- } = require('../keys');
1
+ const { nameKey } = require('../keys')
4
2
 
5
- const PHP_DEBUG_GENERAL_COMPONENT_NAME = 'PhpDebugGeneral';
3
+ const PHP_DEBUG_GENERAL_COMPONENT_NAME = 'PhpDebugGeneral'
6
4
 
7
- const portKey = '@_port';
8
- const xdebugDebugPortKey = '@_xdebug_debug_port';
9
- const ignoreConnectionsThroughUnregisteredServersKey = '@_ignore_connections_through_unregistered_servers';
5
+ const portKey = '@_port'
6
+ const xdebugDebugPortKey = '@_xdebug_debug_port'
7
+ const ignoreConnectionsThroughUnregisteredServersKey =
8
+ '@_ignore_connections_through_unregistered_servers'
10
9
 
11
- const xdebugPort = '9003';
10
+ const xdebugPort = '9003'
12
11
 
13
12
  /**
14
13
  * @param {Array} workspaceConfigs
15
14
  * @returns {Promise<Boolean>}
16
15
  */
17
16
  const setupPHPDebugGeneral = async (workspaceConfigs) => {
18
- let hasChanges = false;
17
+ let hasChanges = false
19
18
  const phpDebugGeneralComponent = workspaceConfigs.find(
20
- (workspaceConfig) => workspaceConfig[nameKey] === PHP_DEBUG_GENERAL_COMPONENT_NAME
21
- );
19
+ (workspaceConfig) =>
20
+ workspaceConfig[nameKey] === PHP_DEBUG_GENERAL_COMPONENT_NAME
21
+ )
22
22
 
23
23
  if (phpDebugGeneralComponent) {
24
- if (phpDebugGeneralComponent.xdebug_debug_ports && !Array.isArray(phpDebugGeneralComponent.xdebug_debug_ports)) {
25
- hasChanges = true;
26
- phpDebugGeneralComponent.xdebug_debug_ports = [phpDebugGeneralComponent.xdebug_debug_ports];
24
+ if (
25
+ phpDebugGeneralComponent.xdebug_debug_ports &&
26
+ !Array.isArray(phpDebugGeneralComponent.xdebug_debug_ports)
27
+ ) {
28
+ hasChanges = true
29
+ phpDebugGeneralComponent.xdebug_debug_ports = [
30
+ phpDebugGeneralComponent.xdebug_debug_ports
31
+ ]
27
32
  } else if (!phpDebugGeneralComponent.xdebug_debug_ports) {
28
- hasChanges = true;
29
- phpDebugGeneralComponent.xdebug_debug_ports = [];
33
+ hasChanges = true
34
+ phpDebugGeneralComponent.xdebug_debug_ports = []
30
35
  }
31
36
 
32
37
  if (!(xdebugDebugPortKey in phpDebugGeneralComponent)) {
33
- hasChanges = true;
34
- phpDebugGeneralComponent[xdebugDebugPortKey] = xdebugPort;
38
+ hasChanges = true
39
+ phpDebugGeneralComponent[xdebugDebugPortKey] = xdebugPort
35
40
  }
36
41
 
37
42
  if (phpDebugGeneralComponent[xdebugDebugPortKey] !== xdebugPort) {
38
- hasChanges = true;
39
- phpDebugGeneralComponent[xdebugDebugPortKey] = xdebugPort;
43
+ hasChanges = true
44
+ phpDebugGeneralComponent[xdebugDebugPortKey] = xdebugPort
40
45
  }
41
46
 
42
- if (!phpDebugGeneralComponent.xdebug_debug_ports.some((xPort) => xPort[portKey] === xdebugPort)) {
43
- hasChanges = true;
47
+ if (
48
+ !phpDebugGeneralComponent.xdebug_debug_ports.some(
49
+ (xPort) => xPort[portKey] === xdebugPort
50
+ )
51
+ ) {
52
+ hasChanges = true
44
53
  phpDebugGeneralComponent.xdebug_debug_ports.push({
45
54
  [portKey]: xdebugPort
46
- });
55
+ })
47
56
  }
48
57
  } else {
49
- hasChanges = true;
58
+ hasChanges = true
50
59
  workspaceConfigs.push({
51
60
  [nameKey]: PHP_DEBUG_GENERAL_COMPONENT_NAME,
52
61
  [xdebugDebugPortKey]: xdebugPort,
53
62
  [ignoreConnectionsThroughUnregisteredServersKey]: 'true',
54
- xdebug_debug_ports: [{
55
- [portKey]: xdebugPort
56
- }]
57
- });
63
+ xdebug_debug_ports: [
64
+ {
65
+ [portKey]: xdebugPort
66
+ }
67
+ ]
68
+ })
58
69
  }
59
70
 
60
- return hasChanges;
61
- };
71
+ return hasChanges
72
+ }
62
73
 
63
- module.exports = setupPHPDebugGeneral;
74
+ module.exports = setupPHPDebugGeneral
@@ -1,11 +1,11 @@
1
- const { nameKey } = require('../keys');
1
+ const { nameKey } = require('../keys')
2
2
 
3
- const PHP_SERVERS_COMPONENT_NAME = 'PhpServers';
3
+ const PHP_SERVERS_COMPONENT_NAME = 'PhpServers'
4
4
 
5
- const hostKey = '@_host';
6
- const usePathMappingsKey = '@_use_path_mappings';
7
- const localRootKey = '@_local-root';
8
- const remoteRootKey = '@_remote-root';
5
+ const hostKey = '@_host'
6
+ const usePathMappingsKey = '@_use_path_mappings'
7
+ const localRootKey = '@_local-root'
8
+ const remoteRootKey = '@_remote-root'
9
9
 
10
10
  /**
11
11
  * @param {Array} workspaceConfigs
@@ -14,10 +14,11 @@ const remoteRootKey = '@_remote-root';
14
14
  * @returns {Promise<Boolean>}
15
15
  */
16
16
  const setupPHPServers = async (workspaceConfigs, workspaceConfig, ctx) => {
17
- let hasChanges = false;
17
+ let hasChanges = false
18
18
  const phpServersComponent = workspaceConfigs.find(
19
- (workspaceConfig) => workspaceConfig[nameKey] === PHP_SERVERS_COMPONENT_NAME
20
- );
19
+ (workspaceConfig) =>
20
+ workspaceConfig[nameKey] === PHP_SERVERS_COMPONENT_NAME
21
+ )
21
22
 
22
23
  const defaultServerConfig = {
23
24
  [hostKey]: workspaceConfig.debugServerAddress,
@@ -30,42 +31,53 @@ const setupPHPServers = async (workspaceConfigs, workspaceConfig, ctx) => {
30
31
  [remoteRootKey]: ctx.config.baseConfig.containerMagentoDir
31
32
  }
32
33
  }
33
- };
34
+ }
34
35
 
35
36
  if (phpServersComponent) {
36
- if (phpServersComponent.servers && !Array.isArray(phpServersComponent.servers)) {
37
- hasChanges = true;
38
- phpServersComponent.servers = [phpServersComponent.servers];
37
+ if (
38
+ phpServersComponent.servers &&
39
+ !Array.isArray(phpServersComponent.servers)
40
+ ) {
41
+ hasChanges = true
42
+ phpServersComponent.servers = [phpServersComponent.servers]
39
43
  } else if (!phpServersComponent.servers) {
40
- hasChanges = true;
41
- phpServersComponent.servers = [];
44
+ hasChanges = true
45
+ phpServersComponent.servers = []
42
46
  }
43
47
 
44
- const serverConfiguration = phpServersComponent.servers.find((server) => server.server[nameKey] === workspaceConfig.serverName);
48
+ const serverConfiguration = phpServersComponent.servers.find(
49
+ (server) => server.server[nameKey] === workspaceConfig.serverName
50
+ )
45
51
 
46
52
  if (!serverConfiguration || !serverConfiguration.server) {
47
- hasChanges = true;
53
+ hasChanges = true
48
54
  phpServersComponent.servers.push({
49
55
  server: defaultServerConfig
50
- });
56
+ })
51
57
  } else if (serverConfiguration.server) {
52
58
  if (!serverConfiguration.server[usePathMappingsKey]) {
53
- hasChanges = true;
54
- serverConfiguration.server[usePathMappingsKey] = true;
59
+ hasChanges = true
60
+ serverConfiguration.server[usePathMappingsKey] = true
55
61
  }
56
- if (!serverConfiguration.server.path_mappings
57
- || (
58
- serverConfiguration.server.path_mappings.mapping
59
- && serverConfiguration.server.path_mappings.mapping[remoteRootKey] !== defaultServerConfig.path_mappings.mapping[remoteRootKey]
60
- )
62
+ if (
63
+ !serverConfiguration.server.path_mappings ||
64
+ (serverConfiguration.server.path_mappings.mapping &&
65
+ serverConfiguration.server.path_mappings.mapping[
66
+ remoteRootKey
67
+ ] !==
68
+ defaultServerConfig.path_mappings.mapping[
69
+ remoteRootKey
70
+ ])
61
71
  ) {
62
- hasChanges = true;
63
- serverConfiguration.server.path_mappings = serverConfiguration.server.path_mappings || {};
64
- serverConfiguration.server.path_mappings.mapping = defaultServerConfig.path_mappings.mapping;
72
+ hasChanges = true
73
+ serverConfiguration.server.path_mappings =
74
+ serverConfiguration.server.path_mappings || {}
75
+ serverConfiguration.server.path_mappings.mapping =
76
+ defaultServerConfig.path_mappings.mapping
65
77
  }
66
78
  }
67
79
  } else {
68
- hasChanges = true;
80
+ hasChanges = true
69
81
  workspaceConfigs.push({
70
82
  [nameKey]: PHP_SERVERS_COMPONENT_NAME,
71
83
  servers: [
@@ -73,10 +85,10 @@ const setupPHPServers = async (workspaceConfigs, workspaceConfig, ctx) => {
73
85
  server: defaultServerConfig
74
86
  }
75
87
  ]
76
- });
88
+ })
77
89
  }
78
90
 
79
- return hasChanges;
80
- };
91
+ return hasChanges
92
+ }
81
93
 
82
- module.exports = setupPHPServers;
94
+ module.exports = setupPHPServers
@@ -1,50 +1,60 @@
1
- const { nameKey, valueKey } = require('../keys');
1
+ const { nameKey, valueKey } = require('../keys')
2
2
 
3
- const PHP_STAN_PROJECT_CONFIGURATION_COMPONENT_NAME = 'PhpStanProjectConfiguration';
3
+ const PHP_STAN_PROJECT_CONFIGURATION_COMPONENT_NAME =
4
+ 'PhpStanProjectConfiguration'
4
5
 
5
- const selectedConfigurationIdName = 'selectedConfigurationId';
6
- const value = 'DEFAULT_INTERPRETER';
6
+ const selectedConfigurationIdName = 'selectedConfigurationId'
7
+ const value = 'DEFAULT_INTERPRETER'
7
8
 
8
9
  const defaultOption = {
9
10
  [nameKey]: selectedConfigurationIdName,
10
11
  [valueKey]: value
11
- };
12
+ }
12
13
 
13
14
  /**
14
15
  * @param {Array} workspaceConfigs
15
16
  * @returns {Promise<Boolean>}
16
17
  */
17
18
  const setupPHPStanProjectConfiguration = async (workspaceConfigs) => {
18
- let hasChanges = false;
19
+ let hasChanges = false
19
20
  const phpStanProjectConfigurationComponent = workspaceConfigs.find(
20
- (workspaceConfig) => workspaceConfig[nameKey] === PHP_STAN_PROJECT_CONFIGURATION_COMPONENT_NAME
21
- );
21
+ (workspaceConfig) =>
22
+ workspaceConfig[nameKey] ===
23
+ PHP_STAN_PROJECT_CONFIGURATION_COMPONENT_NAME
24
+ )
22
25
 
23
26
  if (phpStanProjectConfigurationComponent) {
24
- if (phpStanProjectConfigurationComponent.option && !Array.isArray(phpStanProjectConfigurationComponent.option)) {
25
- hasChanges = true;
26
- phpStanProjectConfigurationComponent.option = [phpStanProjectConfigurationComponent.option];
27
+ if (
28
+ phpStanProjectConfigurationComponent.option &&
29
+ !Array.isArray(phpStanProjectConfigurationComponent.option)
30
+ ) {
31
+ hasChanges = true
32
+ phpStanProjectConfigurationComponent.option = [
33
+ phpStanProjectConfigurationComponent.option
34
+ ]
27
35
  } else if (!phpStanProjectConfigurationComponent.option) {
28
- hasChanges = true;
29
- phpStanProjectConfigurationComponent.option = [];
36
+ hasChanges = true
37
+ phpStanProjectConfigurationComponent.option = []
30
38
  }
31
39
 
32
40
  if (
33
- phpStanProjectConfigurationComponent.option.length > 0
34
- && !phpStanProjectConfigurationComponent.option.some((option) => option[nameKey] === selectedConfigurationIdName)
41
+ phpStanProjectConfigurationComponent.option.length > 0 &&
42
+ !phpStanProjectConfigurationComponent.option.some(
43
+ (option) => option[nameKey] === selectedConfigurationIdName
44
+ )
35
45
  ) {
36
- phpStanProjectConfigurationComponent.option = [defaultOption];
37
- hasChanges = true;
46
+ phpStanProjectConfigurationComponent.option = [defaultOption]
47
+ hasChanges = true
38
48
  }
39
49
  } else {
40
- hasChanges = true;
50
+ hasChanges = true
41
51
  workspaceConfigs.push({
42
52
  [nameKey]: PHP_STAN_PROJECT_CONFIGURATION_COMPONENT_NAME,
43
53
  option: [defaultOption]
44
- });
54
+ })
45
55
  }
46
56
 
47
- return hasChanges;
48
- };
57
+ return hasChanges
58
+ }
49
59
 
50
- module.exports = setupPHPStanProjectConfiguration;
60
+ module.exports = setupPHPStanProjectConfiguration
@@ -1,8 +1,9 @@
1
- const { nameKey } = require('../keys');
1
+ const { nameKey } = require('../keys')
2
2
 
3
- const PHP_WORKSPACE_PROJECT_CONFIGURATION_COMPONENT_NAME = 'PhpWorkspaceProjectConfiguration';
3
+ const PHP_WORKSPACE_PROJECT_CONFIGURATION_COMPONENT_NAME =
4
+ 'PhpWorkspaceProjectConfiguration'
4
5
 
5
- const interpreterNameKey = '@_interpreter_name';
6
+ const interpreterNameKey = '@_interpreter_name'
6
7
 
7
8
  /**
8
9
  * @param {Array} workspaceConfigs
@@ -10,33 +11,35 @@ const interpreterNameKey = '@_interpreter_name';
10
11
  * @returns {Promise<Boolean>}
11
12
  */
12
13
  const setupPHPWorkspaceProjectConfiguration = async (workspaceConfigs, ctx) => {
13
- let hasChanges = false;
14
+ let hasChanges = false
14
15
  const phpWorkspaceProjectConfigurationComponent = workspaceConfigs.find(
15
- (workspaceConfig) => workspaceConfig[nameKey] === PHP_WORKSPACE_PROJECT_CONFIGURATION_COMPONENT_NAME
16
- );
17
- const { php } = ctx.config.docker.getContainers(ctx.ports);
18
- const currentInterpreterImage = ctx.debug ? php.debugImage : php.image;
16
+ (workspaceConfig) =>
17
+ workspaceConfig[nameKey] ===
18
+ PHP_WORKSPACE_PROJECT_CONFIGURATION_COMPONENT_NAME
19
+ )
20
+ const { php } = ctx.config.docker.getContainers(ctx.ports)
21
+ const currentInterpreterImage = ctx.debug ? php.debugImage : php.image
19
22
 
20
23
  if (phpWorkspaceProjectConfigurationComponent) {
21
24
  if (
22
- !phpWorkspaceProjectConfigurationComponent[interpreterNameKey]
23
- || (
24
- phpWorkspaceProjectConfigurationComponent[interpreterNameKey] !== currentInterpreterImage
25
- )
25
+ !phpWorkspaceProjectConfigurationComponent[interpreterNameKey] ||
26
+ phpWorkspaceProjectConfigurationComponent[interpreterNameKey] !==
27
+ currentInterpreterImage
26
28
  ) {
27
- hasChanges = true;
28
- phpWorkspaceProjectConfigurationComponent[interpreterNameKey] = currentInterpreterImage;
29
+ hasChanges = true
30
+ phpWorkspaceProjectConfigurationComponent[interpreterNameKey] =
31
+ currentInterpreterImage
29
32
  }
30
33
  } else {
31
- hasChanges = true;
34
+ hasChanges = true
32
35
  workspaceConfigs.push({
33
36
  [nameKey]: PHP_WORKSPACE_PROJECT_CONFIGURATION_COMPONENT_NAME,
34
37
  [interpreterNameKey]: currentInterpreterImage,
35
38
  include_path: []
36
- });
39
+ })
37
40
  }
38
41
 
39
- return hasChanges;
40
- };
42
+ return hasChanges
43
+ }
41
44
 
42
- module.exports = setupPHPWorkspaceProjectConfiguration;
45
+ module.exports = setupPHPWorkspaceProjectConfiguration
@@ -1,49 +1,63 @@
1
- const path = require('path');
1
+ const path = require('path')
2
2
  // const { baseConfig } = require('../../../../config');
3
- const { getCSAThemes } = require('../../../../util/CSA-theme');
4
- const pathExists = require('../../../../util/path-exists');
5
- const { nameKey } = require('../keys');
3
+ const { getCSAThemes } = require('../../../../util/CSA-theme')
4
+ const pathExists = require('../../../../util/path-exists')
5
+ const { nameKey } = require('../keys')
6
6
  // const { formatPathForPHPStormConfig } = require('../xml-utils');
7
7
 
8
- const PROPERTIES_COMPONENT_NAME = 'PropertiesComponent';
8
+ const PROPERTIES_COMPONENT_NAME = 'PropertiesComponent'
9
9
 
10
10
  const defaultProperties = {
11
11
  keyToString: {
12
12
  'RunOnceActivity.OpenProjectViewOnStart': 'true',
13
13
  'RunOnceActivity.ShowReadmeOnStart': 'true'
14
14
  }
15
- };
15
+ }
16
16
 
17
17
  /**
18
18
  * @param {Array} workspaceConfigs
19
19
  * @returns {Promise<Boolean>}
20
20
  */
21
21
  const setupPropertiesComponent = async (workspaceConfigs) => {
22
- let hasChanges = false;
22
+ let hasChanges = false
23
23
  const propertiesComponent = workspaceConfigs.find(
24
- (workspaceConfig) => workspaceConfig[nameKey] === PROPERTIES_COMPONENT_NAME
25
- );
24
+ (workspaceConfig) =>
25
+ workspaceConfig[nameKey] === PROPERTIES_COMPONENT_NAME
26
+ )
26
27
 
27
28
  if (!propertiesComponent) {
28
- hasChanges = true;
29
- const themes = await getCSAThemes();
29
+ hasChanges = true
30
+ const themes = await getCSAThemes()
30
31
  if (themes.length > 0) {
31
- const theme = themes[0];
32
- const themeESLintPath = path.join(process.cwd(), theme.themePath, 'node_modules', 'eslint');
32
+ const theme = themes[0]
33
+ const themeESLintPath = path.join(
34
+ process.cwd(),
35
+ theme.themePath,
36
+ 'node_modules',
37
+ 'eslint'
38
+ )
33
39
  if (await pathExists(themeESLintPath)) {
34
- defaultProperties.keyToString['node.js.selected.package.eslint'] = themeESLintPath;
35
- defaultProperties.keyToString['js.linters.configure.manually.selectedeslint'] = 'true';
36
- defaultProperties.keyToString['node.js.detected.package.eslint'] = 'true';
37
- defaultProperties.keyToString['settings.editor.selected.configurable'] = 'settings.javascript.linters.eslint';
40
+ defaultProperties.keyToString[
41
+ 'node.js.selected.package.eslint'
42
+ ] = themeESLintPath
43
+ defaultProperties.keyToString[
44
+ 'js.linters.configure.manually.selectedeslint'
45
+ ] = 'true'
46
+ defaultProperties.keyToString[
47
+ 'node.js.detected.package.eslint'
48
+ ] = 'true'
49
+ defaultProperties.keyToString[
50
+ 'settings.editor.selected.configurable'
51
+ ] = 'settings.javascript.linters.eslint'
38
52
  }
39
53
  }
40
54
  workspaceConfigs.push({
41
55
  [nameKey]: PROPERTIES_COMPONENT_NAME,
42
56
  _cdata: JSON.stringify(defaultProperties)
43
- });
57
+ })
44
58
  }
45
59
 
46
- return hasChanges;
47
- };
60
+ return hasChanges
61
+ }
48
62
 
49
- module.exports = setupPropertiesComponent;
63
+ module.exports = setupPropertiesComponent
@@ -1,50 +1,59 @@
1
- const { nameKey, valueKey } = require('../keys');
1
+ const { nameKey, valueKey } = require('../keys')
2
2
 
3
- const PSALM_PROJECT_CONFIGURATION_COMPONENT_NAME = 'PsalmProjectConfiguration';
3
+ const PSALM_PROJECT_CONFIGURATION_COMPONENT_NAME = 'PsalmProjectConfiguration'
4
4
 
5
- const selectedConfigurationIdName = 'selectedConfigurationId';
6
- const value = 'DEFAULT_INTERPRETER';
5
+ const selectedConfigurationIdName = 'selectedConfigurationId'
6
+ const value = 'DEFAULT_INTERPRETER'
7
7
 
8
8
  const defaultOption = {
9
9
  [nameKey]: selectedConfigurationIdName,
10
10
  [valueKey]: value
11
- };
11
+ }
12
12
 
13
13
  /**
14
14
  * @param {Array} workspaceConfigs
15
15
  * @returns {Promise<Boolean>}
16
16
  */
17
17
  const setupPSalmProjectConfiguration = async (workspaceConfigs) => {
18
- let hasChanges = false;
18
+ let hasChanges = false
19
19
  const psalmProjectConfigurationComponent = workspaceConfigs.find(
20
- (workspaceConfig) => workspaceConfig[nameKey] === PSALM_PROJECT_CONFIGURATION_COMPONENT_NAME
21
- );
20
+ (workspaceConfig) =>
21
+ workspaceConfig[nameKey] ===
22
+ PSALM_PROJECT_CONFIGURATION_COMPONENT_NAME
23
+ )
22
24
 
23
25
  if (psalmProjectConfigurationComponent) {
24
- if (psalmProjectConfigurationComponent.option && !Array.isArray(psalmProjectConfigurationComponent.option)) {
25
- hasChanges = true;
26
- psalmProjectConfigurationComponent.option = [psalmProjectConfigurationComponent.option];
26
+ if (
27
+ psalmProjectConfigurationComponent.option &&
28
+ !Array.isArray(psalmProjectConfigurationComponent.option)
29
+ ) {
30
+ hasChanges = true
31
+ psalmProjectConfigurationComponent.option = [
32
+ psalmProjectConfigurationComponent.option
33
+ ]
27
34
  } else if (!psalmProjectConfigurationComponent.option) {
28
- hasChanges = true;
29
- psalmProjectConfigurationComponent.option = [];
35
+ hasChanges = true
36
+ psalmProjectConfigurationComponent.option = []
30
37
  }
31
38
 
32
39
  if (
33
- psalmProjectConfigurationComponent.option.length > 0
34
- && !psalmProjectConfigurationComponent.option.some((option) => option[nameKey] === selectedConfigurationIdName)
40
+ psalmProjectConfigurationComponent.option.length > 0 &&
41
+ !psalmProjectConfigurationComponent.option.some(
42
+ (option) => option[nameKey] === selectedConfigurationIdName
43
+ )
35
44
  ) {
36
- psalmProjectConfigurationComponent.option = [defaultOption];
37
- hasChanges = true;
45
+ psalmProjectConfigurationComponent.option = [defaultOption]
46
+ hasChanges = true
38
47
  }
39
48
  } else {
40
- hasChanges = true;
49
+ hasChanges = true
41
50
  workspaceConfigs.push({
42
51
  [nameKey]: PSALM_PROJECT_CONFIGURATION_COMPONENT_NAME,
43
52
  option: [defaultOption]
44
- });
53
+ })
45
54
  }
46
55
 
47
- return hasChanges;
48
- };
56
+ return hasChanges
57
+ }
49
58
 
50
- module.exports = setupPSalmProjectConfiguration;
59
+ module.exports = setupPSalmProjectConfiguration
@@ -1,11 +1,12 @@
1
- const { nameKey } = require('../keys');
1
+ const { nameKey } = require('../keys')
2
2
 
3
- const RUN_MANAGER_COMPONENT_NAME = 'RunManager';
3
+ const RUN_MANAGER_COMPONENT_NAME = 'RunManager'
4
4
 
5
- const PHP_REMOTE_DEBUG_RUN_CONFIGURATION_TYPE = 'PhpRemoteDebugRunConfigurationType';
5
+ const PHP_REMOTE_DEBUG_RUN_CONFIGURATION_TYPE =
6
+ 'PhpRemoteDebugRunConfigurationType'
6
7
 
7
- const serverNameKey = '@_server_name';
8
- const sessionIdKey = '@_session_id';
8
+ const serverNameKey = '@_server_name'
9
+ const sessionIdKey = '@_session_id'
9
10
 
10
11
  /**
11
12
  * @param {Array} workspaceConfigs
@@ -13,10 +14,11 @@ const sessionIdKey = '@_session_id';
13
14
  * @returns {Promise<Boolean>}
14
15
  */
15
16
  const setupRunManager = async (workspaceConfigs, workspaceConfig) => {
16
- let hasChanges = false;
17
+ let hasChanges = false
17
18
  const runManagerComponent = workspaceConfigs.find(
18
- (workspaceConfig) => workspaceConfig[nameKey] === RUN_MANAGER_COMPONENT_NAME
19
- );
19
+ (workspaceConfig) =>
20
+ workspaceConfig[nameKey] === RUN_MANAGER_COMPONENT_NAME
21
+ )
20
22
 
21
23
  const defaultRunManagerConfiguration = {
22
24
  [nameKey]: workspaceConfig.runManagerName,
@@ -28,37 +30,45 @@ const setupRunManager = async (workspaceConfigs, workspaceConfig) => {
28
30
  method: {
29
31
  '@_v': '2'
30
32
  }
31
- };
33
+ }
32
34
 
33
35
  if (runManagerComponent) {
34
- if (runManagerComponent.configuration && !Array.isArray(runManagerComponent.configuration)) {
35
- hasChanges = true;
36
- runManagerComponent.configuration = [runManagerComponent.configuration];
36
+ if (
37
+ runManagerComponent.configuration &&
38
+ !Array.isArray(runManagerComponent.configuration)
39
+ ) {
40
+ hasChanges = true
41
+ runManagerComponent.configuration = [
42
+ runManagerComponent.configuration
43
+ ]
37
44
  } else if (!runManagerComponent.configuration) {
38
- hasChanges = true;
39
- runManagerComponent.configuration = [];
45
+ hasChanges = true
46
+ runManagerComponent.configuration = []
40
47
  }
41
48
 
42
- const phpRemoteDebugRunConfiguration = runManagerComponent.configuration.find(
43
- // eslint-disable-next-line max-len
44
- (configuration) => configuration['@_type'] === PHP_REMOTE_DEBUG_RUN_CONFIGURATION_TYPE && configuration[nameKey] === workspaceConfig.runManagerName
45
- );
49
+ const phpRemoteDebugRunConfiguration =
50
+ runManagerComponent.configuration.find(
51
+ (configuration) =>
52
+ configuration['@_type'] ===
53
+ PHP_REMOTE_DEBUG_RUN_CONFIGURATION_TYPE &&
54
+ configuration[nameKey] === workspaceConfig.runManagerName
55
+ )
46
56
 
47
57
  if (!phpRemoteDebugRunConfiguration) {
48
- hasChanges = true;
49
- runManagerComponent.configuration.push(defaultRunManagerConfiguration);
58
+ hasChanges = true
59
+ runManagerComponent.configuration.push(
60
+ defaultRunManagerConfiguration
61
+ )
50
62
  }
51
63
  } else {
52
- hasChanges = true;
64
+ hasChanges = true
53
65
  workspaceConfigs.push({
54
66
  [nameKey]: RUN_MANAGER_COMPONENT_NAME,
55
- configuration: [
56
- defaultRunManagerConfiguration
57
- ]
58
- });
67
+ configuration: [defaultRunManagerConfiguration]
68
+ })
59
69
  }
60
70
 
61
- return hasChanges;
62
- };
71
+ return hasChanges
72
+ }
63
73
 
64
- module.exports = setupRunManager;
74
+ module.exports = setupRunManager
@@ -1,18 +1,18 @@
1
- const path = require('path');
2
- const { baseConfig } = require('../../../../config');
1
+ const path = require('path')
2
+ const { baseConfig } = require('../../../../config')
3
3
 
4
4
  /**
5
5
  * @param {import('../../../../../typings/index').CMAConfiguration} app
6
6
  */
7
7
  const getWorkspaceConfig = (app) => ({
8
- debugServerAddress: `http://${ app.host }`,
8
+ debugServerAddress: `http://${app.host}`,
9
9
  serverName: 'create-magento-app',
10
10
  runManagerName: 'create-magento-app',
11
11
  sessionId: 'PHPSTORM',
12
12
  path: path.join(process.cwd(), '.idea', 'workspace.xml'),
13
13
  templatePath: path.join(baseConfig.templateDir, 'workspace.template.xml')
14
- });
14
+ })
15
15
 
16
16
  module.exports = {
17
17
  getWorkspaceConfig
18
- };
18
+ }