@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,7 +1,5 @@
1
1
  const {
2
- classes: {
3
- PHP_CS_VALIDATION_INSPECTION
4
- },
2
+ classes: { PHP_CS_VALIDATION_INSPECTION },
5
3
  options: {
6
4
  CODING_STANDARD_OPTION_NAME,
7
5
  MAGENTO2_CODING_STANDARD_OPTION_VALUE,
@@ -10,14 +8,10 @@ const {
10
8
  WARNING_HIGHLIGHT_LEVEL_NAME_OPTION_VALUE,
11
9
  SHOW_SNIFF_NAMES_OPTION_NAME
12
10
  }
13
- } = require('./config');
14
- const {
15
- classKey,
16
- nameKey,
17
- valueKey
18
- } = require('../keys');
19
- const setupDefaultProperties = require('./default-properties-config');
20
- const setupMagento2CodingStandardOption = require('./magento-coding-standard-config');
11
+ } = require('./config')
12
+ const { classKey, nameKey, valueKey } = require('../keys')
13
+ const setupDefaultProperties = require('./default-properties-config')
14
+ const setupMagento2CodingStandardOption = require('./magento-coding-standard-config')
21
15
 
22
16
  const phpCSConfigDefaultOptions = [
23
17
  {
@@ -36,81 +30,84 @@ const phpCSConfigDefaultOptions = [
36
30
  [nameKey]: EXTENSIONS_OPTION_NAME,
37
31
  [valueKey]: 'php'
38
32
  }
39
- ];
33
+ ]
40
34
 
41
35
  const setupPhpCSValidationInspection = async (inspectionToolsData) => {
42
- let hasChanges = false;
36
+ let hasChanges = false
43
37
  const phpCSConfig = inspectionToolsData.find(
44
- (inspectionToolData) => inspectionToolData[classKey] === PHP_CS_VALIDATION_INSPECTION
45
- );
38
+ (inspectionToolData) =>
39
+ inspectionToolData[classKey] === PHP_CS_VALIDATION_INSPECTION
40
+ )
46
41
 
47
42
  if (phpCSConfig) {
48
- const hasChangesInProperties = setupDefaultProperties(phpCSConfig);
43
+ const hasChangesInProperties = setupDefaultProperties(phpCSConfig)
49
44
  if (hasChangesInProperties) {
50
- hasChanges = true;
45
+ hasChanges = true
51
46
  }
52
47
 
53
48
  if (phpCSConfig.option) {
54
- const hasCodingStandardChanges = await setupMagento2CodingStandardOption(phpCSConfig);
49
+ const hasCodingStandardChanges =
50
+ await setupMagento2CodingStandardOption(phpCSConfig)
55
51
  if (hasCodingStandardChanges) {
56
- hasChanges = true;
52
+ hasChanges = true
57
53
  }
58
54
 
59
55
  const warningHighlightLevelNameOption = phpCSConfig.option.find(
60
- (option) => option[nameKey] === WARNING_HIGHLIGHT_LEVEL_NAME_OPTION_NAME
61
- );
56
+ (option) =>
57
+ option[nameKey] === WARNING_HIGHLIGHT_LEVEL_NAME_OPTION_NAME
58
+ )
62
59
 
63
60
  if (!warningHighlightLevelNameOption) {
64
- hasChanges = true;
61
+ hasChanges = true
65
62
  phpCSConfig.option.push({
66
63
  [nameKey]: WARNING_HIGHLIGHT_LEVEL_NAME_OPTION_NAME,
67
64
  [valueKey]: WARNING_HIGHLIGHT_LEVEL_NAME_OPTION_VALUE
68
- });
65
+ })
69
66
  }
70
67
 
71
68
  const showSniffNamesOption = phpCSConfig.option.find(
72
69
  (option) => option[nameKey] === SHOW_SNIFF_NAMES_OPTION_NAME
73
- );
70
+ )
74
71
 
75
72
  if (!showSniffNamesOption) {
76
- hasChanges = true;
73
+ hasChanges = true
77
74
  phpCSConfig.option.push({
78
75
  [nameKey]: SHOW_SNIFF_NAMES_OPTION_NAME,
79
76
  [valueKey]: 'true'
80
- });
77
+ })
81
78
  }
82
79
 
83
80
  // we want php code sniffer to lint only php files
84
81
  // for other files (js, css, scss) we have separate linter setups
85
82
  const extensionsOption = phpCSConfig.option.find(
86
83
  (option) => option[nameKey] === EXTENSIONS_OPTION_NAME
87
- );
84
+ )
88
85
 
89
86
  if (!extensionsOption) {
90
- hasChanges = true;
87
+ hasChanges = true
91
88
  phpCSConfig.option.push({
92
89
  [nameKey]: EXTENSIONS_OPTION_NAME,
93
90
  [valueKey]: 'php'
94
- });
91
+ })
95
92
  }
96
93
  } else {
97
- hasChanges = true;
98
- phpCSConfig.option = phpCSConfigDefaultOptions;
94
+ hasChanges = true
95
+ phpCSConfig.option = phpCSConfigDefaultOptions
99
96
  }
100
97
  } else {
101
- hasChanges = true;
98
+ hasChanges = true
102
99
 
103
100
  const phpCSConfig = {
104
101
  [classKey]: PHP_CS_VALIDATION_INSPECTION,
105
102
  option: phpCSConfigDefaultOptions
106
- };
103
+ }
107
104
 
108
- setupDefaultProperties(phpCSConfig);
105
+ setupDefaultProperties(phpCSConfig)
109
106
 
110
- inspectionToolsData.push(phpCSConfig);
107
+ inspectionToolsData.push(phpCSConfig)
111
108
  }
112
109
 
113
- return hasChanges;
114
- };
110
+ return hasChanges
111
+ }
115
112
 
116
- module.exports = setupPhpCSValidationInspection;
113
+ module.exports = setupPhpCSValidationInspection
@@ -1,10 +1,8 @@
1
1
  const {
2
- classes: {
3
- STYLELINT_INSPECTION
4
- }
5
- } = require('./config');
6
- const { classKey } = require('../keys');
7
- const setupDefaultProperties = require('./default-properties-config');
2
+ classes: { STYLELINT_INSPECTION }
3
+ } = require('./config')
4
+ const { classKey } = require('../keys')
5
+ const setupDefaultProperties = require('./default-properties-config')
8
6
 
9
7
  /**
10
8
  * Set up Styelint configuration
@@ -14,24 +12,25 @@ const setupDefaultProperties = require('./default-properties-config');
14
12
  * @returns {Promise<Boolean>}
15
13
  */
16
14
  const setupStyleLintInspection = async (inspectionToolsData) => {
17
- let hasChanges = false;
15
+ let hasChanges = false
18
16
  const stylelintConfig = inspectionToolsData.find(
19
- (inspectionToolData) => inspectionToolData[classKey] === STYLELINT_INSPECTION
20
- );
17
+ (inspectionToolData) =>
18
+ inspectionToolData[classKey] === STYLELINT_INSPECTION
19
+ )
21
20
 
22
21
  if (stylelintConfig) {
23
- hasChanges = setupDefaultProperties(stylelintConfig);
22
+ hasChanges = setupDefaultProperties(stylelintConfig)
24
23
  } else {
25
- hasChanges = true;
24
+ hasChanges = true
26
25
  inspectionToolsData.push({
27
26
  [classKey]: STYLELINT_INSPECTION,
28
27
  '@_enabled': 'true',
29
28
  '@_level': 'ERROR',
30
29
  '@_enabled_by_default': 'true'
31
- });
30
+ })
32
31
  }
33
32
 
34
- return hasChanges;
35
- };
33
+ return hasChanges
34
+ }
36
35
 
37
- module.exports = setupStyleLintInspection;
36
+ module.exports = setupStyleLintInspection
@@ -1,19 +1,19 @@
1
1
  // xml property key names
2
- const classKey = '@_class';
3
- const nameKey = '@_name';
4
- const valueKey = '@_value';
5
- const toolPathKey = '@_tool_path';
6
- const standardsKey = '@_standards';
7
- const urlKey = '@_url';
8
- const typeKey = '@_type';
9
- const versionKey = '@_version';
2
+ const classKey = '@_class'
3
+ const nameKey = '@_name'
4
+ const valueKey = '@_value'
5
+ const toolPathKey = '@_tool_path'
6
+ const standardsKey = '@_standards'
7
+ const urlKey = '@_url'
8
+ const typeKey = '@_type'
9
+ const versionKey = '@_version'
10
10
 
11
11
  /**
12
12
  * Makes a xml property key
13
13
  * @param {string} key
14
14
  * @returns {string}
15
15
  */
16
- const propertyKey = (key) => `@_${key}`;
16
+ const propertyKey = (key) => `@_${key}`
17
17
 
18
18
  module.exports = {
19
19
  classKey,
@@ -25,4 +25,4 @@ module.exports = {
25
25
  typeKey,
26
26
  versionKey,
27
27
  propertyKey
28
- };
28
+ }
@@ -1,54 +1,62 @@
1
- const { loadXmlFile, buildXmlFile } = require('../../../../config/xml-parser');
2
- const pathExists = require('../../../../util/path-exists');
3
- const { setupXMLStructure } = require('../setup-xml-structure');
4
- const setupMessDetector = require('./mess-detector-config');
5
- const setupPHPCodeSniffer = require('./php-code-sniffer-config');
6
- const { getPhpConfig } = require('./php-config');
7
- const setupPHPCSFixer = require('./php-cs-fixer-config');
8
- const setupPHPInterpreters = require('./php-interpreters-config');
9
- const setupPHPProjectSharedConfiguration = require('./php-project-shared-configuration-config');
1
+ const { loadXmlFile, buildXmlFile } = require('../../../../config/xml-parser')
2
+ const pathExists = require('../../../../util/path-exists')
3
+ const { setupXMLStructure } = require('../setup-xml-structure')
4
+ const setupMessDetector = require('./mess-detector-config')
5
+ const setupPHPCodeSniffer = require('./php-code-sniffer-config')
6
+ const { getPhpConfig } = require('./php-config')
7
+ const setupPHPCSFixer = require('./php-cs-fixer-config')
8
+ const setupPHPInterpreters = require('./php-interpreters-config')
9
+ const setupPHPProjectSharedConfiguration = require('./php-project-shared-configuration-config')
10
10
 
11
11
  /**
12
- * @type {() => import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
12
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
13
13
  */
14
14
  const setupPhpConfig = () => ({
15
15
  title: 'Set up PHP configuration',
16
16
  task: async (ctx, task) => {
17
- const phpConfig = getPhpConfig(ctx);
17
+ const phpConfig = getPhpConfig(ctx)
18
18
 
19
19
  if (await pathExists(phpConfig.path)) {
20
- const phpConfigContent = setupXMLStructure(await loadXmlFile(phpConfig.path));
21
- const phpConfigs = phpConfigContent.project.component;
20
+ const phpConfigContent = setupXMLStructure(
21
+ await loadXmlFile(phpConfig.path)
22
+ )
23
+ const phpConfigs = phpConfigContent.project.component
22
24
  const hasChanges = await Promise.all([
23
25
  setupMessDetector(phpConfigs),
24
26
  setupPHPCodeSniffer(phpConfigs),
25
27
  setupPHPCSFixer(phpConfigs),
26
28
  setupPHPInterpreters(phpConfigs, ctx),
27
- setupPHPProjectSharedConfiguration(phpConfigs, phpConfig.phpLanguageLevel)
28
- ]);
29
+ setupPHPProjectSharedConfiguration(
30
+ phpConfigs,
31
+ phpConfig.phpLanguageLevel
32
+ )
33
+ ])
29
34
 
30
35
  if (hasChanges.includes(true)) {
31
- await buildXmlFile(phpConfig.path, phpConfigContent);
36
+ await buildXmlFile(phpConfig.path, phpConfigContent)
32
37
  } else {
33
- task.skip();
38
+ task.skip()
34
39
  }
35
40
 
36
- return;
41
+ return
37
42
  }
38
43
 
39
- const phpConfigContent = setupXMLStructure();
40
- const phpConfigs = phpConfigContent.project.component;
44
+ const phpConfigContent = setupXMLStructure()
45
+ const phpConfigs = phpConfigContent.project.component
41
46
 
42
47
  await Promise.all([
43
48
  setupMessDetector(phpConfigs),
44
49
  setupPHPCodeSniffer(phpConfigs),
45
50
  setupPHPCSFixer(phpConfigs),
46
51
  setupPHPInterpreters(phpConfigs, ctx),
47
- setupPHPProjectSharedConfiguration(phpConfigs, phpConfig.phpLanguageLevel)
48
- ]);
52
+ setupPHPProjectSharedConfiguration(
53
+ phpConfigs,
54
+ phpConfig.phpLanguageLevel
55
+ )
56
+ ])
49
57
 
50
- await buildXmlFile(phpConfig.path, phpConfigContent);
58
+ await buildXmlFile(phpConfig.path, phpConfigContent)
51
59
  }
52
- });
60
+ })
53
61
 
54
- module.exports = setupPhpConfig;
62
+ module.exports = setupPhpConfig
@@ -1,54 +1,57 @@
1
- const path = require('path');
2
- const pathExists = require('../../../../util/path-exists');
3
- const { nameKey, toolPathKey } = require('../keys');
4
- const { formatPathForPHPStormConfig } = require('../xml-utils');
1
+ const path = require('path')
2
+ const pathExists = require('../../../../util/path-exists')
3
+ const { nameKey, toolPathKey } = require('../keys')
4
+ const { formatPathForPHPStormConfig } = require('../xml-utils')
5
5
 
6
- const phpMDBinaryPath = path.join(process.cwd(), 'vendor', 'bin', 'phpmd');
7
- const phpMDBinaryFormattedPath = formatPathForPHPStormConfig(phpMDBinaryPath);
6
+ const phpMDBinaryPath = path.join(process.cwd(), 'vendor', 'bin', 'phpmd')
7
+ const phpMDBinaryFormattedPath = formatPathForPHPStormConfig(phpMDBinaryPath)
8
8
 
9
9
  const defaultMessDetectorSetting = {
10
10
  MessDetectorConfiguration: {
11
11
  [toolPathKey]: phpMDBinaryFormattedPath
12
12
  }
13
- };
13
+ }
14
14
 
15
15
  /**
16
16
  * @param {Array} phpConfigs
17
17
  * @returns {Promise<Boolean>}
18
18
  */
19
19
  const setupMessDetector = async (phpConfigs) => {
20
- let hasChanges = false;
20
+ let hasChanges = false
21
21
  const messDetectorComponent = phpConfigs.find(
22
22
  (phpConfig) => phpConfig[nameKey] === 'MessDetector'
23
- );
23
+ )
24
24
 
25
- const isPhpMDBinPathExists = await pathExists(phpMDBinaryPath);
25
+ const isPhpMDBinPathExists = await pathExists(phpMDBinaryPath)
26
26
 
27
27
  if (messDetectorComponent && isPhpMDBinPathExists) {
28
28
  if (!Array.isArray(messDetectorComponent.phpmd_settings)) {
29
- hasChanges = true;
30
- messDetectorComponent.phpmd_settings = [messDetectorComponent.phpmd_settings];
29
+ hasChanges = true
30
+ messDetectorComponent.phpmd_settings = [
31
+ messDetectorComponent.phpmd_settings
32
+ ]
31
33
  }
32
34
 
33
- const messDetectorConfiguration = messDetectorComponent.phpmd_settings.find(
34
- (phpmdSetting) => phpmdSetting.MessDetectorConfiguration
35
- );
35
+ const messDetectorConfiguration =
36
+ messDetectorComponent.phpmd_settings.find(
37
+ (phpmdSetting) => phpmdSetting.MessDetectorConfiguration
38
+ )
36
39
 
37
40
  if (!messDetectorConfiguration) {
38
- hasChanges = true;
39
- messDetectorComponent.phpmd_settings.push(defaultMessDetectorSetting);
41
+ hasChanges = true
42
+ messDetectorComponent.phpmd_settings.push(
43
+ defaultMessDetectorSetting
44
+ )
40
45
  }
41
46
  } else if (isPhpMDBinPathExists) {
42
- hasChanges = true;
47
+ hasChanges = true
43
48
  phpConfigs.push({
44
49
  [nameKey]: 'MessDetector',
45
- phpmd_settings: [
46
- defaultMessDetectorSetting
47
- ]
48
- });
50
+ phpmd_settings: [defaultMessDetectorSetting]
51
+ })
49
52
  }
50
53
 
51
- return hasChanges;
52
- };
54
+ return hasChanges
55
+ }
53
56
 
54
- module.exports = setupMessDetector;
57
+ module.exports = setupMessDetector
@@ -1,18 +1,33 @@
1
- const path = require('path');
2
- const pathExists = require('../../../../util/path-exists');
3
- const { nameKey, toolPathKey, standardsKey } = require('../keys');
4
- const { formatPathForPHPStormConfig } = require('../xml-utils');
1
+ const path = require('path')
2
+ const pathExists = require('../../../../util/path-exists')
3
+ const { nameKey, toolPathKey, standardsKey } = require('../keys')
4
+ const { formatPathForPHPStormConfig } = require('../xml-utils')
5
5
 
6
- const PHP_CODE_SNIFFER_COMPONENT_NAME = 'PhpCodeSniffer';
6
+ const PHP_CODE_SNIFFER_COMPONENT_NAME = 'PhpCodeSniffer'
7
7
 
8
- const beautifierPathKey = '@_beautifier_path';
8
+ const beautifierPathKey = '@_beautifier_path'
9
9
 
10
- const phpCodeSnifferStandards = 'MySource;PEAR;PHPCompatibility;PSR1;PSR12;PSR2;Squiz;Zend';
11
- const phpCodeSnifferBinaryPath = path.join(process.cwd(), 'vendor', 'bin', 'phpcs');
12
- const phpCodeSnifferBinaryFormattedPath = formatPathForPHPStormConfig(phpCodeSnifferBinaryPath);
10
+ const phpCodeSnifferStandards =
11
+ 'MySource;PEAR;PHPCompatibility;PSR1;PSR12;PSR2;Squiz;Zend'
12
+ const phpCodeSnifferBinaryPath = path.join(
13
+ process.cwd(),
14
+ 'vendor',
15
+ 'bin',
16
+ 'phpcs'
17
+ )
18
+ const phpCodeSnifferBinaryFormattedPath = formatPathForPHPStormConfig(
19
+ phpCodeSnifferBinaryPath
20
+ )
13
21
 
14
- const phpCodeSnifferBeautifierBinaryPath = path.join(process.cwd(), 'vendor', 'bin', 'phpcbf');
15
- const phpCodeSnifferBeautifierBinaryFormattedPath = formatPathForPHPStormConfig(phpCodeSnifferBeautifierBinaryPath);
22
+ const phpCodeSnifferBeautifierBinaryPath = path.join(
23
+ process.cwd(),
24
+ 'vendor',
25
+ 'bin',
26
+ 'phpcbf'
27
+ )
28
+ const phpCodeSnifferBeautifierBinaryFormattedPath = formatPathForPHPStormConfig(
29
+ phpCodeSnifferBeautifierBinaryPath
30
+ )
16
31
 
17
32
  const defaultPHPCSSetting = {
18
33
  PhpCSConfiguration: {
@@ -20,47 +35,53 @@ const defaultPHPCSSetting = {
20
35
  [standardsKey]: phpCodeSnifferStandards,
21
36
  [beautifierPathKey]: phpCodeSnifferBeautifierBinaryFormattedPath
22
37
  }
23
- };
38
+ }
24
39
 
25
40
  /**
26
41
  * @param {Array} phpConfigs
27
42
  * @returns {Promise<Boolean>}
28
43
  */
29
44
  const setupPHPCodeSniffer = async (phpConfigs) => {
30
- let hasChanges = false;
45
+ let hasChanges = false
31
46
  const phpCodeSnifferComponent = phpConfigs.find(
32
47
  (phpConfig) => phpConfig[nameKey] === PHP_CODE_SNIFFER_COMPONENT_NAME
33
- );
48
+ )
34
49
 
35
- const isPhpCodeSnifferBinPathExists = await pathExists(phpCodeSnifferBinaryPath);
36
- const isPhpCodeSnifferBeautifierBinPathExists = await pathExists(phpCodeSnifferBeautifierBinaryPath);
37
- const isAllPHPCSBinsExists = isPhpCodeSnifferBinPathExists && isPhpCodeSnifferBeautifierBinPathExists;
50
+ const isPhpCodeSnifferBinPathExists = await pathExists(
51
+ phpCodeSnifferBinaryPath
52
+ )
53
+ const isPhpCodeSnifferBeautifierBinPathExists = await pathExists(
54
+ phpCodeSnifferBeautifierBinaryPath
55
+ )
56
+ const isAllPHPCSBinsExists =
57
+ isPhpCodeSnifferBinPathExists && isPhpCodeSnifferBeautifierBinPathExists
38
58
 
39
59
  if (phpCodeSnifferComponent && isAllPHPCSBinsExists) {
40
60
  if (!Array.isArray(phpCodeSnifferComponent.phpcs_settings)) {
41
- hasChanges = true;
42
- phpCodeSnifferComponent.phpcs_settings = [phpCodeSnifferComponent.phpcs_settings];
61
+ hasChanges = true
62
+ phpCodeSnifferComponent.phpcs_settings = [
63
+ phpCodeSnifferComponent.phpcs_settings
64
+ ]
43
65
  }
44
66
 
45
- const phpCodeSnifferConfiguration = phpCodeSnifferComponent.phpcs_settings.find(
46
- (phpcsSetting) => phpcsSetting.PhpCSConfiguration
47
- );
67
+ const phpCodeSnifferConfiguration =
68
+ phpCodeSnifferComponent.phpcs_settings.find(
69
+ (phpcsSetting) => phpcsSetting.PhpCSConfiguration
70
+ )
48
71
 
49
72
  if (!phpCodeSnifferConfiguration) {
50
- hasChanges = true;
51
- phpCodeSnifferComponent.phpcs_settings.push(defaultPHPCSSetting);
73
+ hasChanges = true
74
+ phpCodeSnifferComponent.phpcs_settings.push(defaultPHPCSSetting)
52
75
  }
53
76
  } else if (isAllPHPCSBinsExists) {
54
- hasChanges = true;
77
+ hasChanges = true
55
78
  phpConfigs.push({
56
79
  [nameKey]: PHP_CODE_SNIFFER_COMPONENT_NAME,
57
- phpcs_settings: [
58
- defaultPHPCSSetting
59
- ]
60
- });
80
+ phpcs_settings: [defaultPHPCSSetting]
81
+ })
61
82
  }
62
83
 
63
- return hasChanges;
64
- };
84
+ return hasChanges
85
+ }
65
86
 
66
- module.exports = setupPHPCodeSniffer;
87
+ module.exports = setupPHPCodeSniffer
@@ -1,20 +1,20 @@
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/context').ListrContext} ctx
6
6
  */
7
7
  const getPhpConfig = (ctx) => {
8
- const [majorPHPVersion, minorPHPVersion] = ctx.phpVersion.split('.');
9
- const phpLanguageLevel = `${ majorPHPVersion }.${ minorPHPVersion }`;
8
+ const [majorPHPVersion, minorPHPVersion] = ctx.phpVersion.split('.')
9
+ const phpLanguageLevel = `${majorPHPVersion}.${minorPHPVersion}`
10
10
 
11
11
  return {
12
12
  phpLanguageLevel,
13
13
  path: path.join(process.cwd(), '.idea', 'php.xml'),
14
14
  templatePath: path.join(baseConfig.templateDir, 'php.template.xml')
15
- };
16
- };
15
+ }
16
+ }
17
17
 
18
18
  module.exports = {
19
19
  getPhpConfig
20
- };
20
+ }
@@ -1,58 +1,68 @@
1
- const path = require('path');
2
- const pathExists = require('../../../../util/path-exists');
3
- const { nameKey, toolPathKey, standardsKey } = require('../keys');
4
- const { formatPathForPHPStormConfig } = require('../xml-utils');
1
+ const path = require('path')
2
+ const pathExists = require('../../../../util/path-exists')
3
+ const { nameKey, toolPathKey, standardsKey } = require('../keys')
4
+ const { formatPathForPHPStormConfig } = require('../xml-utils')
5
5
 
6
- const PHP_CS_FIXER_COMPONENT_NAME = 'PhpCSFixer';
6
+ const PHP_CS_FIXER_COMPONENT_NAME = 'PhpCSFixer'
7
7
 
8
- const phpCSFixerStandards = 'PSR1;PSR2;Symfony;DoctrineAnnotation;PHP70Migration;PHP71Migration';
9
- const phpCSFixerBinaryPath = path.join(process.cwd(), 'vendor', 'bin', 'php-cs-fixer');
10
- const phpCSFixerBinaryFormattedPath = formatPathForPHPStormConfig(phpCSFixerBinaryPath);
8
+ const phpCSFixerStandards =
9
+ 'PSR1;PSR2;Symfony;DoctrineAnnotation;PHP70Migration;PHP71Migration'
10
+ const phpCSFixerBinaryPath = path.join(
11
+ process.cwd(),
12
+ 'vendor',
13
+ 'bin',
14
+ 'php-cs-fixer'
15
+ )
16
+ const phpCSFixerBinaryFormattedPath =
17
+ formatPathForPHPStormConfig(phpCSFixerBinaryPath)
11
18
 
12
19
  const defaultPHPCSFixerSettings = {
13
20
  PhpCSFixerConfiguration: {
14
21
  [toolPathKey]: phpCSFixerBinaryFormattedPath,
15
22
  [standardsKey]: phpCSFixerStandards
16
23
  }
17
- };
24
+ }
18
25
 
19
26
  /**
20
27
  * @param {Array} phpConfigs
21
28
  * @returns {Promise<Boolean>}
22
29
  */
23
30
  const setupPHPCSFixer = async (phpConfigs) => {
24
- let hasChanges = false;
31
+ let hasChanges = false
25
32
  const phpCSFixerComponent = phpConfigs.find(
26
33
  (phpConfig) => phpConfig[nameKey] === PHP_CS_FIXER_COMPONENT_NAME
27
- );
34
+ )
28
35
 
29
- const isPhpCSFixerBinPathExists = await pathExists(phpCSFixerBinaryPath);
36
+ const isPhpCSFixerBinPathExists = await pathExists(phpCSFixerBinaryPath)
30
37
 
31
38
  if (phpCSFixerComponent && isPhpCSFixerBinPathExists) {
32
39
  if (!Array.isArray(phpCSFixerComponent.phpcsfixer_settings)) {
33
- hasChanges = true;
34
- phpCSFixerComponent.phpcsfixer_settings = [phpCSFixerComponent.phpcsfixer_settings];
40
+ hasChanges = true
41
+ phpCSFixerComponent.phpcsfixer_settings = [
42
+ phpCSFixerComponent.phpcsfixer_settings
43
+ ]
35
44
  }
36
45
 
37
- const phpCSFixerConfiguration = phpCSFixerComponent.phpcsfixer_settings.find(
38
- (phpcsfixerSetting) => phpcsfixerSetting.PhpCSFixerConfiguration
39
- );
46
+ const phpCSFixerConfiguration =
47
+ phpCSFixerComponent.phpcsfixer_settings.find(
48
+ (phpcsfixerSetting) => phpcsfixerSetting.PhpCSFixerConfiguration
49
+ )
40
50
 
41
51
  if (!phpCSFixerConfiguration) {
42
- hasChanges = true;
43
- phpCSFixerComponent.phpcsfixer_settings.push(defaultPHPCSFixerSettings);
52
+ hasChanges = true
53
+ phpCSFixerComponent.phpcsfixer_settings.push(
54
+ defaultPHPCSFixerSettings
55
+ )
44
56
  }
45
57
  } else if (isPhpCSFixerBinPathExists) {
46
- hasChanges = true;
58
+ hasChanges = true
47
59
  phpConfigs.push({
48
60
  [nameKey]: PHP_CS_FIXER_COMPONENT_NAME,
49
- phpcsfixer_settings: [
50
- defaultPHPCSFixerSettings
51
- ]
52
- });
61
+ phpcsfixer_settings: [defaultPHPCSFixerSettings]
62
+ })
53
63
  }
54
64
 
55
- return hasChanges;
56
- };
65
+ return hasChanges
66
+ }
57
67
 
58
- module.exports = setupPHPCSFixer;
68
+ module.exports = setupPHPCSFixer