@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,31 +1,60 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
2
|
"use strict";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
40
|
exports.promptToContinue = promptToContinue;
|
|
11
|
-
|
|
12
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
13
|
-
var _enquirer = require("enquirer");
|
|
14
|
-
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
15
|
-
var _api = _interopRequireDefault(require("../lib/api"));
|
|
16
|
-
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
17
|
-
var exit = _interopRequireWildcard(require("../lib/cli/exit"));
|
|
18
|
-
var _format = require("../lib/cli/format");
|
|
19
|
-
var _progress = require("../lib/cli/progress");
|
|
20
|
-
var _clientFileUploader = require("../lib/client-file-uploader");
|
|
21
|
-
var _customDeploy = require("../lib/custom-deploy/custom-deploy");
|
|
22
|
-
var _tracker = require("../lib/tracker");
|
|
23
|
-
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); }
|
|
24
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
41
|
+
exports.appDeployCmd = appDeployCmd;
|
|
25
42
|
/**
|
|
26
|
-
*
|
|
43
|
+
* External dependencies
|
|
27
44
|
*/
|
|
28
|
-
const
|
|
45
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
46
|
+
const debug_1 = __importDefault(require("debug"));
|
|
47
|
+
const enquirer_1 = require("enquirer");
|
|
48
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
49
|
+
const api_1 = __importDefault(require("../lib/api"));
|
|
50
|
+
const command_1 = __importDefault(require("../lib/cli/command"));
|
|
51
|
+
const exit = __importStar(require("../lib/cli/exit"));
|
|
52
|
+
const format_1 = require("../lib/cli/format");
|
|
53
|
+
const progress_1 = require("../lib/cli/progress");
|
|
54
|
+
const client_file_uploader_1 = require("../lib/client-file-uploader");
|
|
55
|
+
const custom_deploy_1 = require("../lib/custom-deploy/custom-deploy");
|
|
56
|
+
const tracker_1 = require("../lib/tracker");
|
|
57
|
+
const START_DEPLOY_MUTATION = (0, graphql_tag_1.default) `
|
|
29
58
|
mutation StartCustomDeploy($input: AppEnvironmentCustomDeployInput) {
|
|
30
59
|
startCustomDeploy(input: $input) {
|
|
31
60
|
success
|
|
@@ -33,210 +62,188 @@ const START_DEPLOY_MUTATION = (0, _graphqlTag.default)`
|
|
|
33
62
|
}
|
|
34
63
|
}
|
|
35
64
|
`;
|
|
36
|
-
const debug = (0,
|
|
65
|
+
const debug = (0, debug_1.default)('@automattic/vip:bin:vip-app-deploy');
|
|
37
66
|
const baseUsage = 'vip app deploy';
|
|
38
|
-
const DEPLOY_PREFLIGHT_PROGRESS_STEPS = [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
id: 'deploy',
|
|
43
|
-
name: 'Triggering deployment'
|
|
44
|
-
}];
|
|
67
|
+
const DEPLOY_PREFLIGHT_PROGRESS_STEPS = [
|
|
68
|
+
{ id: 'upload', name: 'Uploading file' },
|
|
69
|
+
{ id: 'deploy', name: 'Triggering deployment' },
|
|
70
|
+
];
|
|
45
71
|
/**
|
|
46
72
|
* Prompt the user to confirm the environment they are deploying to.
|
|
47
73
|
* @param {PromptToContinueParams} PromptToContinueParams
|
|
48
74
|
*/
|
|
49
75
|
async function promptToContinue(params) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
76
|
+
const promptToMatch = params.domain.toUpperCase();
|
|
77
|
+
const promptResponse = await (0, enquirer_1.prompt)({
|
|
78
|
+
type: 'input',
|
|
79
|
+
name: 'confirmedDomain',
|
|
80
|
+
message: `You are about to deploy to a ${params.launched ? 'launched' : 'un-launched'} ${params.formattedEnvironment} site ${chalk_1.default.yellow(params.domain)}.\nType '${chalk_1.default.yellow(promptToMatch)}' (without the quotes) to continue:\n`,
|
|
81
|
+
});
|
|
82
|
+
if (promptResponse.confirmedDomain.toUpperCase() !== promptToMatch) {
|
|
83
|
+
await params.track('deploy_app_unexpected_input');
|
|
84
|
+
exit.withError('The input did not match the expected environment label. Deploy aborted.');
|
|
85
|
+
}
|
|
60
86
|
}
|
|
61
87
|
async function appDeployCmd(arg = [], opts = {}) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
appId,
|
|
71
|
-
envId
|
|
72
|
-
...
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
* It will break the progress printing.
|
|
110
|
-
*
|
|
111
|
-
* =========== WARNING =============
|
|
112
|
-
*/
|
|
113
|
-
const progressTracker = new _progress.ProgressTracker(DEPLOY_PREFLIGHT_PROGRESS_STEPS);
|
|
114
|
-
let status = 'running';
|
|
115
|
-
const setProgressTrackerPrefixAndSuffix = () => {
|
|
116
|
-
progressTracker.prefix = `
|
|
88
|
+
const app = opts.app;
|
|
89
|
+
const env = opts.env;
|
|
90
|
+
const [fileName] = arg;
|
|
91
|
+
const fileMeta = await (0, client_file_uploader_1.getFileMeta)(fileName);
|
|
92
|
+
debug('Options: ', opts);
|
|
93
|
+
debug('Args: ', arg);
|
|
94
|
+
debug('Validating custom deploy key...');
|
|
95
|
+
const { appId, envId, ...validatedArgs } = await (0, custom_deploy_1.validateCustomDeployKey)(app, env);
|
|
96
|
+
debug('Validated environment data: ', { appId, envId, validatedArgs });
|
|
97
|
+
const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
|
|
98
|
+
debug('Validating file...');
|
|
99
|
+
await (0, custom_deploy_1.validateFile)(appId, envId, fileMeta);
|
|
100
|
+
if (!opts.skipLargeFileValidation) {
|
|
101
|
+
await (0, custom_deploy_1.validateLargeArchiveFiles)(appId, envId, fileMeta);
|
|
102
|
+
}
|
|
103
|
+
await track('deploy_app_command_execute');
|
|
104
|
+
// Upload file as different name to avoid overwriting existing same named files
|
|
105
|
+
const datePrefix = new Date()
|
|
106
|
+
.toISOString()
|
|
107
|
+
// eslint-disable-next-line no-useless-escape
|
|
108
|
+
.replace(/[\-T:\.Z]/g, '')
|
|
109
|
+
.slice(0, 14);
|
|
110
|
+
fileMeta.basename = `${datePrefix}-${fileMeta.basename}`;
|
|
111
|
+
const deployMessage = opts.message ?? '';
|
|
112
|
+
const skipConfirm = opts.force || opts.skipConfirmation;
|
|
113
|
+
if (!skipConfirm) {
|
|
114
|
+
const promptParams = {
|
|
115
|
+
launched: Boolean(validatedArgs.launched),
|
|
116
|
+
formattedEnvironment: (0, format_1.formatEnvironment)(validatedArgs.envType),
|
|
117
|
+
track,
|
|
118
|
+
domain: validatedArgs.primaryDomainName,
|
|
119
|
+
};
|
|
120
|
+
await promptToContinue(promptParams);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* =========== WARNING =============
|
|
124
|
+
*
|
|
125
|
+
* NO `console.log` after this point!
|
|
126
|
+
* Yes, even inside called functions.
|
|
127
|
+
* It will break the progress printing.
|
|
128
|
+
*
|
|
129
|
+
* =========== WARNING =============
|
|
130
|
+
*/
|
|
131
|
+
const progressTracker = new progress_1.ProgressTracker(DEPLOY_PREFLIGHT_PROGRESS_STEPS);
|
|
132
|
+
let status = 'running';
|
|
133
|
+
const setProgressTrackerPrefixAndSuffix = () => {
|
|
134
|
+
progressTracker.prefix = `
|
|
117
135
|
=============================================================
|
|
118
136
|
Processing the file for deployment to your environment...
|
|
119
137
|
`;
|
|
120
|
-
|
|
121
|
-
};
|
|
122
|
-
const failWithError = failureError => {
|
|
123
|
-
status = 'failed';
|
|
124
|
-
setProgressTrackerPrefixAndSuffix();
|
|
125
|
-
progressTracker.stopPrinting();
|
|
126
|
-
progressTracker.print({
|
|
127
|
-
clearAfter: true
|
|
128
|
-
});
|
|
129
|
-
exit.withError(failureError);
|
|
130
|
-
};
|
|
131
|
-
progressTracker.startPrinting(setProgressTrackerPrefixAndSuffix);
|
|
132
|
-
progressTracker.stepRunning('upload');
|
|
133
|
-
|
|
134
|
-
// Call the Public API
|
|
135
|
-
const api = (0, _api.default)();
|
|
136
|
-
const progressCallback = percentage => {
|
|
137
|
-
progressTracker.setUploadPercentage(percentage);
|
|
138
|
-
};
|
|
139
|
-
const appInput = {
|
|
140
|
-
id: appId
|
|
141
|
-
};
|
|
142
|
-
const envInput = {
|
|
143
|
-
id: envId
|
|
144
|
-
};
|
|
145
|
-
const uploadParams = {
|
|
146
|
-
app: appInput,
|
|
147
|
-
env: envInput,
|
|
148
|
-
fileMeta,
|
|
149
|
-
progressCallback,
|
|
150
|
-
hashType: 'sha256'
|
|
151
|
-
};
|
|
152
|
-
const startDeployVariables = {
|
|
153
|
-
input: {}
|
|
154
|
-
};
|
|
155
|
-
try {
|
|
156
|
-
const {
|
|
157
|
-
fileMeta: {
|
|
158
|
-
basename
|
|
159
|
-
},
|
|
160
|
-
checksum,
|
|
161
|
-
result
|
|
162
|
-
} = await (0, _clientFileUploader.uploadImportFileToS3)(uploadParams);
|
|
163
|
-
startDeployVariables.input = {
|
|
164
|
-
id: appId,
|
|
165
|
-
environmentId: envId,
|
|
166
|
-
basename: fileMeta.basename,
|
|
167
|
-
checksum,
|
|
168
|
-
deployMessage
|
|
138
|
+
progressTracker.suffix = `\n${(0, format_1.getGlyphForStatus)(status, progressTracker.runningSprite)} Running...`;
|
|
169
139
|
};
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
progressTracker.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
140
|
+
const failWithError = (failureError) => {
|
|
141
|
+
status = 'failed';
|
|
142
|
+
setProgressTrackerPrefixAndSuffix();
|
|
143
|
+
progressTracker.stopPrinting();
|
|
144
|
+
progressTracker.print({ clearAfter: true });
|
|
145
|
+
exit.withError(failureError);
|
|
146
|
+
};
|
|
147
|
+
progressTracker.startPrinting(setProgressTrackerPrefixAndSuffix);
|
|
148
|
+
progressTracker.stepRunning('upload');
|
|
149
|
+
// Call the Public API
|
|
150
|
+
const api = (0, api_1.default)();
|
|
151
|
+
const progressCallback = (percentage) => {
|
|
152
|
+
progressTracker.setUploadPercentage(percentage);
|
|
153
|
+
};
|
|
154
|
+
const appInput = { id: appId };
|
|
155
|
+
const envInput = { id: envId };
|
|
156
|
+
const uploadParams = {
|
|
157
|
+
app: appInput,
|
|
158
|
+
env: envInput,
|
|
159
|
+
fileMeta,
|
|
160
|
+
progressCallback,
|
|
161
|
+
hashType: 'sha256',
|
|
162
|
+
};
|
|
163
|
+
const startDeployVariables = { input: {} };
|
|
164
|
+
try {
|
|
165
|
+
const { fileMeta: { basename }, checksum, result, } = await (0, client_file_uploader_1.uploadImportFileToS3)(uploadParams);
|
|
166
|
+
startDeployVariables.input = {
|
|
167
|
+
id: appId,
|
|
168
|
+
environmentId: envId,
|
|
169
|
+
basename: fileMeta.basename,
|
|
170
|
+
checksum,
|
|
171
|
+
deployMessage,
|
|
172
|
+
};
|
|
173
|
+
debug({ basename, checksum, result, startDeployVariables });
|
|
174
|
+
debug('Upload complete. Initiating the deploy.');
|
|
175
|
+
progressTracker.stepSuccess('upload');
|
|
176
|
+
await track('deploy_app_upload_complete');
|
|
177
|
+
}
|
|
178
|
+
catch (uploadError) {
|
|
179
|
+
await track('deploy_app_command_error', {
|
|
180
|
+
error_type: 'upload_failed',
|
|
181
|
+
upload_error: uploadError.message,
|
|
182
|
+
});
|
|
183
|
+
progressTracker.stepFailed('upload');
|
|
184
|
+
return failWithError(uploadError);
|
|
185
|
+
}
|
|
186
|
+
progressTracker.stepRunning('deploy');
|
|
187
|
+
// Start the deploy
|
|
188
|
+
try {
|
|
189
|
+
const WPVIP_DEPLOY_TOKEN = process.env.WPVIP_DEPLOY_TOKEN;
|
|
190
|
+
const startDeployResults = await api.mutate({
|
|
191
|
+
mutation: START_DEPLOY_MUTATION,
|
|
192
|
+
variables: startDeployVariables,
|
|
193
|
+
context: {
|
|
194
|
+
headers: {
|
|
195
|
+
Authorization: `Bearer ${WPVIP_DEPLOY_TOKEN}`,
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
debug({ startDeployResults });
|
|
200
|
+
}
|
|
201
|
+
catch (gqlErr) {
|
|
202
|
+
progressTracker.stepFailed('deploy');
|
|
203
|
+
await track('deploy_app_command_error', {
|
|
204
|
+
error_type: 'StartDeploy-failed',
|
|
205
|
+
gql_err: gqlErr,
|
|
206
|
+
});
|
|
207
|
+
progressTracker.stepFailed('deploy');
|
|
208
|
+
return failWithError(`StartDeploy call failed: ${gqlErr.message}`);
|
|
209
|
+
}
|
|
210
|
+
progressTracker.stepSuccess('deploy');
|
|
211
|
+
progressTracker.stopPrinting();
|
|
212
|
+
progressTracker.suffix = '';
|
|
213
|
+
progressTracker.print({ clearAfter: true });
|
|
214
|
+
const deploymentsUrl = `https://dashboard.wpvip.com/apps/${appId}/${validatedArgs.envUniqueLabel}/code/deployments`;
|
|
215
|
+
console.log(`\n✅ ${chalk_1.default.bold(chalk_1.default.underline(chalk_1.default.magenta(fileMeta.basename)))} has been sent for deployment to ${chalk_1.default.bold(chalk_1.default.blue(validatedArgs.primaryDomainName))}. \nTo check deployment status, go to ${chalk_1.default.bold('VIP Dashboard')}: ${deploymentsUrl}`);
|
|
221
216
|
}
|
|
222
|
-
|
|
223
217
|
// Command examples for the `vip deploy app` help prompt
|
|
224
218
|
const examples = [
|
|
225
|
-
// `app` subcommand
|
|
226
|
-
{
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
219
|
+
// `app` subcommand
|
|
220
|
+
{
|
|
221
|
+
usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip',
|
|
222
|
+
description: 'Deploy a local archived file named "file.zip" that contains application code to a VIP Platform environment that has Custom Deployment enabled.',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tgz --message="A description for this deploy"',
|
|
226
|
+
description: 'Add a descriptive message for the Custom Deployment of the archived file named "file.tgz".',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.tar.gz --skip-confirmation',
|
|
230
|
+
description: 'Skip the confirmation prompt for the Custom Deployment of the archived file named "file.tar.gz" to the environment.',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
usage: 'WPVIP_DEPLOY_TOKEN=1234 vip @example-app.develop app deploy file.zip --skip-large-file-validation',
|
|
234
|
+
description: 'Skip checking the deploy archive for repository archive files larger than 20 MB.',
|
|
235
|
+
},
|
|
236
|
+
];
|
|
237
|
+
void (0, command_1.default)({
|
|
238
|
+
requiredArgs: 1,
|
|
239
|
+
usage: baseUsage,
|
|
240
|
+
})
|
|
241
|
+
.command('validate', 'Validate the directory structure of an archived file.')
|
|
242
|
+
.examples(examples)
|
|
243
|
+
.option('message', 'Add a description of a deployment.')
|
|
244
|
+
.option('skip-confirmation', 'Skip the confirmation prompt.')
|
|
245
|
+
.option('skip-large-file-validation', 'Skip checking for repository archive files over 20 MB.', false)
|
|
246
|
+
.option('force', 'Skip confirmation prompt (deprecated)')
|
|
247
|
+
.option('app', 'Target an application. Accepts a string value for the application name or an integer for the application ID.')
|
|
248
|
+
.option('env', 'Target an environment. Accepts a string value for the environment type.')
|
|
249
|
+
.argv(process.argv, appDeployCmd);
|
package/dist/bin/vip-app-list.js
CHANGED
|
@@ -1,25 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
+
const api_1 = __importDefault(require("../lib/api"));
|
|
9
|
+
const command_1 = __importDefault(require("../lib/cli/command"));
|
|
10
|
+
const tracker_1 = require("../lib/tracker");
|
|
9
11
|
const baseUsage = 'vip app list';
|
|
10
|
-
(0,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
(0, command_1.default)({ format: true, usage: baseUsage })
|
|
13
|
+
.examples([
|
|
14
|
+
{
|
|
15
|
+
usage: baseUsage +
|
|
16
|
+
'\n' +
|
|
17
|
+
' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
|
|
18
|
+
' - │ id │ name │ repo │\n' +
|
|
19
|
+
' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
|
|
20
|
+
' - │ 8886 │ example-app │ wpcomvip/my-org-example-app │\n' +
|
|
21
|
+
' - ┌──────┬─────────────────┬─────────────────────────────────┐\n' +
|
|
22
|
+
' - │ 4325 │ mytestmultisite │ wpcomvip/my-org-mytestmultisite │\n' +
|
|
23
|
+
' - └──────┴─────────────────┴─────────────────────────────────┘\n',
|
|
24
|
+
description: 'Retrieve a list of applications that can be accessed by the current authenticated VIP-CLI user.',
|
|
25
|
+
},
|
|
26
|
+
])
|
|
27
|
+
.argv(process.argv, async () => {
|
|
28
|
+
const api = (0, api_1.default)();
|
|
29
|
+
await (0, tracker_1.trackEvent)('app_list_command_execute');
|
|
30
|
+
let response;
|
|
31
|
+
try {
|
|
32
|
+
response = await api.query({
|
|
33
|
+
query: (0, graphql_tag_1.default) `
|
|
23
34
|
query Apps($first: Int, $after: String) {
|
|
24
35
|
apps(first: $first, after: $after) {
|
|
25
36
|
total
|
|
@@ -32,27 +43,32 @@ const baseUsage = 'vip app list';
|
|
|
32
43
|
}
|
|
33
44
|
}
|
|
34
45
|
`,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
variables: {
|
|
47
|
+
first: 100,
|
|
48
|
+
after: null, // TODO make dynamic
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
const message = err.toString();
|
|
54
|
+
await (0, tracker_1.trackEvent)('app_list_command_fetch_error', {
|
|
55
|
+
error: message,
|
|
56
|
+
});
|
|
57
|
+
console.log('Failed to fetch apps: %s', message);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!response ||
|
|
61
|
+
!response.data ||
|
|
62
|
+
!response.data.apps ||
|
|
63
|
+
!response.data.apps.edges ||
|
|
64
|
+
!response.data.apps.edges.length) {
|
|
65
|
+
const message = 'No apps found';
|
|
66
|
+
await (0, tracker_1.trackEvent)('app_list_command_fetch_error', {
|
|
67
|
+
error: message,
|
|
68
|
+
});
|
|
69
|
+
console.log(message);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
await (0, tracker_1.trackEvent)('app_list_command_success');
|
|
73
|
+
return response.data.apps.edges;
|
|
74
|
+
});
|