@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
package/dist/lib/read-file.js
CHANGED
|
@@ -1,21 +1,53 @@
|
|
|
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.readFromFile = readFromFile;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
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 promises_1 = require("node:fs/promises");
|
|
38
|
+
const exit = __importStar(require("../lib/cli/exit"));
|
|
8
39
|
async function readFromFile(path) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} catch (error) {
|
|
13
|
-
if (!(error instanceof Error)) {
|
|
14
|
-
exit.withError('Unknown error');
|
|
40
|
+
try {
|
|
41
|
+
const data = await (0, promises_1.readFile)(path, 'utf-8');
|
|
42
|
+
return data.trim();
|
|
15
43
|
}
|
|
16
|
-
|
|
17
|
-
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (!(error instanceof Error)) {
|
|
46
|
+
exit.withError('Unknown error');
|
|
47
|
+
}
|
|
48
|
+
if ('code' in error && error.code === 'ENOENT') {
|
|
49
|
+
exit.withError(`Could not load file "${path}".`);
|
|
50
|
+
}
|
|
51
|
+
exit.withError(error.message);
|
|
18
52
|
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
}
|
|
53
|
+
}
|
|
@@ -1,55 +1,49 @@
|
|
|
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.createSession = createSession;
|
|
5
|
-
exports.exchange = exchange;
|
|
6
7
|
exports.getSessionStatus = getSessionStatus;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// keeps compiling across the node-fetch -> undici migration (trunk #2837).
|
|
15
|
-
|
|
16
|
-
const debug = (0, _debug.default)('@automattic/vip:rechallenge:client');
|
|
8
|
+
exports.exchange = exchange;
|
|
9
|
+
const debug_1 = __importDefault(require("debug"));
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const errors_1 = require("./errors");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const http_1 = __importDefault(require("../api/http"));
|
|
14
|
+
const debug = (0, debug_1.default)('@automattic/vip:rechallenge:client');
|
|
17
15
|
function fillTemplate(template, challengeId) {
|
|
18
|
-
|
|
16
|
+
return template.replaceAll('{challengeId}', encodeURIComponent(challengeId));
|
|
19
17
|
}
|
|
20
18
|
async function parseOrThrow(response, scope) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
const text = await response.text();
|
|
21
|
+
throw new errors_1.RechallengeHttpError(response.status, text, scope);
|
|
22
|
+
}
|
|
23
|
+
return (await response.json());
|
|
26
24
|
}
|
|
27
25
|
async function createSession(opts) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
debug('createSession scope=%s', opts.requestedOperation);
|
|
27
|
+
const response = await (0, http_1.default)(opts.path, {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
headers: {
|
|
30
|
+
// New UUID per call — intent is a fresh session per invocation, not request deduplication.
|
|
31
|
+
'Idempotency-Key': (0, node_crypto_1.randomUUID)(),
|
|
32
|
+
},
|
|
33
|
+
body: {
|
|
34
|
+
clientType: types_1.CLIENT_TYPE,
|
|
35
|
+
requestedOperation: opts.requestedOperation,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
return parseOrThrow(response, opts.requestedOperation);
|
|
41
39
|
}
|
|
42
40
|
async function getSessionStatus(opts) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
return parseOrThrow(response, opts.scope ?? '');
|
|
41
|
+
const path = fillTemplate(opts.template, opts.challengeId);
|
|
42
|
+
const response = await (0, http_1.default)(path, { method: 'GET' });
|
|
43
|
+
return parseOrThrow(response, opts.scope ?? '');
|
|
48
44
|
}
|
|
49
45
|
async function exchange(opts) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return parseOrThrow(response, opts.scope ?? '');
|
|
55
|
-
}
|
|
46
|
+
const path = fillTemplate(opts.template, opts.challengeId);
|
|
47
|
+
const response = await (0, http_1.default)(path, { method: 'POST' });
|
|
48
|
+
return parseOrThrow(response, opts.scope ?? '');
|
|
49
|
+
}
|
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
var _types = require("./types");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RechallengeInteractionRequiredError = exports.RechallengeHttpError = exports.RechallengeAbortedError = exports.RechallengeTerminalError = exports.RechallengeUnsupportedVersionError = exports.RechallengeError = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
6
5
|
class RechallengeError extends Error {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
scope;
|
|
7
|
+
constructor(message, scope) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'RechallengeError';
|
|
10
|
+
this.scope = scope;
|
|
11
|
+
}
|
|
13
12
|
}
|
|
14
13
|
exports.RechallengeError = RechallengeError;
|
|
15
14
|
class RechallengeUnsupportedVersionError extends RechallengeError {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
constructor(version, scope) {
|
|
16
|
+
super(`Server requested rechallenge version "${version}" but this CLI only supports ${types_1.RECHALLENGE_VERSION}. Update vip-cli.`, scope);
|
|
17
|
+
this.name = 'RechallengeUnsupportedVersionError';
|
|
18
|
+
}
|
|
20
19
|
}
|
|
21
20
|
exports.RechallengeUnsupportedVersionError = RechallengeUnsupportedVersionError;
|
|
22
21
|
class RechallengeTerminalError extends RechallengeError {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
status;
|
|
23
|
+
constructor(status, scope, detail) {
|
|
24
|
+
super(`Step-up verification did not complete (status=${status})${detail ? `: ${detail}` : ''}.`, scope);
|
|
25
|
+
this.name = 'RechallengeTerminalError';
|
|
26
|
+
this.status = status;
|
|
27
|
+
}
|
|
29
28
|
}
|
|
30
29
|
exports.RechallengeTerminalError = RechallengeTerminalError;
|
|
31
30
|
class RechallengeAbortedError extends RechallengeError {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
constructor(scope) {
|
|
32
|
+
super('Step-up verification was cancelled.', scope);
|
|
33
|
+
this.name = 'RechallengeAbortedError';
|
|
34
|
+
}
|
|
36
35
|
}
|
|
37
36
|
exports.RechallengeAbortedError = RechallengeAbortedError;
|
|
38
37
|
class RechallengeHttpError extends RechallengeError {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
statusCode;
|
|
39
|
+
bodyText;
|
|
40
|
+
constructor(statusCode, bodyText, scope) {
|
|
41
|
+
super(`Step-up verification request failed (HTTP ${statusCode}): ${bodyText}`, scope);
|
|
42
|
+
this.name = 'RechallengeHttpError';
|
|
43
|
+
this.statusCode = statusCode;
|
|
44
|
+
this.bodyText = bodyText;
|
|
45
|
+
}
|
|
47
46
|
}
|
|
48
47
|
exports.RechallengeHttpError = RechallengeHttpError;
|
|
49
48
|
class RechallengeInteractionRequiredError extends RechallengeError {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
constructor(scope) {
|
|
50
|
+
super(`Step-up verification is required for ${scope}, but this is a non-interactive session. ` +
|
|
51
|
+
'Re-run the command interactively, or pass --rechallenge-wait (or set VIP_RECHALLENGE_WAIT=1) ' +
|
|
52
|
+
'to print the verification URL and wait for you to complete it on another device.', scope);
|
|
53
|
+
this.name = 'RechallengeInteractionRequiredError';
|
|
54
|
+
}
|
|
54
55
|
}
|
|
55
|
-
exports.RechallengeInteractionRequiredError = RechallengeInteractionRequiredError;
|
|
56
|
+
exports.RechallengeInteractionRequiredError = RechallengeInteractionRequiredError;
|
|
@@ -1,145 +1,170 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
39
|
exports.runRechallenge = runRechallenge;
|
|
40
|
+
exports.isInteractiveContext = isInteractiveContext;
|
|
6
41
|
exports.shouldWaitForRechallenge = shouldWaitForRechallenge;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
const debug = (0, _debug.default)('@automattic/vip:rechallenge:flow');
|
|
19
|
-
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const debug_1 = __importDefault(require("debug"));
|
|
44
|
+
const promises_1 = require("node:timers/promises");
|
|
45
|
+
const tracker_1 = require("../tracker");
|
|
46
|
+
const client = __importStar(require("./client"));
|
|
47
|
+
const errors_1 = require("./errors");
|
|
48
|
+
const open_browser_1 = require("./open-browser");
|
|
49
|
+
const token_cache_1 = __importDefault(require("./token-cache"));
|
|
50
|
+
const types_1 = require("./types");
|
|
51
|
+
const debug = (0, debug_1.default)('@automattic/vip:rechallenge:flow');
|
|
20
52
|
// Floor for the server-provided poll interval. Guards against a missing/0/NaN
|
|
21
53
|
// value (which would otherwise produce a tight status-poll loop) and clamps
|
|
22
54
|
// implausibly small values so a misbehaving server cannot make us hammer the API.
|
|
23
55
|
const MIN_POLL_INTERVAL_SECONDS = 2;
|
|
24
|
-
const TERMINAL = new Set([
|
|
56
|
+
const TERMINAL = new Set([
|
|
57
|
+
'verified',
|
|
58
|
+
'expired',
|
|
59
|
+
'failed',
|
|
60
|
+
'cancelled',
|
|
61
|
+
]);
|
|
25
62
|
async function runRechallenge(opts) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (rechallenge.version !== _types.RECHALLENGE_VERSION) {
|
|
34
|
-
throw new _errors.RechallengeUnsupportedVersionError(rechallenge.version, requestedOperation);
|
|
35
|
-
}
|
|
36
|
-
await (0, _tracker.trackEvent)('rechallenge_required', {
|
|
37
|
-
scope: requestedOperation,
|
|
38
|
-
clientType: _types.CLIENT_TYPE
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
// In a non-interactive session with no opt-in to wait, fail fast instead of
|
|
42
|
-
// creating a verification session no human can complete — automation would
|
|
43
|
-
// otherwise block until the session expires.
|
|
44
|
-
if (!interactive && !wait) {
|
|
45
|
-
await (0, _tracker.trackEvent)('rechallenge_interaction_required', {
|
|
46
|
-
scope: requestedOperation
|
|
63
|
+
const { requestedOperation, rechallenge, interactive, wait, signal } = opts;
|
|
64
|
+
if (rechallenge.version !== types_1.RECHALLENGE_VERSION) {
|
|
65
|
+
throw new errors_1.RechallengeUnsupportedVersionError(rechallenge.version, requestedOperation);
|
|
66
|
+
}
|
|
67
|
+
await (0, tracker_1.trackEvent)('rechallenge_required', {
|
|
68
|
+
scope: requestedOperation,
|
|
69
|
+
clientType: types_1.CLIENT_TYPE,
|
|
47
70
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
await (0, _tracker.trackEvent)('rechallenge_session_created', {
|
|
55
|
-
scope: requestedOperation
|
|
56
|
-
});
|
|
57
|
-
const verificationUrl = session.verificationUrl;
|
|
58
|
-
const expiresIso = session.expiresAt;
|
|
59
|
-
if (interactive) {
|
|
60
|
-
await (0, _openBrowser.openBrowser)(verificationUrl);
|
|
61
|
-
console.warn(_chalk.default.yellow('⚠'), `Step-up verification required for ${_chalk.default.bold(requestedOperation)}.`);
|
|
62
|
-
console.warn(` Open ${_chalk.default.cyan(verificationUrl)}`);
|
|
63
|
-
console.warn(` If your browser did not open, copy and paste the URL above. Expires at ${expiresIso}.`);
|
|
64
|
-
} else {
|
|
65
|
-
console.warn(`Step-up verification required for ${requestedOperation}. ` + `Complete it at: ${verificationUrl} (expires at ${expiresIso}).`);
|
|
66
|
-
}
|
|
67
|
-
const requestedInterval = Number(session.pollIntervalSeconds);
|
|
68
|
-
const interval = Math.max(Number.isFinite(requestedInterval) ? requestedInterval : MIN_POLL_INTERVAL_SECONDS, MIN_POLL_INTERVAL_SECONDS) * 1000;
|
|
69
|
-
const deadline = Date.parse(session.expiresAt);
|
|
70
|
-
if (Number.isNaN(deadline)) {
|
|
71
|
-
throw new _errors.RechallengeTerminalError('expired', requestedOperation, 'server returned unparseable expiresAt');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/* eslint-disable no-await-in-loop -- polling loop; each iteration must complete before the next */
|
|
75
|
-
while (true) {
|
|
76
|
-
if (signal?.aborted) {
|
|
77
|
-
throw new _errors.RechallengeAbortedError(requestedOperation);
|
|
71
|
+
// In a non-interactive session with no opt-in to wait, fail fast instead of
|
|
72
|
+
// creating a verification session no human can complete — automation would
|
|
73
|
+
// otherwise block until the session expires.
|
|
74
|
+
if (!interactive && !wait) {
|
|
75
|
+
await (0, tracker_1.trackEvent)('rechallenge_interaction_required', { scope: requestedOperation });
|
|
76
|
+
throw new errors_1.RechallengeInteractionRequiredError(requestedOperation);
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
const session = await client.createSession({
|
|
79
|
+
path: rechallenge.createSessionPath,
|
|
80
|
+
requestedOperation,
|
|
81
|
+
});
|
|
82
|
+
await (0, tracker_1.trackEvent)('rechallenge_session_created', { scope: requestedOperation });
|
|
83
|
+
const verificationUrl = session.verificationUrl;
|
|
84
|
+
const expiresIso = session.expiresAt;
|
|
85
|
+
if (interactive) {
|
|
86
|
+
await (0, open_browser_1.openBrowser)(verificationUrl);
|
|
87
|
+
console.warn(chalk_1.default.yellow('⚠'), `Step-up verification required for ${chalk_1.default.bold(requestedOperation)}.`);
|
|
88
|
+
console.warn(` Open ${chalk_1.default.cyan(verificationUrl)}`);
|
|
89
|
+
console.warn(` If your browser did not open, copy and paste the URL above. Expires at ${expiresIso}.`);
|
|
85
90
|
}
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
else {
|
|
92
|
+
console.warn(`Step-up verification required for ${requestedOperation}. ` +
|
|
93
|
+
`Complete it at: ${verificationUrl} (expires at ${expiresIso}).`);
|
|
88
94
|
}
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (!TERMINAL.has(status.status)) {
|
|
95
|
-
debug('still %s; polling again', status.status);
|
|
96
|
-
continue;
|
|
95
|
+
const requestedInterval = Number(session.pollIntervalSeconds);
|
|
96
|
+
const interval = Math.max(Number.isFinite(requestedInterval) ? requestedInterval : MIN_POLL_INTERVAL_SECONDS, MIN_POLL_INTERVAL_SECONDS) * 1000;
|
|
97
|
+
const deadline = Date.parse(session.expiresAt);
|
|
98
|
+
if (Number.isNaN(deadline)) {
|
|
99
|
+
throw new errors_1.RechallengeTerminalError('expired', requestedOperation, 'server returned unparseable expiresAt');
|
|
97
100
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
101
|
+
/* eslint-disable no-await-in-loop -- polling loop; each iteration must complete before the next */
|
|
102
|
+
while (true) {
|
|
103
|
+
if (signal?.aborted) {
|
|
104
|
+
throw new errors_1.RechallengeAbortedError(requestedOperation);
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
await (0, promises_1.setTimeout)(interval, undefined, { signal });
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
throw new errors_1.RechallengeAbortedError(requestedOperation);
|
|
111
|
+
}
|
|
112
|
+
if (!Number.isNaN(deadline) && Date.now() > deadline) {
|
|
113
|
+
throw new errors_1.RechallengeTerminalError('expired', requestedOperation, 'session window elapsed before completion');
|
|
114
|
+
}
|
|
115
|
+
const status = await client.getSessionStatus({
|
|
116
|
+
template: rechallenge.statusPathTemplate,
|
|
117
|
+
challengeId: session.challengeId,
|
|
118
|
+
scope: requestedOperation,
|
|
119
|
+
});
|
|
120
|
+
if (!TERMINAL.has(status.status)) {
|
|
121
|
+
debug('still %s; polling again', status.status);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (status.status === 'verified') {
|
|
125
|
+
await (0, tracker_1.trackEvent)('rechallenge_verified', {
|
|
126
|
+
scope: requestedOperation,
|
|
127
|
+
provider: status.provider ?? 'unknown',
|
|
128
|
+
});
|
|
129
|
+
const { elevatedToken } = await client.exchange({
|
|
130
|
+
template: rechallenge.exchangePathTemplate,
|
|
131
|
+
challengeId: session.challengeId,
|
|
132
|
+
scope: requestedOperation,
|
|
133
|
+
});
|
|
134
|
+
await (0, tracker_1.trackEvent)('rechallenge_exchanged', { scope: requestedOperation });
|
|
135
|
+
await token_cache_1.default.set(requestedOperation, {
|
|
136
|
+
...elevatedToken,
|
|
137
|
+
headerName: rechallenge.elevatedHeaderName,
|
|
138
|
+
});
|
|
139
|
+
return elevatedToken;
|
|
140
|
+
}
|
|
141
|
+
await (0, tracker_1.trackEvent)(`rechallenge_${status.status}`, {
|
|
142
|
+
scope: requestedOperation,
|
|
143
|
+
});
|
|
144
|
+
throw new errors_1.RechallengeTerminalError(status.status, requestedOperation, status.statusReason?.message);
|
|
118
145
|
}
|
|
119
|
-
|
|
120
|
-
scope: requestedOperation
|
|
121
|
-
});
|
|
122
|
-
throw new _errors.RechallengeTerminalError(status.status, requestedOperation, status.statusReason?.message);
|
|
123
|
-
}
|
|
124
|
-
/* eslint-enable no-await-in-loop */
|
|
146
|
+
/* eslint-enable no-await-in-loop */
|
|
125
147
|
}
|
|
126
148
|
function isInteractiveContext(argvOrFlags = process.argv) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
149
|
+
if (process.env.VIP_NON_INTERACTIVE === '1') {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
if (argvOrFlags.some(item => item === '--non-interactive' ||
|
|
153
|
+
(item.startsWith('--non-interactive=') &&
|
|
154
|
+
!/^--non-interactive=(0|false|no|off)$/i.test(item)))) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
return Boolean(process.stdout.isTTY);
|
|
134
158
|
}
|
|
135
|
-
|
|
136
159
|
// Opt-in for waiting on step-up in a non-interactive session: the operator can
|
|
137
160
|
// complete browser verification on another device while the command polls.
|
|
138
161
|
// Mirrors isInteractiveContext's argv/env detection because the rechallenge link
|
|
139
162
|
// is instantiated globally and cannot read a command's parsed options.
|
|
140
163
|
function shouldWaitForRechallenge(argvOrFlags = process.argv) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
164
|
+
if (process.env.VIP_RECHALLENGE_WAIT === '1') {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
return argvOrFlags.some(item => item === '--rechallenge-wait' ||
|
|
168
|
+
(item.startsWith('--rechallenge-wait=') &&
|
|
169
|
+
!/^--rechallenge-wait=(0|false|no|off)$/i.test(item)));
|
|
170
|
+
}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
7
15
|
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
20
|
exports.tokenCache = exports.rechallengeLink = void 0;
|
|
9
|
-
var
|
|
10
|
-
exports
|
|
11
|
-
var
|
|
12
|
-
exports
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (key === "default" || key === "__esModule") return;
|
|
16
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
-
if (key in exports && exports[key] === _types[key]) return;
|
|
18
|
-
exports[key] = _types[key];
|
|
19
|
-
});
|
|
20
|
-
var _errors = require("./errors");
|
|
21
|
-
Object.keys(_errors).forEach(function (key) {
|
|
22
|
-
if (key === "default" || key === "__esModule") return;
|
|
23
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
24
|
-
if (key in exports && exports[key] === _errors[key]) return;
|
|
25
|
-
exports[key] = _errors[key];
|
|
26
|
-
});
|
|
27
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
var link_1 = require("./link");
|
|
22
|
+
Object.defineProperty(exports, "rechallengeLink", { enumerable: true, get: function () { return __importDefault(link_1).default; } });
|
|
23
|
+
var token_cache_1 = require("./token-cache");
|
|
24
|
+
Object.defineProperty(exports, "tokenCache", { enumerable: true, get: function () { return __importDefault(token_cache_1).default; } });
|
|
25
|
+
__exportStar(require("./types"), exports);
|
|
26
|
+
__exportStar(require("./errors"), exports);
|