@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.
- package/.eslintrc +6 -1
- package/exec.js +75 -39
- package/index.js +87 -46
- package/lib/commands/cleanup.js +18 -21
- package/lib/commands/cli.js +138 -73
- package/lib/commands/execute.js +5 -5
- package/lib/commands/import-db.js +21 -24
- package/lib/commands/link.js +17 -20
- package/lib/commands/logs.js +91 -91
- package/lib/commands/start.js +229 -191
- package/lib/commands/status.js +64 -50
- package/lib/commands/stop.js +14 -11
- package/lib/config/check-configuration-file.js +33 -28
- package/lib/config/cma-config.js +4 -4
- package/lib/config/config.js +40 -18
- package/lib/config/dependencies-for-platforms.js +33 -3
- package/lib/config/docker.js +259 -157
- package/lib/config/get-magento-version-config.js +45 -38
- package/lib/config/get-port-config.js +30 -44
- package/lib/config/get-project-configuration.js +8 -8
- package/lib/config/index.js +51 -42
- package/lib/config/magento/required-php-extensions/index.js +33 -19
- package/lib/config/magento/required-php-extensions/magento-2.3.js +2 -2
- package/lib/config/magento/required-php-extensions/magento-2.4.js +2 -2
- package/lib/config/magento-config.js +4 -4
- package/lib/config/php-config.js +8 -6
- package/lib/config/port-config.js +62 -43
- package/lib/config/save-config.js +6 -6
- package/lib/config/scandipwa-versions.js +2 -2
- package/lib/config/services/composer/versions/composer-1.js +2 -2
- package/lib/config/services/composer/versions/composer-2.js +2 -2
- package/lib/config/services/composer/versions/index.js +1 -1
- package/lib/config/services/elasticsearch/base-repo.js +1 -1
- package/lib/config/services/elasticsearch/default-es-env.js +4 -1
- package/lib/config/services/elasticsearch/versions/elasticsearch-6.8.js +17 -14
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +4 -4
- package/lib/config/services/elasticsearch/versions/index.js +9 -9
- package/lib/config/services/maildev/index.js +5 -2
- package/lib/config/services/mariadb/versions/index.js +1 -1
- package/lib/config/services/mariadb/versions/mariadb-10.2.js +3 -3
- package/lib/config/services/mariadb/versions/mariadb-10.3.js +3 -3
- package/lib/config/services/mariadb/versions/mariadb-10.4.js +3 -3
- package/lib/config/services/nginx/versions/index.js +1 -1
- package/lib/config/services/nginx/versions/nginx-1.18.js +5 -4
- package/lib/config/services/php/base-repo.js +1 -1
- package/lib/config/services/php/extensions/apcu.js +3 -3
- package/lib/config/services/php/extensions/bcmath.js +2 -2
- package/lib/config/services/php/extensions/curl.js +3 -6
- package/lib/config/services/php/extensions/gd.js +4 -3
- package/lib/config/services/php/extensions/index.js +9 -8
- package/lib/config/services/php/extensions/intl.js +3 -5
- package/lib/config/services/php/extensions/opcache.js +3 -5
- package/lib/config/services/php/extensions/pdo_mysql.js +2 -2
- package/lib/config/services/php/extensions/soap.js +3 -5
- package/lib/config/services/php/extensions/sodium.js +3 -5
- package/lib/config/services/php/extensions/xdebug.js +5 -3
- package/lib/config/services/php/extensions/xsl.js +3 -5
- package/lib/config/services/php/extensions/zip.js +3 -5
- package/lib/config/services/php/versions/index.js +1 -1
- package/lib/config/services/php/versions/php-7.2.js +13 -9
- package/lib/config/services/php/versions/php-7.3.js +13 -9
- package/lib/config/services/php/versions/php-7.4.js +13 -9
- package/lib/config/services/php/versions/php-8.1.js +13 -9
- package/lib/config/services/redis/index.js +1 -1
- package/lib/config/services/redis/redis-5.0.js +2 -2
- package/lib/config/services/redis/redis-6.0.js +2 -2
- package/lib/config/services/redis/redis-6.2.js +2 -2
- package/lib/config/services/ssl-terminator/index.js +6 -5
- package/lib/config/services/varnish/index.js +1 -1
- package/lib/config/services/varnish/varnish-6-0.js +7 -5
- package/lib/config/services/varnish/varnish-6-6.js +7 -5
- package/lib/config/services/varnish/varnish-7-0.js +7 -5
- package/lib/config/system-config.js +55 -32
- package/lib/config/templates/mariadb.template.cnf +2 -0
- package/lib/config/versions/index.js +48 -27
- package/lib/config/versions/magento-2.2.10.js +22 -15
- package/lib/config/versions/magento-2.3.0.js +22 -15
- package/lib/config/versions/magento-2.3.1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p2.js +22 -15
- package/lib/config/versions/magento-2.3.2.js +22 -15
- package/lib/config/versions/magento-2.3.3-p1.js +22 -15
- package/lib/config/versions/magento-2.3.3.js +22 -15
- package/lib/config/versions/magento-2.3.4-p1.js +22 -15
- package/lib/config/versions/magento-2.3.4-p2.js +22 -15
- package/lib/config/versions/magento-2.3.4.js +22 -15
- package/lib/config/versions/magento-2.3.5-p1.js +22 -15
- package/lib/config/versions/magento-2.3.5-p2.js +22 -15
- package/lib/config/versions/magento-2.3.5.js +27 -15
- package/lib/config/versions/magento-2.3.6-p1.js +22 -15
- package/lib/config/versions/magento-2.3.6.js +22 -15
- package/lib/config/versions/magento-2.3.7-p1.js +22 -15
- package/lib/config/versions/magento-2.3.7-p2.js +22 -15
- package/lib/config/versions/magento-2.3.7-p3.js +22 -15
- package/lib/config/versions/magento-2.3.7-p4.js +22 -15
- package/lib/config/versions/magento-2.3.7.js +22 -15
- package/lib/config/versions/magento-2.4.0-p1.js +22 -15
- package/lib/config/versions/magento-2.4.0.js +22 -15
- package/lib/config/versions/magento-2.4.1-p1.js +23 -16
- package/lib/config/versions/magento-2.4.1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p2.js +23 -16
- package/lib/config/versions/magento-2.4.2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p1.js +23 -16
- package/lib/config/versions/magento-2.4.3-p2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p3.js +23 -16
- package/lib/config/versions/magento-2.4.3.js +23 -16
- package/lib/config/versions/magento-2.4.4-p1.js +23 -16
- package/lib/config/versions/magento-2.4.4-p2.js +23 -16
- package/lib/config/versions/magento-2.4.4.js +23 -16
- package/lib/config/versions/magento-2.4.5-p1.js +23 -16
- package/lib/config/versions/magento-2.4.5.js +23 -17
- package/lib/config/xml-parser.js +21 -20
- package/lib/errors/known-error.js +8 -6
- package/lib/errors/unknown-error.js +8 -6
- package/lib/tasks/cache/create-cache-folder.js +10 -10
- package/lib/tasks/cache/index.js +1 -1
- package/lib/tasks/cache/remove-cache-folder.js +9 -9
- package/lib/tasks/cleanup.js +22 -24
- package/lib/tasks/cli/create-bashrc-config.js +19 -11
- package/lib/tasks/cli/index.js +10 -13
- package/lib/tasks/composer/index.js +20 -15
- package/lib/tasks/composer/local-auth-json.js +32 -18
- package/lib/tasks/database/connect-to-database.js +71 -51
- package/lib/tasks/database/create-magento-database.js +7 -7
- package/lib/tasks/database/create-magento-user.js +33 -20
- package/lib/tasks/database/default-magento-database.js +1 -1
- package/lib/tasks/database/default-magento-user.js +2 -2
- package/lib/tasks/database/dump-theme-config.js +16 -12
- package/lib/tasks/database/fix-db.js +62 -52
- package/lib/tasks/database/import-dump-to-database.js +122 -85
- package/lib/tasks/database/import-remote-db/index.js +16 -18
- package/lib/tasks/database/import-remote-db/ssh/database-dump-command.js +2 -2
- package/lib/tasks/database/import-remote-db/ssh/index.js +34 -35
- package/lib/tasks/database/import-remote-db/ssh/readymage.js +41 -38
- package/lib/tasks/database/import-remote-db/ssh/regular-server.js +44 -46
- package/lib/tasks/database/index.js +1 -1
- package/lib/tasks/database/magento-tables.js +3 -3
- package/lib/tasks/database/restore-theme-config.js +26 -19
- package/lib/tasks/docker/api.d.ts +1 -1
- package/lib/tasks/docker/api.js +31 -33
- package/lib/tasks/docker/containers/container-api.d.ts +49 -14
- package/lib/tasks/docker/containers/container-api.js +112 -83
- package/lib/tasks/docker/containers/index.js +3 -3
- package/lib/tasks/docker/containers/tasks.js +171 -99
- package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +34 -25
- package/lib/tasks/docker/convert-legacy-volumes.js +91 -55
- package/lib/tasks/docker/convert-mysql-to-mariadb.js +178 -147
- package/lib/tasks/docker/image/image-api.d.ts +2 -3
- package/lib/tasks/docker/image/image-api.js +41 -34
- package/lib/tasks/docker/image/index.js +2 -2
- package/lib/tasks/docker/index.js +26 -21
- package/lib/tasks/docker/network/index.js +3 -3
- package/lib/tasks/docker/network/network-api.d.ts +11 -8
- package/lib/tasks/docker/network/network-api.js +53 -61
- package/lib/tasks/docker/network/tasks.js +41 -31
- package/lib/tasks/docker/project-image-builder.js +175 -92
- package/lib/tasks/docker/system/index.js +2 -2
- package/lib/tasks/docker/system/system-api.d.ts +2 -2
- package/lib/tasks/docker/system/system-api.js +16 -19
- package/lib/tasks/docker/volume/index.js +3 -3
- package/lib/tasks/docker/volume/tasks.js +63 -46
- package/lib/tasks/docker/volume/volume-api.d.ts +8 -5
- package/lib/tasks/docker/volume/volume-api.js +59 -76
- package/lib/tasks/execute.js +91 -55
- package/lib/tasks/file-system/create-mariadb-config.js +18 -10
- package/lib/tasks/file-system/create-nginx-config.js +18 -19
- package/lib/tasks/file-system/create-php-config.js +12 -8
- package/lib/tasks/file-system/create-php-debug-config.js +23 -18
- package/lib/tasks/file-system/create-php-fpm-config.js +14 -9
- package/lib/tasks/file-system/create-phpstorm-config/database-config.js +144 -112
- package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +69 -45
- package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +69 -70
- package/lib/tasks/file-system/create-phpstorm-config/index.js +28 -24
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +23 -23
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +26 -16
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +43 -34
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/inspection-tools-config.js +14 -6
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +53 -47
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +41 -12
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +33 -30
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +35 -38
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/keys.js +10 -10
- package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +33 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +28 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +53 -32
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-config.js +7 -7
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +37 -27
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +53 -31
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +42 -30
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/index.js +33 -20
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/php-docker-settings-config.js +3 -3
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/setup-php-docker-container-settings-config.js +27 -16
- package/lib/tasks/file-system/create-phpstorm-config/setup-xml-structure.js +14 -13
- package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +52 -34
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +41 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +39 -27
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +34 -30
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/mess-detector-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-code-sniffer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-cs-fixer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +42 -31
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +45 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-stan-project-configuration-config.js.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +35 -21
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/psalm-project-configuration-config.js.js +31 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +38 -28
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/workspace-config.js +5 -5
- package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +3 -2
- package/lib/tasks/file-system/create-ssl-terminator-config.js +46 -34
- package/lib/tasks/file-system/create-varnish-config.js +20 -23
- package/lib/tasks/file-system/create-vscode-config.js +66 -49
- package/lib/tasks/file-system/index.js +29 -25
- package/lib/tasks/import-dump.js +54 -45
- package/lib/tasks/link.js +24 -23
- package/lib/tasks/magento/enable-magento-composer-plugins.js +213 -149
- package/lib/tasks/magento/index.js +1 -1
- package/lib/tasks/magento/install-magento-project.js +158 -97
- package/lib/tasks/magento/remove-magento.js +30 -24
- package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +27 -15
- package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +23 -10
- package/lib/tasks/magento/setup-magento/create-admin.js +21 -13
- package/lib/tasks/magento/setup-magento/delete-admin-users.js +5 -5
- package/lib/tasks/magento/setup-magento/delete-customers.js +16 -10
- package/lib/tasks/magento/setup-magento/delete-orders.js +16 -10
- package/lib/tasks/magento/setup-magento/disable-2fa.js +11 -8
- package/lib/tasks/magento/setup-magento/disable-maintenance-mode.js +7 -7
- package/lib/tasks/magento/setup-magento/disable-page-builder.js +5 -4
- package/lib/tasks/magento/setup-magento/flush-redis-config.js +14 -8
- package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +21 -17
- package/lib/tasks/magento/setup-magento/index-products.js +4 -6
- package/lib/tasks/magento/setup-magento/index.js +54 -47
- package/lib/tasks/magento/setup-magento/install-magento.js +112 -79
- package/lib/tasks/magento/setup-magento/migrate-database.js +115 -96
- package/lib/tasks/magento/setup-magento/set-base-url.js +35 -21
- package/lib/tasks/magento/setup-magento/set-deployment-mode.js +15 -13
- package/lib/tasks/magento/setup-magento/set-mail-config.js +20 -14
- package/lib/tasks/magento/setup-magento/set-url-rewrite.js +13 -9
- package/lib/tasks/magento/setup-magento/upgrade-magento.js +30 -22
- package/lib/tasks/magento/setup-magento/urn-highlighter.js +11 -11
- package/lib/tasks/magento/setup-magento/varnish-config.js +42 -32
- package/lib/tasks/magento/setup-magento/waiting-for-redis.js +6 -8
- package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +108 -65
- package/lib/tasks/magento/uninstall-magento.js +19 -16
- package/lib/tasks/php/php-container.d.ts +19 -0
- package/lib/tasks/php/php-container.js +50 -46
- package/lib/tasks/php/update-env-php.js +50 -30
- package/lib/tasks/project-config/index.js +12 -8
- package/lib/tasks/requirements/composer-credentials.js +215 -112
- package/lib/tasks/requirements/docker/context.js +49 -37
- package/lib/tasks/requirements/docker/index.js +123 -89
- package/lib/tasks/requirements/docker/install-on-mac.js +21 -14
- package/lib/tasks/requirements/docker/install.js +63 -52
- package/lib/tasks/requirements/docker/performance.js +40 -24
- package/lib/tasks/requirements/docker/permissions.js +27 -17
- package/lib/tasks/requirements/docker/running-status.js +79 -66
- package/lib/tasks/requirements/docker/version.js +14 -11
- package/lib/tasks/requirements/index.js +33 -29
- package/lib/tasks/requirements/node-version.js +8 -8
- package/lib/tasks/requirements/php-version.js +14 -11
- package/lib/tasks/requirements/platform.js +42 -26
- package/lib/tasks/requirements/rosetta.js +15 -12
- package/lib/tasks/start.js +172 -148
- package/lib/tasks/status/index.js +155 -88
- package/lib/tasks/stop.js +22 -18
- package/lib/tasks/theme/build-theme.js +50 -33
- package/lib/tasks/theme/install-theme.js +31 -18
- package/lib/tasks/theme/link-theme.js +27 -21
- package/lib/tasks/theme/retrieve-theme-data.js +24 -18
- package/lib/tasks/theme/setup-themes.js +87 -59
- package/lib/tasks/theme/symlink-theme.js +44 -22
- package/lib/util/CSA-theme.js +23 -21
- package/lib/util/analytics.js +130 -75
- package/lib/util/arch.js +22 -18
- package/lib/util/clean-object.js +15 -10
- package/lib/util/config-file-validator.js +63 -54
- package/lib/util/config-php-json.js +34 -16
- package/lib/util/connection-string.js +41 -27
- package/lib/util/console-block.js +112 -65
- package/lib/util/database.js +56 -33
- package/lib/util/deepmerge.d.ts +1 -1
- package/lib/util/deepmerge.js +19 -28
- package/lib/util/dockerfile-builder/build-instructions.js +159 -143
- package/lib/util/dockerfile-builder/index.js +47 -73
- package/lib/util/dockerfile-builder/types.d.ts +2 -1
- package/lib/util/download-file.js +28 -16
- package/lib/util/env-php-json.js +42 -16
- package/lib/util/exec-async-command.d.ts +9 -9
- package/lib/util/exec-async-command.js +82 -59
- package/lib/util/exec-async.d.ts +2 -0
- package/lib/util/exec-async.js +12 -5
- package/lib/util/execute-in-container.js +22 -27
- package/lib/util/execute-sudo-command.js +11 -15
- package/lib/util/get-brew-bin-path.js +27 -23
- package/lib/util/get-installed-magento-version.js +22 -16
- package/lib/util/get-jsonfile-data.js +14 -9
- package/lib/util/install-dependencies-task.js +53 -41
- package/lib/util/instance-metadata.js +44 -29
- package/lib/util/ip.js +16 -12
- package/lib/util/is-running-root.js +6 -3
- package/lib/util/is-wsl.js +10 -10
- package/lib/util/macos-version.js +12 -11
- package/lib/util/magento-task.js +14 -9
- package/lib/util/match-filesystem.js +22 -16
- package/lib/util/move-file.js +40 -25
- package/lib/util/nginx-logs-parser.js +50 -39
- package/lib/util/open-browser.js +8 -5
- package/lib/util/os-platform.js +40 -32
- package/lib/util/path-exists-sync.js +10 -6
- package/lib/util/path-exists.js +6 -6
- package/lib/util/php-task.js +11 -10
- package/lib/util/portscanner.js +97 -85
- package/lib/util/prefix.js +31 -22
- package/lib/util/resolve-configuration-with-overrides.js +30 -15
- package/lib/util/rmdir-safe.js +15 -11
- package/lib/util/run-composer.js +16 -16
- package/lib/util/run-container-image.js +9 -4
- package/lib/util/run-magento.js +16 -17
- package/lib/util/run-php.js +16 -21
- package/lib/util/safe-regex-extract.js +8 -12
- package/lib/util/set-config.js +24 -15
- package/lib/util/sleep.js +7 -2
- package/lib/util/systemctl.js +62 -44
- package/lib/util/wait-for-it.js +42 -33
- package/lib/util/wait-for-logs.js +42 -35
- package/lib/util/xdg-open-exists.js +19 -19
- package/package.json +7 -3
- package/tsconfig.json +24 -0
- package/typings/context.d.ts +76 -34
- package/typings/index.d.ts +44 -19
- package/typings/override.d.ts +14 -0
- package/typings/phpstorm.d.ts +19 -19
- package/.prettierrc +0 -3
- package/lib/util/get-php-for-phpbrew.js +0 -30
- package/lib/util/request.js +0 -0
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
const { setProjectConfig } = require('../../config/config')
|
|
2
|
-
const { setPrefix: setPrefixUtil } = require('../../util/prefix')
|
|
1
|
+
const { setProjectConfig } = require('../../config/config')
|
|
2
|
+
const { setPrefix: setPrefixUtil } = require('../../util/prefix')
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
5
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
6
6
|
*/
|
|
7
7
|
const setProjectConfigTask = () => ({
|
|
8
8
|
title: 'Settings project config',
|
|
9
9
|
task: (ctx) => {
|
|
10
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
config: {
|
|
12
|
+
overridenConfiguration: { prefix }
|
|
13
|
+
}
|
|
14
|
+
} = ctx
|
|
11
15
|
|
|
12
|
-
setPrefixUtil(prefix)
|
|
16
|
+
setPrefixUtil(prefix)
|
|
13
17
|
|
|
14
|
-
setProjectConfig('debug', ctx.debug)
|
|
18
|
+
setProjectConfig('debug', ctx.debug)
|
|
15
19
|
},
|
|
16
20
|
options: {
|
|
17
21
|
showTimer: false
|
|
18
22
|
}
|
|
19
|
-
})
|
|
23
|
+
})
|
|
20
24
|
|
|
21
|
-
module.exports = { setProjectConfigTask }
|
|
25
|
+
module.exports = { setProjectConfigTask }
|
|
@@ -1,46 +1,58 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
1
2
|
/* eslint-disable no-nested-ternary */
|
|
2
|
-
const path = require('path')
|
|
3
|
-
const fs = require('fs')
|
|
4
|
-
const os = require('os')
|
|
5
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
6
|
-
const pathExists = require('../../util/path-exists')
|
|
7
|
-
const KnownError = require('../../errors/known-error')
|
|
8
|
-
const UnknownError = require('../../errors/unknown-error')
|
|
3
|
+
const path = require('path')
|
|
4
|
+
const fs = require('fs')
|
|
5
|
+
const os = require('os')
|
|
6
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
7
|
+
const pathExists = require('../../util/path-exists')
|
|
8
|
+
const KnownError = require('../../errors/known-error')
|
|
9
|
+
const UnknownError = require('../../errors/unknown-error')
|
|
9
10
|
|
|
10
|
-
const authJsonPath = path.join(process.cwd(), 'auth.json')
|
|
11
|
-
const shellName = process.env.SHELL.split('/').pop()
|
|
12
|
-
const shellConfigFileName = `.${shellName}rc
|
|
13
|
-
const shellConfigFilePath = path.join(os.homedir(), shellConfigFileName)
|
|
11
|
+
const authJsonPath = path.join(process.cwd(), 'auth.json')
|
|
12
|
+
const shellName = process.env.SHELL.split('/').pop()
|
|
13
|
+
const shellConfigFileName = `.${shellName}rc`
|
|
14
|
+
const shellConfigFilePath = path.join(os.homedir(), shellConfigFileName)
|
|
14
15
|
|
|
15
|
-
const pasteKeybinding =
|
|
16
|
+
const pasteKeybinding =
|
|
17
|
+
process.platform === 'darwin' ? 'CMD + V' : 'CTRL + SHIFT + V'
|
|
16
18
|
|
|
17
|
-
const MISSING_COMPOSER_AUTH_ENV = 'missing composer auth environment variable'
|
|
18
|
-
const MISSING_AUTH_JSON = 'missing auth.json file'
|
|
19
|
+
const MISSING_COMPOSER_AUTH_ENV = 'missing composer auth environment variable'
|
|
20
|
+
const MISSING_AUTH_JSON = 'missing auth.json file'
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
|
-
* @
|
|
23
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
22
24
|
*/
|
|
23
25
|
const configureComposerCredentials = () => ({
|
|
24
26
|
title: 'Configuring Composer Credentials',
|
|
25
27
|
task: async (ctx, task) => {
|
|
26
28
|
const configureLocation = await task.prompt({
|
|
27
29
|
type: 'Select',
|
|
28
|
-
message: `We didn't find Composer credentials in your ${
|
|
30
|
+
message: `We didn't find Composer credentials in your ${logger.style.misc(
|
|
31
|
+
'$COMPOSER_AUTH'
|
|
32
|
+
)} environment variable or in your ${logger.style.file(
|
|
33
|
+
'./auth.json'
|
|
34
|
+
)} file.
|
|
29
35
|
|
|
30
36
|
Those credentials are required to install Magento.
|
|
31
37
|
|
|
32
38
|
Where do you want to store them?`,
|
|
33
39
|
choices: [
|
|
34
40
|
{
|
|
35
|
-
message: `Inside my projects directory in ${
|
|
41
|
+
message: `Inside my projects directory in ${logger.style.file(
|
|
42
|
+
'auth.json'
|
|
43
|
+
)} file [${logger.style.misc('Recommended')}]`,
|
|
36
44
|
name: 'auth.json'
|
|
37
45
|
},
|
|
38
46
|
{
|
|
39
|
-
message: `Inside my shells configuration file located in users home directory ${
|
|
47
|
+
message: `Inside my shells configuration file located in users home directory ${logger.style.file(
|
|
48
|
+
shellConfigFileName
|
|
49
|
+
)} [${logger.style.misc(
|
|
50
|
+
'Shared credentials, not recommended'
|
|
51
|
+
)}] `,
|
|
40
52
|
name: 'shell'
|
|
41
53
|
}
|
|
42
54
|
]
|
|
43
|
-
})
|
|
55
|
+
})
|
|
44
56
|
|
|
45
57
|
const usernameCredentials = await task.prompt({
|
|
46
58
|
type: 'Input',
|
|
@@ -48,20 +60,26 @@ Where do you want to store them?`,
|
|
|
48
60
|
|
|
49
61
|
You can obtain this key from Magento Marketplace
|
|
50
62
|
|
|
51
|
-
1. Go to ${
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
1. Go to ${logger.style.link(
|
|
64
|
+
'https://marketplace.magento.com/customer/accessKeys/'
|
|
65
|
+
)}
|
|
66
|
+
2. Use created Access Keypair or click ${logger.style.misc(
|
|
67
|
+
'Generate Access Keypair'
|
|
68
|
+
)} to generate new Access Keypair
|
|
69
|
+
3. Click ${logger.style.misc('Copy')} on ${logger.style.misc(
|
|
70
|
+
'Public key'
|
|
71
|
+
)} and paste it here (${logger.style.misc(pasteKeybinding)})
|
|
72
|
+
|
|
73
|
+
${logger.style.misc('Username')} (${logger.style.misc('Public key')}):`,
|
|
56
74
|
required: true,
|
|
57
75
|
validate: (value) => {
|
|
58
76
|
if (value.trim() === '') {
|
|
59
|
-
return 'Username must not be empty'
|
|
77
|
+
return 'Username must not be empty'
|
|
60
78
|
}
|
|
61
79
|
|
|
62
|
-
return true
|
|
80
|
+
return true
|
|
63
81
|
}
|
|
64
|
-
})
|
|
82
|
+
})
|
|
65
83
|
|
|
66
84
|
const passwordCredentials = await task.prompt({
|
|
67
85
|
type: 'Input',
|
|
@@ -69,22 +87,30 @@ ${ logger.style.misc('Username') } (${ logger.style.misc('Public key') }):`,
|
|
|
69
87
|
|
|
70
88
|
You can obtain this key from Magento Marketplace
|
|
71
89
|
|
|
72
|
-
1. Go to ${
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
${
|
|
90
|
+
1. Go to ${logger.style.link(
|
|
91
|
+
'https://marketplace.magento.com/customer/accessKeys/'
|
|
92
|
+
)}
|
|
93
|
+
2. Use created Access Keypair or click ${logger.style.misc(
|
|
94
|
+
'Generate Access Keypair'
|
|
95
|
+
)} to generate new Access Keypair
|
|
96
|
+
3. Click ${logger.style.misc('Copy')} on ${logger.style.misc(
|
|
97
|
+
'Private key'
|
|
98
|
+
)} and paste it here (${logger.style.misc(pasteKeybinding)})
|
|
99
|
+
|
|
100
|
+
${logger.style.comment(
|
|
101
|
+
'Make sure to use Private key from the same Keypair as your Public key!'
|
|
102
|
+
)}
|
|
103
|
+
|
|
104
|
+
${logger.style.misc('Password')} (${logger.style.misc('Private key')}):`,
|
|
79
105
|
required: true,
|
|
80
106
|
validate: (value) => {
|
|
81
107
|
if (value.trim() === '') {
|
|
82
|
-
return 'Password must not be empty'
|
|
108
|
+
return 'Password must not be empty'
|
|
83
109
|
}
|
|
84
110
|
|
|
85
|
-
return true
|
|
111
|
+
return true
|
|
86
112
|
}
|
|
87
|
-
})
|
|
113
|
+
})
|
|
88
114
|
|
|
89
115
|
const authContent = {
|
|
90
116
|
'http-basic': {
|
|
@@ -93,36 +119,46 @@ ${ logger.style.misc('Password') } (${ logger.style.misc('Private key') }):`,
|
|
|
93
119
|
password: passwordCredentials.trim()
|
|
94
120
|
}
|
|
95
121
|
}
|
|
96
|
-
}
|
|
122
|
+
}
|
|
97
123
|
|
|
98
|
-
const authJsonContent = JSON.stringify(authContent, null, 4)
|
|
99
|
-
const authEnvContent = `export COMPOSER_AUTH='${JSON.stringify(
|
|
124
|
+
const authJsonContent = JSON.stringify(authContent, null, 4)
|
|
125
|
+
const authEnvContent = `export COMPOSER_AUTH='${JSON.stringify(
|
|
126
|
+
authContent,
|
|
127
|
+
null,
|
|
128
|
+
0
|
|
129
|
+
)}'`
|
|
100
130
|
|
|
101
|
-
process.env.COMPOSER_AUTH = JSON.stringify(
|
|
131
|
+
process.env.COMPOSER_AUTH = JSON.stringify(
|
|
132
|
+
JSON.parse(authJsonContent),
|
|
133
|
+
null,
|
|
134
|
+
0
|
|
135
|
+
)
|
|
102
136
|
|
|
103
137
|
if (configureLocation === 'auth.json') {
|
|
104
|
-
await fs.promises.writeFile(authJsonPath, authJsonContent, 'utf-8')
|
|
105
|
-
return
|
|
138
|
+
await fs.promises.writeFile(authJsonPath, authJsonContent, 'utf-8')
|
|
139
|
+
return
|
|
106
140
|
}
|
|
107
141
|
|
|
108
142
|
switch (shellName) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
143
|
+
case 'bash':
|
|
144
|
+
case 'zsh': {
|
|
145
|
+
await fs.promises.appendFile(
|
|
146
|
+
path.join(os.homedir(), shellConfigFileName),
|
|
147
|
+
`\n${authEnvContent}\n`
|
|
148
|
+
)
|
|
149
|
+
break
|
|
150
|
+
}
|
|
151
|
+
default: {
|
|
152
|
+
throw new KnownError(
|
|
153
|
+
`Unfortunately we cannot automatically add credentials for your shell ${
|
|
154
|
+
process.env.SHELL
|
|
155
|
+
}!
|
|
120
156
|
|
|
121
157
|
You will need to that manually!
|
|
122
158
|
|
|
123
|
-
Add following string to your shell configuration file: ${
|
|
124
|
-
|
|
125
|
-
|
|
159
|
+
Add following string to your shell configuration file: ${logger.style.code()}`
|
|
160
|
+
)
|
|
161
|
+
}
|
|
126
162
|
}
|
|
127
163
|
|
|
128
164
|
await task.prompt({
|
|
@@ -131,92 +167,143 @@ Add following string to your shell configuration file: ${ logger.style.code()}`
|
|
|
131
167
|
|
|
132
168
|
You selected to add your Magento credentials to your shell environment, you should know that shell configuration does not update automatically.
|
|
133
169
|
|
|
134
|
-
To update it you can either restart your existing shell or run the following command to update the configuration temporarily: ${
|
|
170
|
+
To update it you can either restart your existing shell or run the following command to update the configuration temporarily: ${logger.style.code(
|
|
171
|
+
'source <path/to/config/file>'
|
|
172
|
+
)}
|
|
135
173
|
|
|
136
|
-
Press ${
|
|
137
|
-
})
|
|
174
|
+
Press ${logger.style.misc('Y')} to continue`
|
|
175
|
+
})
|
|
138
176
|
}
|
|
139
|
-
})
|
|
177
|
+
})
|
|
140
178
|
|
|
141
179
|
/**
|
|
142
|
-
* @
|
|
180
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
143
181
|
*/
|
|
144
182
|
const checkComposerCredentials = () => ({
|
|
145
183
|
title: 'Checking Composer credentials',
|
|
146
184
|
task: async (ctx, task) => {
|
|
147
|
-
const problems = new Map()
|
|
185
|
+
const problems = new Map()
|
|
148
186
|
if (!process.env.COMPOSER_AUTH) {
|
|
149
|
-
problems.set(MISSING_COMPOSER_AUTH_ENV, true)
|
|
187
|
+
problems.set(MISSING_COMPOSER_AUTH_ENV, true)
|
|
150
188
|
}
|
|
151
189
|
|
|
152
|
-
if (!await pathExists(authJsonPath)) {
|
|
153
|
-
problems.set(MISSING_AUTH_JSON, true)
|
|
190
|
+
if (!(await pathExists(authJsonPath))) {
|
|
191
|
+
problems.set(MISSING_AUTH_JSON, true)
|
|
154
192
|
}
|
|
155
193
|
|
|
156
|
-
if (
|
|
157
|
-
|
|
194
|
+
if (
|
|
195
|
+
problems.has(MISSING_COMPOSER_AUTH_ENV) &&
|
|
196
|
+
problems.has(MISSING_AUTH_JSON)
|
|
197
|
+
) {
|
|
198
|
+
let doConfigure = true
|
|
158
199
|
if (await pathExists(shellConfigFilePath)) {
|
|
159
|
-
const rcFileContent = await fs.promises.readFile(
|
|
200
|
+
const rcFileContent = await fs.promises.readFile(
|
|
201
|
+
shellConfigFilePath,
|
|
202
|
+
'utf-8'
|
|
203
|
+
)
|
|
160
204
|
|
|
161
|
-
const lines = rcFileContent.split('\n')
|
|
162
|
-
const composerAuthInRcFile = lines.some((line) =>
|
|
205
|
+
const lines = rcFileContent.split('\n')
|
|
206
|
+
const composerAuthInRcFile = lines.some((line) =>
|
|
207
|
+
line.startsWith('export COMPOSER_AUTH=')
|
|
208
|
+
)
|
|
163
209
|
|
|
164
210
|
if (composerAuthInRcFile) {
|
|
165
|
-
doConfigure = false
|
|
211
|
+
doConfigure = false
|
|
166
212
|
const loadCredentialsFrom = await task.prompt({
|
|
167
213
|
type: 'Confirm',
|
|
168
|
-
message: `We detected that you have ${
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
214
|
+
message: `We detected that you have ${logger.style.misc(
|
|
215
|
+
'COMPOSER_AUTH'
|
|
216
|
+
)} environment variable set in ${logger.style.file(
|
|
217
|
+
shellConfigFilePath
|
|
218
|
+
)} file,
|
|
219
|
+
but we do not see this variable inside ${logger.style.code(
|
|
220
|
+
'magento-scripts'
|
|
221
|
+
)} process.
|
|
222
|
+
|
|
223
|
+
${logger.style.misc(
|
|
224
|
+
"! Don't forget to reload your shell after process is finished !"
|
|
225
|
+
)}
|
|
172
226
|
|
|
173
227
|
Would you like to load them now?`
|
|
174
|
-
})
|
|
228
|
+
})
|
|
175
229
|
|
|
176
230
|
if (loadCredentialsFrom) {
|
|
177
|
-
const credentialsLine = lines.find((line) =>
|
|
231
|
+
const credentialsLine = lines.find((line) =>
|
|
232
|
+
line.startsWith('export COMPOSER_AUTH=')
|
|
233
|
+
)
|
|
178
234
|
process.env.COMPOSER_AUTH = JSON.stringify(
|
|
179
|
-
JSON.parse(
|
|
235
|
+
JSON.parse(
|
|
236
|
+
// credentialsLine does exists, we know it from check above
|
|
237
|
+
// @ts-ignore
|
|
238
|
+
credentialsLine
|
|
239
|
+
.replace('export COMPOSER_AUTH=', '')
|
|
240
|
+
.replace(/'/gi, '')
|
|
241
|
+
.trim()
|
|
242
|
+
),
|
|
180
243
|
null,
|
|
181
244
|
0
|
|
182
|
-
)
|
|
183
|
-
problems.delete(MISSING_COMPOSER_AUTH_ENV)
|
|
245
|
+
)
|
|
246
|
+
problems.delete(MISSING_COMPOSER_AUTH_ENV)
|
|
184
247
|
}
|
|
185
248
|
}
|
|
186
249
|
}
|
|
187
250
|
|
|
188
251
|
if (doConfigure) {
|
|
189
|
-
return task.newListr(
|
|
190
|
-
configureComposerCredentials()
|
|
191
|
-
);
|
|
252
|
+
return task.newListr(configureComposerCredentials())
|
|
192
253
|
}
|
|
193
254
|
}
|
|
194
255
|
|
|
195
|
-
let composerAuthContent
|
|
256
|
+
let composerAuthContent
|
|
196
257
|
|
|
197
258
|
if (!problems.has(MISSING_AUTH_JSON)) {
|
|
198
259
|
try {
|
|
199
|
-
const composerAuthFileContent = await fs.promises.readFile(
|
|
260
|
+
const composerAuthFileContent = await fs.promises.readFile(
|
|
261
|
+
authJsonPath,
|
|
262
|
+
'utf-8'
|
|
263
|
+
)
|
|
200
264
|
|
|
201
|
-
composerAuthContent = JSON.parse(composerAuthFileContent)
|
|
265
|
+
composerAuthContent = JSON.parse(composerAuthFileContent)
|
|
202
266
|
|
|
203
|
-
|
|
204
|
-
|
|
267
|
+
const repoMagentoCredentials =
|
|
268
|
+
composerAuthContent &&
|
|
269
|
+
composerAuthContent['http-basic'] &&
|
|
270
|
+
composerAuthContent['http-basic']['repo.magento.com']
|
|
205
271
|
|
|
206
|
-
const hasEmptyCharacterInUsername =
|
|
207
|
-
|
|
272
|
+
const hasEmptyCharacterInUsername =
|
|
273
|
+
repoMagentoCredentials &&
|
|
274
|
+
/\s/i.test(repoMagentoCredentials.username)
|
|
275
|
+
const hasEmptyCharacterInPassword =
|
|
276
|
+
repoMagentoCredentials &&
|
|
277
|
+
/\s/i.test(repoMagentoCredentials.password)
|
|
208
278
|
|
|
209
279
|
// TODO refactor to check all fields, not only for magento
|
|
210
|
-
const message =
|
|
211
|
-
|
|
280
|
+
const message =
|
|
281
|
+
hasEmptyCharacterInUsername && hasEmptyCharacterInPassword
|
|
282
|
+
? `Both ${logger.style.misc(
|
|
283
|
+
'username'
|
|
284
|
+
)} and ${logger.style.misc(
|
|
285
|
+
'password'
|
|
286
|
+
)} fields in ${logger.style.misc(
|
|
287
|
+
'http-basic -> repo.magento.com'
|
|
288
|
+
)} in ${logger.style.file(
|
|
289
|
+
'./auth.json'
|
|
290
|
+
)} contains empty characters (spaces).
|
|
212
291
|
Do you want to remove them now? File will be overwritten.`
|
|
213
|
-
|
|
214
|
-
? `Your ${logger.style.misc(
|
|
292
|
+
: hasEmptyCharacterInUsername
|
|
293
|
+
? `Your ${logger.style.misc(
|
|
294
|
+
'http-basic -> repo.magento.com -> username'
|
|
295
|
+
)} field in ${logger.style.file(
|
|
296
|
+
'./auth.json'
|
|
297
|
+
)} contains empty characters (spaces).
|
|
215
298
|
Do you want to remove them now? File will be overwritten.`
|
|
216
299
|
: hasEmptyCharacterInPassword
|
|
217
|
-
|
|
300
|
+
? `Your ${logger.style.misc(
|
|
301
|
+
'http-basic -> repo.magento.com -> password'
|
|
302
|
+
)} field in ${logger.style.file(
|
|
303
|
+
'./auth.json'
|
|
304
|
+
)} contains empty characters (spaces).
|
|
218
305
|
Do you want to remove them now? File will be overwritten.`
|
|
219
|
-
|
|
306
|
+
: null
|
|
220
307
|
|
|
221
308
|
if (message) {
|
|
222
309
|
const response = await task.prompt({
|
|
@@ -229,60 +316,76 @@ Do you want to remove them now? File will be overwritten.`
|
|
|
229
316
|
},
|
|
230
317
|
{
|
|
231
318
|
name: 'skip',
|
|
232
|
-
message:
|
|
319
|
+
message: "No, I know what I'm doing"
|
|
233
320
|
}
|
|
234
321
|
]
|
|
235
|
-
})
|
|
322
|
+
})
|
|
236
323
|
|
|
237
324
|
if (response === 'overwrite') {
|
|
238
325
|
if (repoMagentoCredentials.username) {
|
|
239
|
-
repoMagentoCredentials.username =
|
|
326
|
+
repoMagentoCredentials.username =
|
|
327
|
+
repoMagentoCredentials.username.replace(
|
|
328
|
+
/\s/i,
|
|
329
|
+
''
|
|
330
|
+
)
|
|
240
331
|
}
|
|
241
332
|
|
|
242
333
|
if (repoMagentoCredentials.password) {
|
|
243
|
-
repoMagentoCredentials.password =
|
|
334
|
+
repoMagentoCredentials.password =
|
|
335
|
+
repoMagentoCredentials.password.replace(
|
|
336
|
+
/\s/i,
|
|
337
|
+
''
|
|
338
|
+
)
|
|
244
339
|
}
|
|
245
340
|
|
|
246
341
|
await fs.promises.writeFile(
|
|
247
342
|
authJsonPath,
|
|
248
343
|
JSON.stringify(composerAuthContent, null, 4),
|
|
249
344
|
'utf-8'
|
|
250
|
-
)
|
|
345
|
+
)
|
|
251
346
|
}
|
|
252
347
|
}
|
|
253
348
|
|
|
254
|
-
process.env.COMPOSER_AUTH = composerAuthFileContent
|
|
349
|
+
process.env.COMPOSER_AUTH = composerAuthFileContent
|
|
255
350
|
} catch (e) {
|
|
256
351
|
throw new UnknownError(
|
|
257
|
-
`We found an error in your ${
|
|
352
|
+
`We found an error in your ${logger.style.file(
|
|
353
|
+
'./auth.json'
|
|
354
|
+
)} file.
|
|
258
355
|
|
|
259
356
|
Make sure that this file contains a valid JSON!
|
|
260
357
|
|
|
261
|
-
You can try linting your file here: ${
|
|
358
|
+
You can try linting your file here: ${logger.style.link(
|
|
359
|
+
'https://jsonformatter.curiousconcept.com/'
|
|
360
|
+
)}
|
|
262
361
|
|
|
263
362
|
Error message that we got: ${e}`
|
|
264
|
-
)
|
|
363
|
+
)
|
|
265
364
|
}
|
|
266
365
|
}
|
|
267
366
|
|
|
268
367
|
if (!problems.has(MISSING_COMPOSER_AUTH_ENV) && !composerAuthContent) {
|
|
269
368
|
try {
|
|
270
|
-
composerAuthContent = JSON.parse(process.env.COMPOSER_AUTH)
|
|
369
|
+
composerAuthContent = JSON.parse(process.env.COMPOSER_AUTH)
|
|
271
370
|
} catch (e) {
|
|
272
371
|
throw new UnknownError(
|
|
273
|
-
`We found an error in your ${
|
|
372
|
+
`We found an error in your ${logger.style.misc(
|
|
373
|
+
'$COMPOSER_AUTH'
|
|
374
|
+
)} environment variable.
|
|
274
375
|
|
|
275
376
|
Make sure that this variable contains a valid JSON!
|
|
276
377
|
|
|
277
|
-
You can try linting your variable here: ${
|
|
378
|
+
You can try linting your variable here: ${logger.style.link(
|
|
379
|
+
'https://jsonformatter.curiousconcept.com/'
|
|
380
|
+
)}
|
|
278
381
|
|
|
279
382
|
Error message that we got: ${e}`
|
|
280
|
-
)
|
|
383
|
+
)
|
|
281
384
|
}
|
|
282
385
|
}
|
|
283
386
|
}
|
|
284
|
-
})
|
|
387
|
+
})
|
|
285
388
|
|
|
286
389
|
module.exports = {
|
|
287
390
|
checkComposerCredentials
|
|
288
|
-
}
|
|
391
|
+
}
|