@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/token.js
CHANGED
|
@@ -1,102 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _keychain = require("./keychain");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SERVICE = void 0;
|
|
4
|
+
const jwt_decode_1 = require("jwt-decode");
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const constants_1 = require("./api/constants");
|
|
7
|
+
const keychain_1 = require("./keychain");
|
|
9
8
|
// Config
|
|
10
|
-
|
|
9
|
+
exports.SERVICE = 'vip-go-cli';
|
|
11
10
|
class Token {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
_raw;
|
|
12
|
+
_id;
|
|
13
|
+
iat;
|
|
14
|
+
exp;
|
|
15
|
+
constructor(token) {
|
|
16
|
+
if (!token) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
token = token.trim();
|
|
20
|
+
if (!token.length) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const decodedToken = (0, jwt_decode_1.jwtDecode)(token);
|
|
24
|
+
this._raw = token;
|
|
25
|
+
if (decodedToken.id) {
|
|
26
|
+
this._id = decodedToken.id;
|
|
27
|
+
}
|
|
28
|
+
if (decodedToken.iat) {
|
|
29
|
+
this.iat = new Date(decodedToken.iat * 1000);
|
|
30
|
+
}
|
|
31
|
+
if (decodedToken.exp) {
|
|
32
|
+
this.exp = new Date(decodedToken.exp * 1000);
|
|
33
|
+
}
|
|
19
34
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
valid() {
|
|
36
|
+
if (!this._id) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (!this.iat) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const now = new Date();
|
|
43
|
+
if (!this.exp) {
|
|
44
|
+
return now > this.iat;
|
|
45
|
+
}
|
|
46
|
+
return now > this.iat && now < this.exp;
|
|
23
47
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
expired() {
|
|
49
|
+
if (!this.exp) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
const now = new Date();
|
|
53
|
+
return now > this.exp;
|
|
28
54
|
}
|
|
29
|
-
|
|
30
|
-
|
|
55
|
+
get id() {
|
|
56
|
+
return this._id ?? NaN;
|
|
31
57
|
}
|
|
32
|
-
|
|
33
|
-
|
|
58
|
+
get raw() {
|
|
59
|
+
return this._raw ?? '';
|
|
34
60
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
static async uuid() {
|
|
62
|
+
const service = Token.getServiceName('-uuid');
|
|
63
|
+
const keychain = await (0, keychain_1.getKeychain)();
|
|
64
|
+
let _uuid = await keychain.getPassword(service);
|
|
65
|
+
if (!_uuid) {
|
|
66
|
+
_uuid = (0, node_crypto_1.randomUUID)();
|
|
67
|
+
await keychain.setPassword(service, _uuid);
|
|
68
|
+
}
|
|
69
|
+
return _uuid;
|
|
39
70
|
}
|
|
40
|
-
|
|
41
|
-
|
|
71
|
+
static async setUuid(_uuid) {
|
|
72
|
+
const service = Token.getServiceName('-uuid');
|
|
73
|
+
const keychain = await (0, keychain_1.getKeychain)();
|
|
74
|
+
await keychain.setPassword(service, _uuid);
|
|
42
75
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
76
|
+
static async set(token) {
|
|
77
|
+
const service = Token.getServiceName();
|
|
78
|
+
const keychain = await (0, keychain_1.getKeychain)();
|
|
79
|
+
return keychain.setPassword(service, token);
|
|
46
80
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
81
|
+
static async get() {
|
|
82
|
+
const service = Token.getServiceName();
|
|
83
|
+
const keychain = await (0, keychain_1.getKeychain)();
|
|
84
|
+
const token = await keychain.getPassword(service);
|
|
85
|
+
return new Token(token ?? '');
|
|
52
86
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return this._id ?? NaN;
|
|
58
|
-
}
|
|
59
|
-
get raw() {
|
|
60
|
-
return this._raw ?? '';
|
|
61
|
-
}
|
|
62
|
-
static async uuid() {
|
|
63
|
-
const service = Token.getServiceName('-uuid');
|
|
64
|
-
const keychain = await (0, _keychain.getKeychain)();
|
|
65
|
-
let _uuid = await keychain.getPassword(service);
|
|
66
|
-
if (!_uuid) {
|
|
67
|
-
_uuid = (0, _nodeCrypto.randomUUID)();
|
|
68
|
-
await keychain.setPassword(service, _uuid);
|
|
87
|
+
static async purge() {
|
|
88
|
+
const service = Token.getServiceName();
|
|
89
|
+
const keychain = await (0, keychain_1.getKeychain)();
|
|
90
|
+
return keychain.deletePassword(service);
|
|
69
91
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
static async set(token) {
|
|
78
|
-
const service = Token.getServiceName();
|
|
79
|
-
const keychain = await (0, _keychain.getKeychain)();
|
|
80
|
-
return keychain.setPassword(service, token);
|
|
81
|
-
}
|
|
82
|
-
static async get() {
|
|
83
|
-
const service = Token.getServiceName();
|
|
84
|
-
const keychain = await (0, _keychain.getKeychain)();
|
|
85
|
-
const token = await keychain.getPassword(service);
|
|
86
|
-
return new Token(token ?? '');
|
|
87
|
-
}
|
|
88
|
-
static async purge() {
|
|
89
|
-
const service = Token.getServiceName();
|
|
90
|
-
const keychain = await (0, _keychain.getKeychain)();
|
|
91
|
-
return keychain.deletePassword(service);
|
|
92
|
-
}
|
|
93
|
-
static getServiceName(modifier = '') {
|
|
94
|
-
let service = SERVICE;
|
|
95
|
-
if (_constants.PRODUCTION_API_HOST !== _constants.API_HOST) {
|
|
96
|
-
const sanitized = _constants.API_HOST.replace(/[^a-z0-9]/gi, '-');
|
|
97
|
-
service = `${SERVICE}:${sanitized}`;
|
|
92
|
+
static getServiceName(modifier = '') {
|
|
93
|
+
let service = exports.SERVICE;
|
|
94
|
+
if (constants_1.PRODUCTION_API_HOST !== constants_1.API_HOST) {
|
|
95
|
+
const sanitized = constants_1.API_HOST.replace(/[^a-z0-9]/gi, '-');
|
|
96
|
+
service = `${exports.SERVICE}:${sanitized}`;
|
|
97
|
+
}
|
|
98
|
+
return `${service}${modifier}`;
|
|
98
99
|
}
|
|
99
|
-
return `${service}${modifier}`;
|
|
100
|
-
}
|
|
101
100
|
}
|
|
102
|
-
exports.default = Token;
|
|
101
|
+
exports.default = Token;
|
package/dist/lib/tracker.js
CHANGED
|
@@ -1,79 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports
|
|
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
6
|
exports.trackEvent = trackEvent;
|
|
7
|
+
exports.aliasUser = aliasUser;
|
|
7
8
|
exports.trackEventWithEnv = trackEventWithEnv;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const debug = (0, _debug.default)('@automattic/vip:analytics');
|
|
9
|
+
exports.makeCommandTracker = makeCommandTracker;
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
11
|
+
const tracks_1 = __importDefault(require("./analytics/clients/tracks"));
|
|
12
|
+
const index_1 = __importDefault(require("./analytics/index"));
|
|
13
|
+
const env_1 = __importDefault(require("./env"));
|
|
14
|
+
const config_1 = __importDefault(require("../lib/cli/config"));
|
|
15
|
+
const token_1 = __importDefault(require("../lib/token"));
|
|
16
|
+
const debug = (0, debug_1.default)('@automattic/vip:analytics');
|
|
17
17
|
let analytics = null;
|
|
18
18
|
async function init() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
env: _env.default,
|
|
27
|
-
eventPrefix: tracksEventPrefix,
|
|
28
|
-
userId: uuid
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
|
-
return new _index.default(clients);
|
|
19
|
+
const uuid = await token_1.default.uuid();
|
|
20
|
+
const tracksUserType = config_1.default.tracksUserType;
|
|
21
|
+
const tracksEventPrefix = config_1.default.tracksEventPrefix;
|
|
22
|
+
if (!tracksUserType || !tracksEventPrefix) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return new index_1.default(new tracks_1.default(uuid, tracksUserType, tracksEventPrefix, env_1.default));
|
|
32
26
|
}
|
|
33
27
|
async function getInstance() {
|
|
34
|
-
|
|
28
|
+
if (analytics) {
|
|
29
|
+
return analytics;
|
|
30
|
+
}
|
|
31
|
+
analytics = await init();
|
|
35
32
|
return analytics;
|
|
36
|
-
}
|
|
37
|
-
analytics = await init();
|
|
38
|
-
return analytics;
|
|
39
33
|
}
|
|
40
34
|
async function trackEvent(name, props = {}) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
try {
|
|
36
|
+
await token_1.default.uuid();
|
|
37
|
+
const client = await getInstance();
|
|
38
|
+
return client ? await client.trackEvent(name, props) : false;
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
debug('trackEvent() failed', err);
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
49
44
|
}
|
|
50
45
|
async function aliasUser(vipUserId) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
46
|
+
if (vipUserId) {
|
|
47
|
+
try {
|
|
48
|
+
await trackEvent('_alias_user', {
|
|
49
|
+
ui: vipUserId,
|
|
50
|
+
_ut: config_1.default.tracksUserType,
|
|
51
|
+
anonid: await token_1.default.uuid(),
|
|
52
|
+
});
|
|
53
|
+
await token_1.default.setUuid(`${vipUserId}`);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
debug('aliasUser() failed', err);
|
|
57
|
+
}
|
|
61
58
|
}
|
|
62
|
-
}
|
|
63
59
|
}
|
|
64
60
|
function trackEventWithEnv(appId, envId, eventName, eventProps = {}) {
|
|
65
|
-
|
|
66
|
-
...eventProps,
|
|
67
|
-
app_id: appId,
|
|
68
|
-
env_id: envId
|
|
69
|
-
});
|
|
61
|
+
return trackEvent(eventName, { ...eventProps, app_id: appId, env_id: envId });
|
|
70
62
|
}
|
|
71
63
|
function makeCommandTracker(command, trackingInfo = {}) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
return trackerFn;
|
|
79
|
-
}
|
|
64
|
+
const trackerFn = async (type, data = {}) => {
|
|
65
|
+
await trackEvent(`${command}_command_${type}`, { ...trackingInfo, ...data });
|
|
66
|
+
};
|
|
67
|
+
return trackerFn;
|
|
68
|
+
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/lib/types.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/lib/user-error.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
3
|
class UserError extends Error {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
constructor(message, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.name = 'UserError';
|
|
7
|
+
}
|
|
10
8
|
}
|
|
11
|
-
exports.default = UserError;
|
|
9
|
+
exports.default = UserError;
|
package/dist/lib/utils.js
CHANGED
|
@@ -1,41 +1,40 @@
|
|
|
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.PollingTimeoutError = void 0;
|
|
5
|
-
exports.
|
|
7
|
+
exports.pollUntil = pollUntil;
|
|
6
8
|
exports.makeTempDir = makeTempDir;
|
|
9
|
+
exports.getAbsolutePath = getAbsolutePath;
|
|
7
10
|
exports.parseApiError = parseApiError;
|
|
8
|
-
exports.pollUntil = pollUntil;
|
|
9
11
|
exports.splitKeyValueString = splitKeyValueString;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
const debug_1 = __importDefault(require("debug"));
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
const promises_1 = require("node:timers/promises");
|
|
15
|
+
const os_1 = __importDefault(require("os"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const debug = (0, debug_1.default)('@automattic/vip:lib:utils');
|
|
18
|
+
class PollingTimeoutError extends Error {
|
|
19
|
+
}
|
|
20
|
+
exports.PollingTimeoutError = PollingTimeoutError;
|
|
19
21
|
/**
|
|
20
22
|
* Polls a function until its return value satisfies a condition
|
|
21
23
|
*/
|
|
22
|
-
exports.PollingTimeoutError = PollingTimeoutError;
|
|
23
24
|
async function pollUntil(fn, interval, isDone, timeoutMs = 6 * 60 * 60 * 1000 // Default to 6 hours
|
|
24
25
|
) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const startTime = Date.now();
|
|
27
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
28
|
+
// eslint-disable-next-line no-await-in-loop
|
|
29
|
+
const result = await fn();
|
|
30
|
+
if (isDone(result)) {
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
// eslint-disable-next-line no-await-in-loop
|
|
34
|
+
await (0, promises_1.setTimeout)(interval);
|
|
31
35
|
}
|
|
32
|
-
|
|
33
|
-
// eslint-disable-next-line no-await-in-loop
|
|
34
|
-
await (0, _promises.setTimeout)(interval);
|
|
35
|
-
}
|
|
36
|
-
throw new PollingTimeoutError('Polling timed out');
|
|
36
|
+
throw new PollingTimeoutError('Polling timed out');
|
|
37
37
|
}
|
|
38
|
-
|
|
39
38
|
/**
|
|
40
39
|
* Create a temporary directory in the system's temp directory
|
|
41
40
|
*
|
|
@@ -44,23 +43,19 @@ async function pollUntil(fn, interval, isDone, timeoutMs = 6 * 60 * 60 * 1000 //
|
|
|
44
43
|
* @throws {Error} If the directory cannot be created
|
|
45
44
|
*/
|
|
46
45
|
function makeTempDir(prefix = 'vip-cli') {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return tempDir;
|
|
46
|
+
const tempDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), `${prefix}-`));
|
|
47
|
+
debug(`Created a directory to hold temporary files: ${tempDir}`);
|
|
48
|
+
process.on('exit', () => {
|
|
49
|
+
try {
|
|
50
|
+
fs_1.default.rmSync(tempDir, { recursive: true, force: true, maxRetries: 10 });
|
|
51
|
+
debug(`Removed temporary directory: ${tempDir}`);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.warn(`Failed to remove temporary directory ${tempDir} (${err.message})`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return tempDir;
|
|
62
58
|
}
|
|
63
|
-
|
|
64
59
|
/**
|
|
65
60
|
* Get absolute path to a file
|
|
66
61
|
*
|
|
@@ -69,15 +64,14 @@ function makeTempDir(prefix = 'vip-cli') {
|
|
|
69
64
|
* @return {string} Absolute path to the file
|
|
70
65
|
*/
|
|
71
66
|
function getAbsolutePath(filePath) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
67
|
+
if (filePath.startsWith('~')) {
|
|
68
|
+
return filePath.replace('~', os_1.default.homedir());
|
|
69
|
+
}
|
|
70
|
+
if (!path_1.default.isAbsolute(filePath)) {
|
|
71
|
+
return path_1.default.resolve(process.cwd(), filePath);
|
|
72
|
+
}
|
|
73
|
+
return filePath;
|
|
79
74
|
}
|
|
80
|
-
|
|
81
75
|
/**
|
|
82
76
|
* Extract a message from a raw HTTP response body (Apollo's `ServerError.bodyText`).
|
|
83
77
|
*
|
|
@@ -86,18 +80,19 @@ function getAbsolutePath(filePath) {
|
|
|
86
80
|
* `{"errors":[{"message":"..."}]}` payload.
|
|
87
81
|
*/
|
|
88
82
|
function parseJSONBodyErrorMessage(bodyText) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
try {
|
|
84
|
+
const body = JSON.parse(bodyText);
|
|
85
|
+
if (body?.errors?.[0]?.message) {
|
|
86
|
+
return body.errors[0].message;
|
|
87
|
+
}
|
|
88
|
+
if (body?.message) {
|
|
89
|
+
return body.message;
|
|
90
|
+
}
|
|
93
91
|
}
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
catch {
|
|
93
|
+
// Body wasn't JSON; nothing to extract.
|
|
96
94
|
}
|
|
97
|
-
|
|
98
|
-
// Body wasn't JSON; nothing to extract.
|
|
99
|
-
}
|
|
100
|
-
return null;
|
|
95
|
+
return null;
|
|
101
96
|
}
|
|
102
97
|
/**
|
|
103
98
|
* Parse error object and return probable error.
|
|
@@ -106,33 +101,32 @@ function parseJSONBodyErrorMessage(bodyText) {
|
|
|
106
101
|
* error), so callers do not need to cast before passing it in.
|
|
107
102
|
*/
|
|
108
103
|
function parseApiError(error) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Apollo's `ServerError` exposes the raw HTTP response body as `bodyText`,
|
|
118
|
-
// which often holds a more specific message than the generic top-level one.
|
|
119
|
-
if (typeof err?.bodyText === 'string') {
|
|
120
|
-
const bodyTextMessage = parseJSONBodyErrorMessage(err.bodyText);
|
|
121
|
-
if (bodyTextMessage) {
|
|
122
|
-
return bodyTextMessage;
|
|
104
|
+
const err = error;
|
|
105
|
+
if (err?.networkError?.message) {
|
|
106
|
+
return err?.networkError?.message;
|
|
107
|
+
}
|
|
108
|
+
if (err?.graphQLErrors?.[0]?.message) {
|
|
109
|
+
return err.graphQLErrors[0].message;
|
|
123
110
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
111
|
+
// Apollo's `ServerError` exposes the raw HTTP response body as `bodyText`,
|
|
112
|
+
// which often holds a more specific message than the generic top-level one.
|
|
113
|
+
if (typeof err?.bodyText === 'string') {
|
|
114
|
+
const bodyTextMessage = parseJSONBodyErrorMessage(err.bodyText);
|
|
115
|
+
if (bodyTextMessage) {
|
|
116
|
+
return bodyTextMessage;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (err?.message) {
|
|
120
|
+
return err?.message;
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
129
123
|
}
|
|
130
124
|
function splitKeyValueString(str, delimiter = '=') {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
125
|
+
const delimiterIndex = str.indexOf(delimiter);
|
|
126
|
+
if (delimiterIndex === -1) {
|
|
127
|
+
return [str.trim(), ''];
|
|
128
|
+
}
|
|
129
|
+
const key = str.slice(0, delimiterIndex).trim();
|
|
130
|
+
const value = str.slice(delimiterIndex + delimiter.length).trim();
|
|
131
|
+
return [key, value];
|
|
132
|
+
}
|