@automattic/vip 4.1.6 → 4.1.8
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/assets/dev-env.lando.template.yml.ejs +1 -1
- package/dist/bin/vip-app-deploy-token-generate.js +110 -78
- package/dist/bin/vip-app-deploy-token.js +24 -16
- package/dist/bin/vip-app-deploy-validate.js +45 -41
- package/dist/bin/vip-app-deploy.js +222 -215
- package/dist/bin/vip-app-list.js +59 -43
- package/dist/bin/vip-app.js +97 -66
- package/dist/bin/vip-backup-db.js +36 -29
- package/dist/bin/vip-backup.js +16 -9
- package/dist/bin/vip-cache-purge-url.js +93 -55
- package/dist/bin/vip-cache.js +23 -14
- package/dist/bin/vip-config-envvar-delete.js +74 -73
- package/dist/bin/vip-config-envvar-get-all.js +68 -68
- package/dist/bin/vip-config-envvar-get.js +46 -46
- package/dist/bin/vip-config-envvar-list.js +54 -57
- package/dist/bin/vip-config-envvar-set.js +102 -96
- package/dist/bin/vip-config-envvar.js +38 -24
- package/dist/bin/vip-config-software-get.js +88 -75
- package/dist/bin/vip-config-software-update.js +116 -120
- package/dist/bin/vip-config-software.js +31 -21
- package/dist/bin/vip-config.js +25 -17
- package/dist/bin/vip-db-phpmyadmin.js +40 -39
- package/dist/bin/vip-db.js +13 -12
- package/dist/bin/vip-defensive-mode-configure.js +197 -197
- package/dist/bin/vip-defensive-mode-disable.js +43 -35
- package/dist/bin/vip-defensive-mode-enable.js +47 -38
- package/dist/bin/vip-defensive-mode.js +28 -17
- package/dist/bin/vip-dev-env-create.js +147 -104
- package/dist/bin/vip-dev-env-destroy.js +48 -39
- package/dist/bin/vip-dev-env-envvar-delete.js +60 -49
- package/dist/bin/vip-dev-env-envvar-get-all.js +52 -45
- package/dist/bin/vip-dev-env-envvar-get.js +48 -37
- package/dist/bin/vip-dev-env-envvar-list.js +48 -41
- package/dist/bin/vip-dev-env-envvar-set.js +83 -70
- package/dist/bin/vip-dev-env-envvar.js +38 -23
- package/dist/bin/vip-dev-env-exec.js +81 -74
- package/dist/bin/vip-dev-env-import-media.js +34 -26
- package/dist/bin/vip-dev-env-import-sql.js +65 -51
- package/dist/bin/vip-dev-env-import.js +23 -14
- package/dist/bin/vip-dev-env-info.js +59 -50
- package/dist/bin/vip-dev-env-list.js +34 -31
- package/dist/bin/vip-dev-env-logs.js +59 -49
- package/dist/bin/vip-dev-env-purge.js +71 -63
- package/dist/bin/vip-dev-env-shell.js +82 -71
- package/dist/bin/vip-dev-env-start.js +77 -65
- package/dist/bin/vip-dev-env-stop.js +80 -74
- package/dist/bin/vip-dev-env-sync-sql.js +80 -72
- package/dist/bin/vip-dev-env-sync.js +18 -11
- package/dist/bin/vip-dev-env-update.js +93 -84
- package/dist/bin/vip-dev-env.js +25 -8
- package/dist/bin/vip-edge-workers-build.js +82 -54
- package/dist/bin/vip-edge-workers-delete.js +84 -52
- package/dist/bin/vip-edge-workers-deploy.js +186 -126
- package/dist/bin/vip-edge-workers-disable.js +75 -44
- package/dist/bin/vip-edge-workers-enable.js +86 -54
- package/dist/bin/vip-edge-workers-get.js +108 -88
- package/dist/bin/vip-edge-workers-init.js +83 -53
- package/dist/bin/vip-edge-workers-list.js +89 -54
- package/dist/bin/vip-edge-workers-new.js +98 -69
- package/dist/bin/vip-edge-workers-validate.js +123 -82
- package/dist/bin/vip-edge-workers.js +19 -6
- package/dist/bin/vip-export-sql.js +75 -69
- package/dist/bin/vip-export.js +12 -7
- package/dist/bin/vip-import-media-abort.js +99 -73
- package/dist/bin/vip-import-media-status.js +83 -51
- package/dist/bin/vip-import-media.js +165 -166
- package/dist/bin/vip-import-sql-status.js +75 -45
- package/dist/bin/vip-import-sql.js +536 -596
- package/dist/bin/vip-import-validate-files.js +122 -141
- package/dist/bin/vip-import-validate-sql.js +52 -16
- package/dist/bin/vip-import.js +16 -7
- package/dist/bin/vip-logout.js +17 -13
- package/dist/bin/vip-logs.js +209 -183
- package/dist/bin/vip-search-replace.js +85 -53
- package/dist/bin/vip-slowlogs.js +168 -147
- package/dist/bin/vip-sync.js +163 -133
- package/dist/bin/vip-whoami.js +71 -35
- package/dist/bin/vip-wp.js +506 -549
- package/dist/bin/vip.js +161 -116
- package/dist/commands/backup-db.js +183 -149
- package/dist/commands/dev-env-import-sql.js +162 -117
- package/dist/commands/dev-env-sync-sql.js +372 -330
- package/dist/commands/export-sql.js +441 -425
- package/dist/commands/phpmyadmin.js +232 -212
- package/dist/commands/wp-ssh.js +218 -187
- package/dist/lib/analytics/clients/tracks.js +84 -91
- package/dist/lib/analytics/index.js +27 -27
- package/dist/lib/api/app.js +37 -36
- package/dist/lib/api/cache-purge.js +17 -20
- package/dist/lib/api/constants.js +5 -6
- package/dist/lib/api/edge-workers.js +84 -135
- package/dist/lib/api/error-debug.js +10 -13
- package/dist/lib/api/feature-flags.js +16 -17
- package/dist/lib/api/http.js +47 -48
- package/dist/lib/api/user.js +17 -18
- package/dist/lib/api.js +107 -116
- package/dist/lib/app-logs/app-logs.js +24 -25
- package/dist/lib/app-slowlogs/app-slowlogs.js +23 -24
- package/dist/lib/app-slowlogs/types.js +2 -1
- package/dist/lib/app.js +6 -8
- package/dist/lib/backup-storage-availability/backup-storage-availability.js +119 -119
- package/dist/lib/backup-storage-availability/docker-machine-not-found-error.js +5 -6
- package/dist/lib/cli/apiConfig.js +71 -41
- package/dist/lib/cli/command.js +1120 -873
- package/dist/lib/cli/config.js +29 -29
- package/dist/lib/cli/envAlias.js +35 -50
- package/dist/lib/cli/exit.js +19 -19
- package/dist/lib/cli/format.js +172 -172
- package/dist/lib/cli/progress.js +193 -236
- package/dist/lib/cli/prompt.js +14 -15
- package/dist/lib/cli/runtime-mode.js +5 -6
- package/dist/lib/client-file-uploader.js +489 -641
- package/dist/lib/config/software.js +206 -212
- package/dist/lib/constants/dev-environment.js +40 -37
- package/dist/lib/constants/file-size.js +6 -7
- package/dist/lib/constants/vipgo.js +24 -12
- package/dist/lib/custom-deploy/custom-deploy.js +138 -120
- package/dist/lib/database.js +88 -85
- package/dist/lib/defensive-mode/api.js +41 -46
- package/dist/lib/defensive-mode/cli-helpers.js +40 -40
- package/dist/lib/dev-environment/dev-environment-cli.js +776 -735
- package/dist/lib/dev-environment/dev-environment-configuration-file.js +224 -191
- package/dist/lib/dev-environment/dev-environment-core.js +697 -732
- package/dist/lib/dev-environment/dev-environment-database.js +57 -41
- package/dist/lib/dev-environment/dev-environment-lando.js +734 -666
- package/dist/lib/dev-environment/docker-utils.js +96 -90
- package/dist/lib/dev-environment/env-vars.js +61 -59
- package/dist/lib/dev-environment/lando-loader.js +6 -7
- package/dist/lib/dev-environment/types.js +2 -1
- package/dist/lib/edge-workers/confirmation.js +42 -36
- package/dist/lib/edge-workers/deployment.js +150 -159
- package/dist/lib/edge-workers/index.js +68 -85
- package/dist/lib/edge-workers/location.js +26 -26
- package/dist/lib/edge-workers/output.js +14 -15
- package/dist/lib/edge-workers/project.js +123 -132
- package/dist/lib/edge-workers/toolchains/assemblyscript/constants.js +6 -8
- package/dist/lib/edge-workers/toolchains/assemblyscript/index.js +100 -101
- package/dist/lib/edge-workers/toolchains/assemblyscript/templates.js +31 -33
- package/dist/lib/edge-workers/toolchains/index.js +15 -15
- package/dist/lib/edge-workers/types.js +10 -38
- package/dist/lib/edge-workers/validation.js +161 -150
- package/dist/lib/env.js +16 -17
- package/dist/lib/envvar/api-delete.js +16 -18
- package/dist/lib/envvar/api-get-all.js +15 -19
- package/dist/lib/envvar/api-get.js +8 -9
- package/dist/lib/envvar/api-list.js +16 -21
- package/dist/lib/envvar/api-set.js +20 -19
- package/dist/lib/envvar/api.js +34 -29
- package/dist/lib/envvar/input.js +29 -34
- package/dist/lib/envvar/logging.js +9 -11
- package/dist/lib/envvar/read-file.js +6 -7
- package/dist/lib/http/download-file.js +76 -44
- package/dist/lib/http/proxy-agent.js +37 -40
- package/dist/lib/http/proxy-dispatcher.js +69 -71
- package/dist/lib/keychain/insecure.js +40 -36
- package/dist/lib/keychain/keychain.js +2 -1
- package/dist/lib/keychain/secure.js +16 -15
- package/dist/lib/keychain.js +22 -22
- package/dist/lib/live-backup-copy.js +117 -115
- package/dist/lib/logout.js +17 -19
- package/dist/lib/media-import/config.js +15 -14
- package/dist/lib/media-import/media-file-import.js +9 -13
- package/dist/lib/media-import/progress.js +53 -65
- package/dist/lib/media-import/status.js +241 -256
- package/dist/lib/media-import/utils.js +15 -15
- package/dist/lib/node-version-check.js +16 -16
- package/dist/lib/promise.js +16 -17
- package/dist/lib/read-file.js +48 -16
- package/dist/lib/rechallenge/client.js +37 -43
- package/dist/lib/rechallenge/errors.js +38 -37
- package/dist/lib/rechallenge/flow.js +148 -123
- package/dist/lib/rechallenge/index.js +23 -24
- package/dist/lib/rechallenge/link.js +153 -151
- package/dist/lib/rechallenge/open-browser.js +14 -17
- package/dist/lib/rechallenge/token-cache.js +83 -86
- package/dist/lib/rechallenge/types.js +5 -14
- package/dist/lib/retry.js +93 -129
- package/dist/lib/search-and-replace.js +164 -148
- package/dist/lib/site-import/db-file-import.js +12 -16
- package/dist/lib/site-import/status.js +291 -291
- package/dist/lib/token.js +86 -87
- package/dist/lib/tracker.js +51 -62
- package/dist/lib/types/graphql/rate-limit-exceeded-error.js +2 -1
- package/dist/lib/types.js +2 -1
- package/dist/lib/user-error.js +6 -8
- package/dist/lib/utils.js +81 -87
- package/dist/lib/validations/custom-deploy.js +218 -186
- package/dist/lib/validations/is-multi-site-sql-dump.js +6 -6
- package/dist/lib/validations/is-multi-site.js +83 -50
- package/dist/lib/validations/is-multisite-domain-mapped.js +92 -62
- package/dist/lib/validations/line-by-line.js +78 -46
- package/dist/lib/validations/site-type.js +59 -63
- package/dist/lib/validations/sql-insert-parser.js +415 -0
- package/dist/lib/validations/sql.js +551 -431
- package/dist/lib/validations/utils.js +27 -29
- package/dist/lib/vip-import-validate-files.js +481 -490
- package/dist/lib/wp/helpers.js +41 -45
- package/dist/lib/wp/readline.js +21 -57
- package/dist/lib/xdg-data.js +11 -12
- package/helpers/mark-cli-executable.js +9 -0
- package/node_modules/@apollo/client/CHANGELOG.md +10 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs +5 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/helpers.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs +2 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs +14 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs +16 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/cache/inmemory/policies.d.cts +2 -0
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs +3 -2
- package/node_modules/@apollo/client/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs +9 -1
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryInfo.d.cts +1 -1
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs +10 -3
- package/node_modules/@apollo/client/__cjs/core/QueryManager.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/node_modules/@apollo/client/__cjs/react/hooks/useFragment.d.cts +42 -43
- package/node_modules/@apollo/client/__cjs/version.cjs +1 -1
- package/node_modules/@apollo/client/cache/inmemory/helpers.js +5 -0
- package/node_modules/@apollo/client/cache/inmemory/helpers.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js +2 -1
- package/node_modules/@apollo/client/cache/inmemory/inMemoryCache.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/key-extractor.js +14 -2
- package/node_modules/@apollo/client/cache/inmemory/key-extractor.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.d.ts +2 -0
- package/node_modules/@apollo/client/cache/inmemory/policies.js +17 -1
- package/node_modules/@apollo/client/cache/inmemory/policies.js.map +1 -1
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js +3 -2
- package/node_modules/@apollo/client/cache/inmemory/writeToStore.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryInfo.d.ts +1 -1
- package/node_modules/@apollo/client/core/QueryInfo.js +10 -2
- package/node_modules/@apollo/client/core/QueryInfo.js.map +1 -1
- package/node_modules/@apollo/client/core/QueryManager.js +10 -3
- package/node_modules/@apollo/client/core/QueryManager.js.map +1 -1
- package/node_modules/@apollo/client/package.json +1 -1
- package/node_modules/@apollo/client/react/hooks/useFragment.d.ts +42 -43
- package/node_modules/@apollo/client/react/hooks/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.d.ts +42 -43
- package/node_modules/@apollo/client/react/hooks-compiled/useFragment.js.map +1 -1
- package/node_modules/@apollo/client/version.js +1 -1
- package/node_modules/@automattic/vip-search-replace/README.md +6 -1
- package/node_modules/@automattic/vip-search-replace/lib/index.js +46 -14
- package/node_modules/@automattic/vip-search-replace/package.json +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/zlib.d.ts +752 -0
- package/node_modules/check-disk-space/README.md +92 -32
- package/node_modules/check-disk-space/dist/check-disk-space.d.mts +58 -0
- package/node_modules/check-disk-space/dist/check-disk-space.mjs +170 -190
- package/node_modules/check-disk-space/package.json +43 -71
- package/node_modules/cpu-features/build/Makefile +2 -2
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_arm_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_mips_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_linux_or_android.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o.d +1 -1
- package/node_modules/cpu-features/build/Release/.deps/Release/obj.target/cpufeatures/src/binding.o.d +157 -145
- package/node_modules/cpu-features/build/Release/cpufeatures.node +0 -0
- package/node_modules/cpu-features/build/Release/obj.target/cpufeatures/src/binding.o +0 -0
- package/node_modules/cpu-features/build/Release/obj.target/cpufeatures.node +0 -0
- package/node_modules/cpu-features/build/config.gypi +100 -31
- package/node_modules/cpu-features/build/cpufeatures.target.mk +14 -14
- package/node_modules/cpu-features/build/deps/cpu_features/cpu_features.target.mk +14 -14
- package/node_modules/ssh2/lib/protocol/crypto/build/Makefile +2 -2
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d.raw +136 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/sshcrypto.target.mk +14 -14
- package/node_modules/undici/docs/docs/api/Interceptors.md +15 -2
- package/node_modules/undici/lib/dispatcher/client-h2.js +78 -3
- package/node_modules/undici/lib/dispatcher/pool-base.js +20 -3
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/api.d.ts +1 -1
- package/node_modules/undici/types/utility.d.ts +4 -4
- package/package.json +44 -13
- package/dist/lib/analytics/clients/client.js +0 -1
- package/dist/lib/analytics/clients/pendo.js +0 -78
- package/helpers/check-version.js +0 -16
- package/node_modules/check-disk-space/dist/check-disk-space.cjs +0 -210
- package/node_modules/check-disk-space/dist/check-disk-space.d.ts +0 -53
- package/node_modules/fetch-retry/.eslintignore +0 -1
- package/node_modules/fetch-retry/.eslintrc.yml +0 -20
- package/node_modules/fetch-retry/.github/workflows/node.js.yml +0 -32
- package/node_modules/fetch-retry/.husky/pre-commit +0 -6
- package/node_modules/fetch-retry/.nycrc.json +0 -24
- package/node_modules/fetch-retry/.travis.yml +0 -3
- package/node_modules/fetch-retry/LICENSE +0 -21
- package/node_modules/fetch-retry/README.md +0 -128
- package/node_modules/fetch-retry/dist/fetch-retry.umd.js +0 -151
- package/node_modules/fetch-retry/index.d.ts +0 -29
- package/node_modules/fetch-retry/index.js +0 -143
- package/node_modules/fetch-retry/package.json +0 -41
- package/node_modules/fetch-retry/rollup.config.js +0 -12
- package/node_modules/fetch-retry/test/.eslintrc.yml +0 -7
- package/node_modules/fetch-retry/test/integration/index.js +0 -212
- package/node_modules/fetch-retry/test/integration/mock-api/index.js +0 -42
- package/node_modules/fetch-retry/test/unit/index.js +0 -1169
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto/src/binding.o.d +0 -265
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/obj.target/sshcrypto.node.d +0 -1
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/.deps/Release/sshcrypto.node.d +0 -1
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto/src/binding.o +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/obj.target/sshcrypto.node +0 -0
- package/node_modules/ssh2/lib/protocol/crypto/build/Release/sshcrypto.node +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.default = getEnvVars;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const query = (0, _graphqlTag.default)`
|
|
7
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
+
const api_1 = __importDefault(require("../../lib/api"));
|
|
9
|
+
const query = (0, graphql_tag_1.default) `
|
|
9
10
|
query GetEnvironmentVariablesWithValues($appId: Int!, $envId: Int!) {
|
|
10
11
|
app(id: $appId) {
|
|
11
12
|
id
|
|
@@ -23,16 +24,11 @@ const query = (0, _graphqlTag.default)`
|
|
|
23
24
|
}
|
|
24
25
|
`;
|
|
25
26
|
async function getEnvVars(appId, envId) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
data
|
|
33
|
-
|
|
34
|
-
query,
|
|
35
|
-
variables
|
|
36
|
-
});
|
|
37
|
-
return data?.app?.environments?.[0]?.environmentVariables?.nodes ?? null;
|
|
38
|
-
}
|
|
27
|
+
const api = (0, api_1.default)();
|
|
28
|
+
const variables = {
|
|
29
|
+
appId,
|
|
30
|
+
envId,
|
|
31
|
+
};
|
|
32
|
+
const { data } = await api.query({ query, variables });
|
|
33
|
+
return (data?.app?.environments?.[0]?.environmentVariables?.nodes ?? null);
|
|
34
|
+
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.default = getEnvVar;
|
|
5
|
-
|
|
6
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
const api_get_all_1 = __importDefault(require("../../lib/envvar/api-get-all"));
|
|
7
8
|
async function getEnvVar(appId, envId, name) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}) => name === foundName);
|
|
12
|
-
}
|
|
9
|
+
const envvars = await (0, api_get_all_1.default)(appId, envId);
|
|
10
|
+
return envvars?.find(({ name: foundName }) => name === foundName);
|
|
11
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.default = listEnvVars;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const query = (0, _graphqlTag.default)`
|
|
7
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
+
const api_1 = __importDefault(require("../../lib/api"));
|
|
9
|
+
const query = (0, graphql_tag_1.default) `
|
|
9
10
|
query GetEnvironmentVariables($appId: Int!, $envId: Int!) {
|
|
10
11
|
app(id: $appId) {
|
|
11
12
|
id
|
|
@@ -21,20 +22,14 @@ const query = (0, _graphqlTag.default)`
|
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
`;
|
|
24
|
-
|
|
25
25
|
// List the names (but not values) of environment variables.
|
|
26
26
|
async function listEnvVars(appId, envId) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
data
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
variables
|
|
37
|
-
});
|
|
38
|
-
const nodes = data?.app?.environments?.[0]?.environmentVariables?.nodes ?? [];
|
|
39
|
-
return nodes.map(entry => entry?.name ?? '');
|
|
40
|
-
}
|
|
27
|
+
const api = (0, api_1.default)();
|
|
28
|
+
const variables = {
|
|
29
|
+
appId,
|
|
30
|
+
envId,
|
|
31
|
+
};
|
|
32
|
+
const { data } = await api.query({ query, variables });
|
|
33
|
+
const nodes = data?.app?.environments?.[0]?.environmentVariables?.nodes ?? [];
|
|
34
|
+
return nodes.map(entry => entry?.name ?? '');
|
|
35
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.default = setEnvVar;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const mutation = (0, _graphqlTag.default)`
|
|
7
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
+
const api_1 = __importDefault(require("../../lib/api"));
|
|
9
|
+
const mutation = (0, graphql_tag_1.default) `
|
|
9
10
|
mutation AddEnvironmentVariable(
|
|
10
11
|
$appId: Int!
|
|
11
12
|
$envId: Int!
|
|
@@ -32,16 +33,16 @@ const mutation = (0, _graphqlTag.default)`
|
|
|
32
33
|
}
|
|
33
34
|
`;
|
|
34
35
|
async function setEnvVar(appId, envId, name, value, reloadManifest = false) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
36
|
+
const api = (0, api_1.default)();
|
|
37
|
+
const variables = {
|
|
38
|
+
appId,
|
|
39
|
+
envId,
|
|
40
|
+
name,
|
|
41
|
+
value,
|
|
42
|
+
reloadManifest,
|
|
43
|
+
};
|
|
44
|
+
return api.mutate({
|
|
45
|
+
mutation,
|
|
46
|
+
variables,
|
|
47
|
+
});
|
|
48
|
+
}
|
package/dist/lib/envvar/api.js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.appQuery = exports.setEnvVar = exports.listEnvVars = exports.getEnvVars = exports.getEnvVar = exports.deleteEnvVar = void 0;
|
|
5
7
|
exports.validateName = validateName;
|
|
6
8
|
exports.validateNameWithMessage = validateNameWithMessage;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.deleteEnvVar =
|
|
10
|
-
|
|
11
|
-
exports.getEnvVar =
|
|
12
|
-
|
|
13
|
-
exports.getEnvVars =
|
|
14
|
-
|
|
15
|
-
exports.listEnvVars =
|
|
16
|
-
|
|
17
|
-
exports.setEnvVar =
|
|
18
|
-
|
|
19
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
-
// Reexport for convenience
|
|
21
|
-
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const api_delete_1 = __importDefault(require("./api-delete"));
|
|
11
|
+
exports.deleteEnvVar = api_delete_1.default;
|
|
12
|
+
const api_get_1 = __importDefault(require("./api-get"));
|
|
13
|
+
exports.getEnvVar = api_get_1.default;
|
|
14
|
+
const api_get_all_1 = __importDefault(require("./api-get-all"));
|
|
15
|
+
exports.getEnvVars = api_get_all_1.default;
|
|
16
|
+
const api_list_1 = __importDefault(require("./api-list"));
|
|
17
|
+
exports.listEnvVars = api_list_1.default;
|
|
18
|
+
const api_set_1 = __importDefault(require("./api-set"));
|
|
19
|
+
exports.setEnvVar = api_set_1.default;
|
|
20
|
+
const logging_1 = require("../../lib/envvar/logging");
|
|
22
21
|
// The subquery for environments lets users choose any environment, including production.
|
|
23
|
-
|
|
22
|
+
exports.appQuery = `
|
|
24
23
|
id
|
|
25
24
|
name
|
|
26
25
|
typeId
|
|
@@ -39,15 +38,21 @@ const appQuery = exports.appQuery = `
|
|
|
39
38
|
}
|
|
40
39
|
`;
|
|
41
40
|
function validateName(name) {
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
const sanitizedName = name
|
|
42
|
+
.trim()
|
|
43
|
+
.toUpperCase()
|
|
44
|
+
.replace(/[^A-Z0-9_]/g, '');
|
|
45
|
+
return name === sanitizedName && /^[A-Z]/.test(sanitizedName);
|
|
44
46
|
}
|
|
45
47
|
function validateNameWithMessage(name) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
(0, logging_1.debug)(`Validating environment variable name "${name}"`);
|
|
49
|
+
if (!validateName(name)) {
|
|
50
|
+
const message = [
|
|
51
|
+
'Environment variable name must consist of A-Z, 0-9, or _,',
|
|
52
|
+
'and must start with an uppercase letter.',
|
|
53
|
+
].join('\n');
|
|
54
|
+
console.log(chalk_1.default.bold.red(message));
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
package/dist/lib/envvar/input.js
CHANGED
|
@@ -1,41 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.cancel = cancel;
|
|
5
7
|
exports.confirm = confirm;
|
|
6
|
-
exports.promptForReloadManifest = promptForReloadManifest;
|
|
7
8
|
exports.promptForValue = promptForValue;
|
|
9
|
+
exports.promptForReloadManifest = promptForReloadManifest;
|
|
8
10
|
exports.showDeployWarning = showDeployWarning;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const enquirer_1 = require("enquirer");
|
|
13
|
+
const app_1 = require("../app");
|
|
13
14
|
function cancel() {
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
console.log(chalk_1.default.yellow('Command cancelled by user.'));
|
|
16
|
+
process.exit();
|
|
16
17
|
}
|
|
17
18
|
function confirm(message) {
|
|
18
|
-
|
|
19
|
-
message
|
|
20
|
-
}).run().catch(() => false);
|
|
19
|
+
return new enquirer_1.Confirm({ message }).run().catch(() => false);
|
|
21
20
|
}
|
|
22
21
|
async function promptForValue(message, mustMatch) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
return str?.trim() ?? '';
|
|
22
|
+
const { str } = await (0, enquirer_1.prompt)({
|
|
23
|
+
message,
|
|
24
|
+
name: 'str',
|
|
25
|
+
type: 'input',
|
|
26
|
+
validate: (input) => {
|
|
27
|
+
if (mustMatch && input !== mustMatch) {
|
|
28
|
+
return `Please type ${mustMatch} to proceed or ESC to cancel`;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
return str?.trim() ?? '';
|
|
37
34
|
}
|
|
38
|
-
|
|
39
35
|
/**
|
|
40
36
|
* Prompts the user to confirm whether to apply the environment variable update now.
|
|
41
37
|
*
|
|
@@ -43,15 +39,14 @@ async function promptForValue(message, mustMatch) {
|
|
|
43
39
|
* @return {Promise<boolean>} Whether to reload the manifest
|
|
44
40
|
*/
|
|
45
41
|
async function promptForReloadManifest(appTypeId) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
if ((0, app_1.isAppNodejs)(appTypeId)) {
|
|
43
|
+
console.log(chalk_1.default.yellow(`⚠️ Note: ${chalk_1.default.bold('Only applies to runtime variable changes.')} Build-time environment variable changes won't take effect until your next deploy.`));
|
|
44
|
+
}
|
|
45
|
+
return await confirm('Apply this environment variable update now?');
|
|
50
46
|
}
|
|
51
|
-
|
|
52
47
|
/**
|
|
53
48
|
* Shows a warning message that the environment variable update won't be available until the next deploy.
|
|
54
49
|
*/
|
|
55
50
|
function showDeployWarning() {
|
|
56
|
-
|
|
57
|
-
}
|
|
51
|
+
console.log(chalk_1.default.bgYellow(chalk_1.default.bold('Important:')), 'This environment variable update will not be available until the next code deploy is made to this environment.');
|
|
52
|
+
}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.debug = void 0;
|
|
5
7
|
exports.getEnvContext = getEnvContext;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
const debug_1 = __importDefault(require("debug"));
|
|
9
|
+
const command_1 = require("../../lib/cli/command");
|
|
9
10
|
// Shared debugger.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// FIXME: Replace with a proper type
|
|
13
|
-
|
|
11
|
+
exports.debug = (0, debug_1.default)('@automattic/vip:bin:config:envvar');
|
|
14
12
|
function getEnvContext(app, env) {
|
|
15
|
-
|
|
16
|
-
}
|
|
13
|
+
return `@${app.id}.${(0, command_1.getEnvIdentifier)(env)}`;
|
|
14
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.readVariableFromFile = readVariableFromFile;
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const logging_1 = require("../../lib/envvar/logging");
|
|
5
|
+
const read_file_1 = require("../read-file");
|
|
7
6
|
function readVariableFromFile(path) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
7
|
+
(0, logging_1.debug)(`Loading variable value from file "${path}"`);
|
|
8
|
+
return (0, read_file_1.readFromFile)(path);
|
|
9
|
+
}
|
|
@@ -1,51 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
36
|
exports.downloadFile = void 0;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const stream_1 = require("stream");
|
|
39
|
+
const promises_1 = require("stream/promises");
|
|
40
|
+
const undici_1 = require("undici");
|
|
41
|
+
const proxy_dispatcher_1 = require("./proxy-dispatcher");
|
|
11
42
|
const downloadFile = async (fileUrl, destinationPath, onProgress) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
throw new Error(`Request to ${fileUrl} failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
20
|
-
}
|
|
21
|
-
if (!response.ok) {
|
|
22
|
-
const errorMessage = `Failed to download file. Status: ${response.status} ${response.statusText}`;
|
|
23
|
-
throw new Error(errorMessage);
|
|
24
|
-
}
|
|
25
|
-
if (!response.body) {
|
|
26
|
-
throw new Error('Failed to download file. The response body is empty.');
|
|
27
|
-
}
|
|
28
|
-
const totalSizeHeader = response.headers.get('content-length');
|
|
29
|
-
const totalBytes = totalSizeHeader ? parseInt(totalSizeHeader, 10) : null;
|
|
30
|
-
let downloadedBytes = 0;
|
|
31
|
-
const fileStream = fs.createWriteStream(destinationPath);
|
|
32
|
-
const nodeReadable = _stream.Readable.fromWeb(response.body);
|
|
33
|
-
nodeReadable.on('data', chunk => {
|
|
34
|
-
downloadedBytes += chunk.length;
|
|
35
|
-
if (onProgress) {
|
|
36
|
-
onProgress(downloadedBytes, totalBytes);
|
|
43
|
+
let response;
|
|
44
|
+
const proxyDispatcher = (0, proxy_dispatcher_1.createProxyDispatcher)(fileUrl);
|
|
45
|
+
try {
|
|
46
|
+
response = await (0, undici_1.fetch)(fileUrl, { dispatcher: proxyDispatcher ?? undefined });
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new Error(`Request to ${fileUrl} failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
37
50
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
const errorMessage = `Failed to download file. Status: ${response.status} ${response.statusText}`;
|
|
53
|
+
throw new Error(errorMessage);
|
|
54
|
+
}
|
|
55
|
+
if (!response.body) {
|
|
56
|
+
throw new Error('Failed to download file. The response body is empty.');
|
|
57
|
+
}
|
|
58
|
+
const totalSizeHeader = response.headers.get('content-length');
|
|
59
|
+
const totalBytes = totalSizeHeader ? parseInt(totalSizeHeader, 10) : null;
|
|
60
|
+
let downloadedBytes = 0;
|
|
61
|
+
const fileStream = fs.createWriteStream(destinationPath);
|
|
62
|
+
const nodeReadable = stream_1.Readable.fromWeb(response.body);
|
|
63
|
+
nodeReadable.on('data', (chunk) => {
|
|
64
|
+
downloadedBytes += chunk.length;
|
|
65
|
+
if (onProgress) {
|
|
66
|
+
onProgress(downloadedBytes, totalBytes);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
43
69
|
try {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
70
|
+
nodeReadable.pipe(fileStream);
|
|
71
|
+
await (0, promises_1.finished)(fileStream);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
try {
|
|
75
|
+
await fs.promises.unlink(destinationPath);
|
|
76
|
+
}
|
|
77
|
+
catch (unlinkErr) {
|
|
78
|
+
console.error(`Failed to delete partial file ${destinationPath}:`, unlinkErr);
|
|
79
|
+
}
|
|
80
|
+
throw new Error(`Failed to write file to disk: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
47
81
|
}
|
|
48
|
-
throw new Error(`Failed to write file to disk: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
49
|
-
}
|
|
50
82
|
};
|
|
51
|
-
exports.downloadFile = downloadFile;
|
|
83
|
+
exports.downloadFile = downloadFile;
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.createProxyAgent = createProxyAgent;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const debug = (0, _debug.default)('vip:proxy-agent');
|
|
11
|
-
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
9
|
+
const proxy_from_env_1 = require("proxy-from-env");
|
|
10
|
+
const socks_proxy_agent_1 = require("socks-proxy-agent");
|
|
11
|
+
const debug = (0, debug_1.default)('vip:proxy-agent');
|
|
12
12
|
// Note: This module requires the use of a special environment variable "VIP_USE_SYSTEM_PROXY"
|
|
13
13
|
// The setting of it to any value allows this module to create a proxy agent based on proxy environment variables
|
|
14
14
|
// If not set, this module will revert back to the previous functionality (hence being fully backward compatible and non-breaking for users)
|
|
15
|
-
|
|
16
15
|
// This function returns a proxy given a few scenarios (in order of precedence):
|
|
17
16
|
// 1. VIP_PROXY is set: a SOCKS proxy is returned same as the previous version of this module
|
|
18
17
|
// 2. No applicable variables are set: null is returned (thus, no proxy agent is returned)
|
|
@@ -21,31 +20,29 @@ const debug = (0, _debug.default)('vip:proxy-agent');
|
|
|
21
20
|
// 5. NO_PROXY is set along with VIP_USE_SYSTEM_PROXY and any system proxy: null is returned if the no proxy applies, otherwise the first active proxy is used
|
|
22
21
|
// This allows near full customization by the client of what proxy should be used, instead of making assumptions based on the URL string
|
|
23
22
|
function createProxyAgent(url) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return new _socksProxyAgent.SocksProxyAgent(VIP_PROXY);
|
|
33
|
-
}
|
|
34
|
-
// Now check for any system proxy usage
|
|
35
|
-
if (process.env.VIP_USE_SYSTEM_PROXY && !coveredInNoProxy(url, NO_PROXY)) {
|
|
36
|
-
if (SOCKS_PROXY) {
|
|
37
|
-
debug(`Enabling SOCKS proxy support using config: ${SOCKS_PROXY}`);
|
|
38
|
-
return new _socksProxyAgent.SocksProxyAgent(SOCKS_PROXY);
|
|
23
|
+
const VIP_PROXY = process.env.VIP_PROXY || process.env.vip_proxy || null; // NOSONAR
|
|
24
|
+
const SOCKS_PROXY = process.env.SOCKS_PROXY || process.env.socks_proxy || null; // NOSONAR
|
|
25
|
+
const HTTPS_PROXY = process.env.HTTPS_PROXY || process.env.https_proxy || null; // NOSONAR
|
|
26
|
+
const NO_PROXY = process.env.NO_PROXY || process.env.no_proxy || null; // NOSONAR
|
|
27
|
+
// VIP Socks Proxy should take precedence and should be fully backward compatible
|
|
28
|
+
if (VIP_PROXY) {
|
|
29
|
+
debug(`Enabling VIP_PROXY proxy support using config: ${VIP_PROXY}`);
|
|
30
|
+
return new socks_proxy_agent_1.SocksProxyAgent(VIP_PROXY);
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
// Now check for any system proxy usage
|
|
33
|
+
if (process.env.VIP_USE_SYSTEM_PROXY && !coveredInNoProxy(url, NO_PROXY)) {
|
|
34
|
+
if (SOCKS_PROXY) {
|
|
35
|
+
debug(`Enabling SOCKS proxy support using config: ${SOCKS_PROXY}`);
|
|
36
|
+
return new socks_proxy_agent_1.SocksProxyAgent(SOCKS_PROXY);
|
|
37
|
+
}
|
|
38
|
+
if (HTTPS_PROXY) {
|
|
39
|
+
debug(`Enabling HTTPS proxy support using config: ${HTTPS_PROXY}`);
|
|
40
|
+
return new https_proxy_agent_1.HttpsProxyAgent(HTTPS_PROXY);
|
|
41
|
+
}
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return null;
|
|
43
|
+
// If no environment variables are set, the no proxy is in effect, or if the proxy enable is not set return null (equivilant of no Proxy agent)
|
|
44
|
+
return null;
|
|
47
45
|
}
|
|
48
|
-
|
|
49
46
|
// Determine if a NO_PROXY variable is applicable to a given URL
|
|
50
47
|
// Parameters:
|
|
51
48
|
// - url (string): absolute desintation URL (including the protocol)
|
|
@@ -59,11 +56,11 @@ function createProxyAgent(url) {
|
|
|
59
56
|
// 3. abc.com: do not proxy www.abc.com, abc.com, etc.
|
|
60
57
|
// See proxy-from-env on npmjs.org for full "ruleset"
|
|
61
58
|
function coveredInNoProxy(url, noProxyString) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
59
|
+
// If the NO_PROXY env variable is not set, then the URL is not covered in the NO_PROXY (utility below does not handle this case)
|
|
60
|
+
if (!noProxyString) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// If getProxyForUrl returns an empty string, then the host should not be proxied
|
|
64
|
+
// This isn't the most straight forward way to determine if a NO_PROXY is applicable, but the only package I could find that is relatively new and maintained
|
|
65
|
+
return (0, proxy_from_env_1.getProxyForUrl)(url) === '';
|
|
66
|
+
}
|