@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,6 +1,6 @@
1
- const { nameKey, propertyKey } = require('../keys');
1
+ const { nameKey, propertyKey } = require('../keys')
2
2
 
3
- const PHP_INTERPRETERS_COMPONENT_NAME = 'PhpInterpreters';
3
+ const PHP_INTERPRETERS_COMPONENT_NAME = 'PhpInterpreters'
4
4
 
5
5
  /**
6
6
  * @param {Array} phpConfigs
@@ -8,13 +8,13 @@ const PHP_INTERPRETERS_COMPONENT_NAME = 'PhpInterpreters';
8
8
  * @returns {Promise<Boolean>}
9
9
  */
10
10
  const setupPHPInterpreters = async (phpConfigs, ctx) => {
11
- let hasChanges = false;
11
+ let hasChanges = false
12
12
  const phpInterpretersComponent = phpConfigs.find(
13
13
  (phpConfig) => phpConfig[nameKey] === PHP_INTERPRETERS_COMPONENT_NAME
14
- );
14
+ )
15
15
 
16
- const { php } = ctx.config.docker.getContainers(ctx.ports);
17
- const currentInterpreterImage = ctx.debug ? php.debugImage : php.image;
16
+ const { php } = ctx.config.docker.getContainers(ctx.ports)
17
+ const currentInterpreterImage = ctx.debug ? php.debugImage : php.image
18
18
 
19
19
  const defaultPhpInterpreterConfiguration = {
20
20
  [nameKey]: currentInterpreterImage,
@@ -28,54 +28,76 @@ const setupPHPInterpreters = async (phpConfigs, ctx) => {
28
28
  [propertyKey('RUN_AS_ROOT_VIA_SUDO')]: 'false',
29
29
  [propertyKey('DOCKER_ACCOUNT_NAME')]: 'Docker',
30
30
  [propertyKey('DOCKER_IMAGE_NAME')]: currentInterpreterImage,
31
- [propertyKey('DOCKER_REMOTE_PROJECT_PATH')]: ctx.config.baseConfig.containerMagentoDir
31
+ [propertyKey('DOCKER_REMOTE_PROJECT_PATH')]:
32
+ ctx.config.baseConfig.containerMagentoDir
32
33
  }
33
- };
34
+ }
34
35
 
35
36
  if (phpInterpretersComponent) {
36
37
  if (!phpInterpretersComponent.interpreters) {
37
- hasChanges = true;
38
- phpInterpretersComponent.interpreters = {};
38
+ hasChanges = true
39
+ phpInterpretersComponent.interpreters = {}
39
40
  }
40
41
 
41
42
  if (!Array.isArray(phpInterpretersComponent.interpreters.interpreter)) {
42
- hasChanges = true;
43
- phpInterpretersComponent.interpreters.interpreter = [phpInterpretersComponent.interpreters.interpreter];
43
+ hasChanges = true
44
+ phpInterpretersComponent.interpreters.interpreter = [
45
+ phpInterpretersComponent.interpreters.interpreter
46
+ ]
44
47
  }
45
48
 
46
- const phpInterpreterConfiguration = phpInterpretersComponent.interpreters.interpreter.find(
47
- (interpreter) => interpreter[nameKey] === php.image || interpreter[nameKey] === php.debugImage
48
- );
49
+ const phpInterpreterConfiguration =
50
+ phpInterpretersComponent.interpreters.interpreter.find(
51
+ (interpreter) =>
52
+ interpreter[nameKey] === php.image ||
53
+ interpreter[nameKey] === php.debugImage
54
+ )
49
55
 
50
56
  if (!phpInterpreterConfiguration) {
51
- hasChanges = true;
52
- phpInterpretersComponent.interpreters.interpreter.push(defaultPhpInterpreterConfiguration);
57
+ hasChanges = true
58
+ phpInterpretersComponent.interpreters.interpreter.push(
59
+ defaultPhpInterpreterConfiguration
60
+ )
53
61
  } else {
54
- if (phpInterpreterConfiguration[nameKey] !== currentInterpreterImage) {
55
- hasChanges = true;
56
- phpInterpreterConfiguration[nameKey] = currentInterpreterImage;
62
+ if (
63
+ phpInterpreterConfiguration[nameKey] !== currentInterpreterImage
64
+ ) {
65
+ hasChanges = true
66
+ phpInterpreterConfiguration[nameKey] = currentInterpreterImage
57
67
  }
58
- if (phpInterpreterConfiguration.remote_data[propertyKey('DOCKER_IMAGE_NAME')] !== currentInterpreterImage) {
59
- hasChanges = true;
60
- phpInterpreterConfiguration.remote_data[propertyKey('DOCKER_IMAGE_NAME')] = currentInterpreterImage;
68
+ if (
69
+ phpInterpreterConfiguration.remote_data[
70
+ propertyKey('DOCKER_IMAGE_NAME')
71
+ ] !== currentInterpreterImage
72
+ ) {
73
+ hasChanges = true
74
+ phpInterpreterConfiguration.remote_data[
75
+ propertyKey('DOCKER_IMAGE_NAME')
76
+ ] = currentInterpreterImage
61
77
  }
62
78
 
63
- if (phpInterpreterConfiguration.remote_data[propertyKey('DOCKER_REMOTE_PROJECT_PATH')] !== ctx.config.baseConfig.containerMagentoDir) {
64
- hasChanges = true;
65
- phpInterpreterConfiguration.remote_data[propertyKey('DOCKER_REMOTE_PROJECT_PATH')] = ctx.config.baseConfig.containerMagentoDir;
79
+ if (
80
+ phpInterpreterConfiguration.remote_data[
81
+ propertyKey('DOCKER_REMOTE_PROJECT_PATH')
82
+ ] !== ctx.config.baseConfig.containerMagentoDir
83
+ ) {
84
+ hasChanges = true
85
+ phpInterpreterConfiguration.remote_data[
86
+ propertyKey('DOCKER_REMOTE_PROJECT_PATH')
87
+ ] = ctx.config.baseConfig.containerMagentoDir
66
88
  }
67
89
  }
68
90
  } else {
69
- hasChanges = true;
91
+ hasChanges = true
70
92
  phpConfigs.push({
71
93
  [nameKey]: PHP_INTERPRETERS_COMPONENT_NAME,
72
94
  interpreters: {
73
95
  interpreter: defaultPhpInterpreterConfiguration
74
96
  }
75
- });
97
+ })
76
98
  }
77
99
 
78
- return hasChanges;
79
- };
100
+ return hasChanges
101
+ }
80
102
 
81
- module.exports = setupPHPInterpreters;
103
+ module.exports = setupPHPInterpreters
@@ -1,59 +1,71 @@
1
- const {
2
- nameKey,
3
- valueKey
4
- } = require('../keys');
1
+ const { nameKey, valueKey } = require('../keys')
5
2
 
6
- const PHP_PROJECT_SHARED_CONFIGURATION_COMPONENT_NAME = 'PhpProjectSharedConfiguration';
3
+ const PHP_PROJECT_SHARED_CONFIGURATION_COMPONENT_NAME =
4
+ 'PhpProjectSharedConfiguration'
7
5
 
8
- const SUGGESTED_CHANGE_DEFAULT_LANGUAGE_LEVEL_OPTION_NAME = 'suggestChangeDefaultLanguageLevel';
6
+ const SUGGESTED_CHANGE_DEFAULT_LANGUAGE_LEVEL_OPTION_NAME =
7
+ 'suggestChangeDefaultLanguageLevel'
9
8
 
10
- const phpLanguageLevelKey = '@_php_language_level';
9
+ const phpLanguageLevelKey = '@_php_language_level'
11
10
 
12
11
  /**
13
12
  * @param {Array} phpConfigs
14
13
  * @param {String} currentPhpLanguageLevel
15
14
  * @returns {Promise<Boolean>}
16
15
  */
17
- const setupPHPProjectSharedConfiguration = async (phpConfigs, currentPhpLanguageLevel) => {
18
- let hasChanges = false;
16
+ const setupPHPProjectSharedConfiguration = async (
17
+ phpConfigs,
18
+ currentPhpLanguageLevel
19
+ ) => {
20
+ let hasChanges = false
19
21
  const phpProjectSharedConfigurationComponent = phpConfigs.find(
20
- (phpConfig) => phpConfig[nameKey] === PHP_PROJECT_SHARED_CONFIGURATION_COMPONENT_NAME
21
- );
22
+ (phpConfig) =>
23
+ phpConfig[nameKey] ===
24
+ PHP_PROJECT_SHARED_CONFIGURATION_COMPONENT_NAME
25
+ )
22
26
 
23
27
  const defaultSuggestChangeDefaultLanguageLevelOption = {
24
28
  [nameKey]: SUGGESTED_CHANGE_DEFAULT_LANGUAGE_LEVEL_OPTION_NAME,
25
29
  [valueKey]: currentPhpLanguageLevel
26
- };
30
+ }
27
31
 
28
32
  if (phpProjectSharedConfigurationComponent) {
29
- if (phpProjectSharedConfigurationComponent.option && !Array.isArray(phpProjectSharedConfigurationComponent.option)) {
30
- hasChanges = true;
31
- phpProjectSharedConfigurationComponent.option = [phpProjectSharedConfigurationComponent.option];
33
+ if (
34
+ phpProjectSharedConfigurationComponent.option &&
35
+ !Array.isArray(phpProjectSharedConfigurationComponent.option)
36
+ ) {
37
+ hasChanges = true
38
+ phpProjectSharedConfigurationComponent.option = [
39
+ phpProjectSharedConfigurationComponent.option
40
+ ]
32
41
  } else if (!phpProjectSharedConfigurationComponent.option) {
33
- hasChanges = true;
34
- phpProjectSharedConfigurationComponent.option = [];
42
+ hasChanges = true
43
+ phpProjectSharedConfigurationComponent.option = []
35
44
  }
36
45
 
37
- const suggestedChangeDefaultLanguageLevelOption = phpProjectSharedConfigurationComponent.option.find(
38
- (phpProjectSharedConfigOption) => phpProjectSharedConfigOption[nameKey] === SUGGESTED_CHANGE_DEFAULT_LANGUAGE_LEVEL_OPTION_NAME
39
- );
46
+ const suggestedChangeDefaultLanguageLevelOption =
47
+ phpProjectSharedConfigurationComponent.option.find(
48
+ (phpProjectSharedConfigOption) =>
49
+ phpProjectSharedConfigOption[nameKey] ===
50
+ SUGGESTED_CHANGE_DEFAULT_LANGUAGE_LEVEL_OPTION_NAME
51
+ )
40
52
 
41
53
  if (!suggestedChangeDefaultLanguageLevelOption) {
42
- hasChanges = true;
43
- phpProjectSharedConfigurationComponent.option.push(defaultSuggestChangeDefaultLanguageLevelOption);
54
+ hasChanges = true
55
+ phpProjectSharedConfigurationComponent.option.push(
56
+ defaultSuggestChangeDefaultLanguageLevelOption
57
+ )
44
58
  }
45
59
  } else {
46
- hasChanges = true;
60
+ hasChanges = true
47
61
  phpConfigs.push({
48
62
  [nameKey]: PHP_PROJECT_SHARED_CONFIGURATION_COMPONENT_NAME,
49
63
  [phpLanguageLevelKey]: currentPhpLanguageLevel,
50
- option: [
51
- defaultSuggestChangeDefaultLanguageLevelOption
52
- ]
53
- });
64
+ option: [defaultSuggestChangeDefaultLanguageLevelOption]
65
+ })
54
66
  }
55
67
 
56
- return hasChanges;
57
- };
68
+ return hasChanges
69
+ }
58
70
 
59
- module.exports = setupPHPProjectSharedConfiguration;
71
+ module.exports = setupPHPProjectSharedConfiguration
@@ -1,42 +1,55 @@
1
- const { loadXmlFile, buildXmlFile } = require('../../../../config/xml-parser');
2
- const pathExists = require('../../../../util/path-exists');
3
- const { setupXMLStructure } = require('../setup-xml-structure');
4
- const { getPhpDockerSettingsConfig } = require('./php-docker-settings-config');
5
- const setupPHPDockerContainerSettingsConfig = require('./setup-php-docker-container-settings-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 { getPhpDockerSettingsConfig } = require('./php-docker-settings-config')
5
+ const setupPHPDockerContainerSettingsConfig = require('./setup-php-docker-container-settings-config')
6
6
 
7
7
  /**
8
- * @type {() => import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
8
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
9
9
  */
10
10
  const setupPhpDockerSettingsConfig = () => ({
11
11
  title: 'Set up PHP Docker Settings configuration',
12
12
  task: async (ctx, task) => {
13
- const phpDockerSettingsConfig = getPhpDockerSettingsConfig();
13
+ const phpDockerSettingsConfig = getPhpDockerSettingsConfig()
14
14
 
15
15
  if (await pathExists(phpDockerSettingsConfig.path)) {
16
- const phpDockerSettingsConfigContent = setupXMLStructure(await loadXmlFile(phpDockerSettingsConfig.path));
17
- const phpDockerSettingsConfigs = phpDockerSettingsConfigContent.project.component;
16
+ const phpDockerSettingsConfigContent = setupXMLStructure(
17
+ await loadXmlFile(phpDockerSettingsConfig.path)
18
+ )
19
+ const phpDockerSettingsConfigs =
20
+ phpDockerSettingsConfigContent.project.component
18
21
  const hasChanges = await Promise.all([
19
- setupPHPDockerContainerSettingsConfig(phpDockerSettingsConfigs, ctx)
20
- ]);
22
+ setupPHPDockerContainerSettingsConfig(
23
+ phpDockerSettingsConfigs,
24
+ ctx
25
+ )
26
+ ])
21
27
 
22
28
  if (hasChanges.includes(true)) {
23
- await buildXmlFile(phpDockerSettingsConfig.path, phpDockerSettingsConfigContent);
29
+ await buildXmlFile(
30
+ phpDockerSettingsConfig.path,
31
+ phpDockerSettingsConfigContent
32
+ )
24
33
  } else {
25
- task.skip();
34
+ task.skip()
26
35
  }
27
36
 
28
- return;
37
+ return
29
38
  }
30
39
 
31
- const phpDockerSettingsConfigContent = setupXMLStructure({});
32
- const phpDockerSettingsConfigs = phpDockerSettingsConfigContent.project.component;
40
+ const phpDockerSettingsConfigContent = setupXMLStructure({})
41
+ const phpDockerSettingsConfigs =
42
+ phpDockerSettingsConfigContent.project.component
33
43
 
34
44
  await Promise.all([
35
45
  setupPHPDockerContainerSettingsConfig(phpDockerSettingsConfigs, ctx)
36
- ]);
46
+ ])
37
47
 
38
- await buildXmlFile(phpDockerSettingsConfig.path, phpDockerSettingsConfigContent);
48
+ await buildXmlFile(
49
+ phpDockerSettingsConfig.path,
50
+ phpDockerSettingsConfigContent
51
+ )
39
52
  }
40
- });
53
+ })
41
54
 
42
- module.exports = setupPhpDockerSettingsConfig;
55
+ module.exports = setupPhpDockerSettingsConfig
@@ -1,9 +1,9 @@
1
- const path = require('path');
1
+ const path = require('path')
2
2
 
3
3
  const getPhpDockerSettingsConfig = () => ({
4
4
  path: path.join(process.cwd(), '.idea', 'php-docker-settings.xml')
5
- });
5
+ })
6
6
 
7
7
  module.exports = {
8
8
  getPhpDockerSettingsConfig
9
- };
9
+ }
@@ -1,17 +1,23 @@
1
- const { propertyKey } = require('../keys');
1
+ const { propertyKey } = require('../keys')
2
2
 
3
- const PHP_DOCKER_CONTAINER_SETTINGS_COMPONENT_NAME = 'PhpDockerContainerSettings';
3
+ const PHP_DOCKER_CONTAINER_SETTINGS_COMPONENT_NAME =
4
+ 'PhpDockerContainerSettings'
4
5
 
5
6
  /**
6
7
  * @param {Array} phpDockerSettingsConfigs
7
8
  * @param {import('../../../../../typings/context').ListrContext} ctx
8
9
  * @returns {Promise<Boolean>}
9
10
  */
10
- const setupPHPDockerContainerSettingsConfig = async (phpDockerSettingsConfigs, ctx) => {
11
- let hasChanges = false;
11
+ const setupPHPDockerContainerSettingsConfig = async (
12
+ phpDockerSettingsConfigs,
13
+ ctx
14
+ ) => {
15
+ let hasChanges = false
12
16
  const phpDockerContainerSettingsComponent = phpDockerSettingsConfigs.find(
13
- (phpDockerSettingsConfig) => phpDockerSettingsConfig[propertyKey('name')] === PHP_DOCKER_CONTAINER_SETTINGS_COMPONENT_NAME
14
- );
17
+ (phpDockerSettingsConfig) =>
18
+ phpDockerSettingsConfig[propertyKey('name')] ===
19
+ PHP_DOCKER_CONTAINER_SETTINGS_COMPONENT_NAME
20
+ )
15
21
 
16
22
  const defaultList = {
17
23
  map: {
@@ -34,12 +40,17 @@ const setupPHPDockerContainerSettingsConfig = async (phpDockerSettingsConfigs, c
34
40
  DockerVolumeBindingImpl: {
35
41
  option: [
36
42
  {
37
- [propertyKey('name')]: 'containerPath',
38
- [propertyKey('value')]: ctx.config.baseConfig.containerMagentoDir
43
+ [propertyKey('name')]:
44
+ 'containerPath',
45
+ [propertyKey('value')]:
46
+ ctx.config.baseConfig
47
+ .containerMagentoDir
39
48
  },
40
49
  {
41
- [propertyKey('name')]: 'hostPath',
42
- [propertyKey('value')]: '$PROJECT_DIR$'
50
+ [propertyKey('name')]:
51
+ 'hostPath',
52
+ [propertyKey('value')]:
53
+ '$PROJECT_DIR$'
43
54
  }
44
55
  ]
45
56
  }
@@ -50,17 +61,17 @@ const setupPHPDockerContainerSettingsConfig = async (phpDockerSettingsConfigs, c
50
61
  }
51
62
  }
52
63
  }
53
- };
64
+ }
54
65
 
55
66
  if (!phpDockerContainerSettingsComponent) {
56
- hasChanges = true;
67
+ hasChanges = true
57
68
  phpDockerSettingsConfigs.push({
58
69
  [propertyKey('name')]: PHP_DOCKER_CONTAINER_SETTINGS_COMPONENT_NAME,
59
70
  list: defaultList
60
- });
71
+ })
61
72
  }
62
73
 
63
- return hasChanges;
64
- };
74
+ return hasChanges
75
+ }
65
76
 
66
- module.exports = setupPHPDockerContainerSettingsConfig;
77
+ module.exports = setupPHPDockerContainerSettingsConfig
@@ -1,4 +1,4 @@
1
- const { propertyKey } = require('./keys');
1
+ const { propertyKey } = require('./keys')
2
2
 
3
3
  const xmlConfiguration = () => ({
4
4
  '?xml': {
@@ -9,34 +9,35 @@ const xmlConfiguration = () => ({
9
9
  [propertyKey('version')]: '4',
10
10
  component: []
11
11
  }
12
- });
12
+ })
13
13
 
14
14
  const setupXMLStructure = (data) => {
15
15
  if (!data) {
16
- data = xmlConfiguration();
16
+ data = xmlConfiguration()
17
17
  }
18
18
 
19
19
  if (data['?xml'] === undefined) {
20
- data['?xml'] = xmlConfiguration()['?xml'];
20
+ data['?xml'] = xmlConfiguration()['?xml']
21
21
  }
22
22
 
23
23
  if (data.project === undefined) {
24
- data.project = xmlConfiguration().project;
24
+ data.project = xmlConfiguration().project
25
25
  }
26
26
 
27
27
  if (data.project.component === undefined) {
28
- data.project.component = [];
28
+ data.project.component = []
29
29
  }
30
30
 
31
- if (!Array.isArray(data.project.component) && Boolean(data.project.component)) {
32
- data.project.component = [
33
- data.project.component
34
- ];
31
+ if (
32
+ !Array.isArray(data.project.component) &&
33
+ Boolean(data.project.component)
34
+ ) {
35
+ data.project.component = [data.project.component]
35
36
  }
36
37
 
37
- return data;
38
- };
38
+ return data
39
+ }
39
40
 
40
41
  module.exports = {
41
42
  setupXMLStructure
42
- };
43
+ }
@@ -1,61 +1,81 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const { loadXmlFile, buildXmlFile } = require('../../../config/xml-parser');
4
- const pathExists = require('../../../util/path-exists');
5
- const { valueKey, nameKey } = require('./keys');
6
- const { setupXMLStructure } = require('./setup-xml-structure');
1
+ const path = require('path')
2
+ const fs = require('fs')
3
+ const { loadXmlFile, buildXmlFile } = require('../../../config/xml-parser')
4
+ const pathExists = require('../../../util/path-exists')
5
+ const { valueKey, nameKey } = require('./keys')
6
+ const { setupXMLStructure } = require('./setup-xml-structure')
7
7
 
8
- const STYLELINT_CONFIGURATION_COMPONENT_NAME = 'StylelintConfiguration';
8
+ const STYLELINT_CONFIGURATION_COMPONENT_NAME = 'StylelintConfiguration'
9
9
 
10
- const pathToStylelintConfig = path.join(process.cwd(), '.idea', 'stylesheetLinters', 'stylelint.xml');
11
- const pathToStylelintConfigDir = path.parse(pathToStylelintConfig).dir;
10
+ const pathToStylelintConfig = path.join(
11
+ process.cwd(),
12
+ '.idea',
13
+ 'stylesheetLinters',
14
+ 'stylelint.xml'
15
+ )
16
+ const pathToStylelintConfigDir = path.parse(pathToStylelintConfig).dir
12
17
 
13
- const DEFAULT_STYLE_PATTERN = '{**/*,*}.{css,scss}';
18
+ const DEFAULT_STYLE_PATTERN = '{**/*,*}.{css,scss}'
14
19
 
15
20
  const defaultESLintComponentConfiguration = {
16
21
  [nameKey]: STYLELINT_CONFIGURATION_COMPONENT_NAME,
17
22
  'file-patterns': {
18
23
  [valueKey]: DEFAULT_STYLE_PATTERN
19
24
  }
20
- };
25
+ }
21
26
 
22
27
  /**
23
- * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
28
+ * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
24
29
  */
25
30
  const setupStylelintConfig = () => ({
26
31
  title: 'Set up Stylelint configuration',
27
32
  task: async (ctx, task) => {
28
33
  if (await pathExists(pathToStylelintConfig)) {
29
- let hasChanges = false;
30
- const styleLintConfigurationData = setupXMLStructure(await loadXmlFile(pathToStylelintConfig));
34
+ let hasChanges = false
35
+ const styleLintConfigurationData = setupXMLStructure(
36
+ await loadXmlFile(pathToStylelintConfig)
37
+ )
31
38
 
32
- if (styleLintConfigurationData.project.component && !Array.isArray(styleLintConfigurationData.project.component)) {
33
- hasChanges = true;
34
- styleLintConfigurationData.project.component = [styleLintConfigurationData.project.component];
39
+ if (
40
+ styleLintConfigurationData.project.component &&
41
+ !Array.isArray(styleLintConfigurationData.project.component)
42
+ ) {
43
+ hasChanges = true
44
+ styleLintConfigurationData.project.component = [
45
+ styleLintConfigurationData.project.component
46
+ ]
35
47
  }
36
48
 
37
- const styleLintConfigurationComponent = styleLintConfigurationData.project.component.find(
38
- (component) => component[nameKey] === STYLELINT_CONFIGURATION_COMPONENT_NAME
39
- );
49
+ const styleLintConfigurationComponent =
50
+ styleLintConfigurationData.project.component.find(
51
+ (component) =>
52
+ component[nameKey] ===
53
+ STYLELINT_CONFIGURATION_COMPONENT_NAME
54
+ )
40
55
 
41
56
  if (!styleLintConfigurationComponent) {
42
- hasChanges = true;
43
- styleLintConfigurationData.project.component.push(defaultESLintComponentConfiguration);
57
+ hasChanges = true
58
+ styleLintConfigurationData.project.component.push(
59
+ defaultESLintComponentConfiguration
60
+ )
44
61
  }
45
62
 
46
63
  if (hasChanges) {
47
- await buildXmlFile(pathToStylelintConfig, styleLintConfigurationData);
64
+ await buildXmlFile(
65
+ pathToStylelintConfig,
66
+ styleLintConfigurationData
67
+ )
48
68
  } else {
49
- task.skip();
69
+ task.skip()
50
70
  }
51
71
 
52
- return;
72
+ return
53
73
  }
54
74
 
55
- if (!await pathExists(pathToStylelintConfigDir)) {
75
+ if (!(await pathExists(pathToStylelintConfigDir))) {
56
76
  await fs.promises.mkdir(pathToStylelintConfigDir, {
57
77
  recursive: true
58
- });
78
+ })
59
79
  }
60
80
 
61
81
  const styleLintConfigurationData = {
@@ -65,14 +85,12 @@ const setupStylelintConfig = () => ({
65
85
  },
66
86
  project: {
67
87
  '@_version': '4',
68
- component: [
69
- defaultESLintComponentConfiguration
70
- ]
88
+ component: [defaultESLintComponentConfiguration]
71
89
  }
72
- };
90
+ }
73
91
 
74
- await buildXmlFile(pathToStylelintConfig, styleLintConfigurationData);
92
+ await buildXmlFile(pathToStylelintConfig, styleLintConfigurationData)
75
93
  }
76
- });
94
+ })
77
95
 
78
- module.exports = setupStylelintConfig;
96
+ module.exports = setupStylelintConfig