@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,19 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 core_1 = require("@apollo/client/core");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const debug_1 = __importDefault(require("debug"));
|
|
10
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
11
|
+
const api_1 = __importDefault(require("../lib/api"));
|
|
12
|
+
const command_1 = __importDefault(require("../lib/cli/command"));
|
|
13
|
+
const format_1 = require("../lib/cli/format");
|
|
14
|
+
const client_file_uploader_1 = require("../lib/client-file-uploader");
|
|
15
|
+
const progress_1 = require("../lib/media-import/progress");
|
|
16
|
+
const status_1 = require("../lib/media-import/status");
|
|
17
|
+
const utils_1 = require("../lib/media-import/utils");
|
|
18
|
+
const tracker_1 = require("../lib/tracker");
|
|
17
19
|
const API_VERSION = 'v2';
|
|
18
20
|
const appQuery = `
|
|
19
21
|
id,
|
|
@@ -28,7 +30,7 @@ const appQuery = `
|
|
|
28
30
|
primaryDomain { name }
|
|
29
31
|
}
|
|
30
32
|
`;
|
|
31
|
-
const START_IMPORT_MUTATION = (0,
|
|
33
|
+
const START_IMPORT_MUTATION = (0, graphql_tag_1.default) `
|
|
32
34
|
mutation StartMediaImport($input: AppEnvironmentStartMediaImportInput) {
|
|
33
35
|
startMediaImport(input: $input) {
|
|
34
36
|
applicationId
|
|
@@ -42,176 +44,173 @@ const START_IMPORT_MUTATION = (0, _graphqlTag.default)`
|
|
|
42
44
|
}
|
|
43
45
|
`;
|
|
44
46
|
const usage = 'vip import media';
|
|
45
|
-
const debug = (0,
|
|
46
|
-
|
|
47
|
+
const debug = (0, debug_1.default)('vip:vip-import-media');
|
|
47
48
|
// Support legacy direct invocation: when users run the built binary directly
|
|
48
49
|
// like `node ./dist/bin/vip-import-media.js @1234.production /path/to/archive.tar.gz --flag`
|
|
49
50
|
// inject the `import media` subcommand into process.argv so the command parser
|
|
50
51
|
// sees the same shape as the full CLI: `vip import media ...`.
|
|
51
|
-
|
|
52
52
|
// Command examples for the `vip import media` help prompt
|
|
53
|
-
const examples = [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
53
|
+
const examples = [
|
|
54
|
+
{
|
|
55
|
+
usage: 'vip @example-app.production import media /path/to/uploads.zip',
|
|
56
|
+
description: 'Import the archived file "uploads.zip" from the user\'s local machine to a production environment.',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
usage: 'vip @example-app.production import media https://example.com/uploads.tar.gz',
|
|
60
|
+
description: 'Import the archived file "uploads.tar.gz" from a publicly accessible URL to a production environment.',
|
|
61
|
+
},
|
|
62
|
+
// Format error logs
|
|
63
|
+
{
|
|
64
|
+
usage: 'vip @example-app.production import media https://example.com/uploads.tgz --overwriteExistingFiles --exportFileErrorsToJson',
|
|
65
|
+
description: 'Overwrite existing files with the imported files if they have the same file path and name, and format the error log for the import in JSON.',
|
|
66
|
+
},
|
|
67
|
+
// `media status` subcommand
|
|
68
|
+
{
|
|
69
|
+
usage: 'vip @example-app.production import media status',
|
|
70
|
+
description: 'Check the status of the most recent media import.',
|
|
71
|
+
},
|
|
72
|
+
// `media abort` subcommand
|
|
73
|
+
{
|
|
74
|
+
usage: 'vip @example-app.production import media abort',
|
|
75
|
+
description: 'Abort the currently running media import.',
|
|
76
|
+
},
|
|
77
|
+
];
|
|
75
78
|
function isSupportedUrl(urlToTest) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
let url;
|
|
80
|
+
try {
|
|
81
|
+
url = new URL(urlToTest);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
83
87
|
}
|
|
84
|
-
(0,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
${
|
|
93
|
-
${
|
|
94
|
-
${
|
|
88
|
+
(0, command_1.default)({
|
|
89
|
+
appContext: true,
|
|
90
|
+
appQuery,
|
|
91
|
+
envContext: true,
|
|
92
|
+
module: 'import-media',
|
|
93
|
+
requiredArgs: 1,
|
|
94
|
+
usage,
|
|
95
|
+
requireConfirm: `
|
|
96
|
+
${chalk_1.default.red.bold("NOTE: If the provided archive's directory structure contains an `uploads/` directory,")}
|
|
97
|
+
${chalk_1.default.red.bold('only the files present inside that directory will be imported and the rest will be ignored.')}
|
|
98
|
+
${chalk_1.default.red.bold('If no `uploads/` directory is found, all files will be imported, as is.')}
|
|
95
99
|
|
|
96
100
|
Are you sure you want to import the contents of the URL?
|
|
97
|
-
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
101
|
+
`,
|
|
102
|
+
})
|
|
103
|
+
.command('status', 'Check the status of a currently running media import or retrieve an error log of the most recent media import.')
|
|
104
|
+
.command('abort', 'Abort the media import currently in progress.')
|
|
105
|
+
.option('exportFileErrorsToJson', 'Format the error log in JSON. Default is TXT.')
|
|
106
|
+
.option('saveErrorLog', 'Skip the confirmation prompt and download an error log for the import automatically.')
|
|
107
|
+
.option('overwriteExistingFiles', 'Overwrite existing files with the imported files if they have the same path and file name.', false)
|
|
108
|
+
.option('importIntermediateImages', 'Include intermediate image files in the import.', false)
|
|
109
|
+
.examples(examples)
|
|
110
|
+
.argv(process.argv, async (args, opts) => {
|
|
111
|
+
const { app, env, exportFileErrorsToJson, saveErrorLog, overwriteExistingFiles, importIntermediateImages, } = opts;
|
|
112
|
+
const [fileNameOrURL] = args;
|
|
113
|
+
let url = '';
|
|
114
|
+
let sourceIsLocal = false;
|
|
115
|
+
if (String(fileNameOrURL).startsWith('http://') ||
|
|
116
|
+
String(fileNameOrURL).startsWith('https://')) {
|
|
117
|
+
url = fileNameOrURL;
|
|
118
|
+
// validate supported URL
|
|
119
|
+
if (!isSupportedUrl(url)) {
|
|
120
|
+
console.log(chalk_1.default.red(`
|
|
115
121
|
Error:
|
|
116
122
|
Invalid URL provided: ${url}
|
|
117
123
|
Please make sure that it is a publicly accessible web URL containing an archive of the media files to import.`));
|
|
118
|
-
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
119
126
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
else {
|
|
128
|
+
// treat as local archive path
|
|
129
|
+
if (!(await (0, utils_1.isLocalArchive)(fileNameOrURL))) {
|
|
130
|
+
console.log(chalk_1.default.red(`
|
|
124
131
|
Error:
|
|
125
132
|
Invalid local archive provided: ${fileNameOrURL}
|
|
126
133
|
Please make sure the file exists and is one of: .tar.gz, .tgz, .zip`));
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// upload archive to S3 and get presigned URL for import
|
|
131
|
-
sourceIsLocal = true;
|
|
132
|
-
const fileMeta = await (0, _clientFileUploader.getFileMeta)(fileNameOrURL);
|
|
133
|
-
fileMeta.fileName = fileNameOrURL;
|
|
134
|
-
let lastProgress = '';
|
|
135
|
-
const {
|
|
136
|
-
fileMeta: {
|
|
137
|
-
basename
|
|
138
|
-
},
|
|
139
|
-
checksum: uploadedMD5,
|
|
140
|
-
result
|
|
141
|
-
} = await (0, _clientFileUploader.uploadImportFileToS3)({
|
|
142
|
-
app,
|
|
143
|
-
env,
|
|
144
|
-
fileMeta,
|
|
145
|
-
progressCallback: percentage => {
|
|
146
|
-
if (percentage === lastProgress) {
|
|
147
|
-
return;
|
|
134
|
+
return;
|
|
148
135
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
136
|
+
// upload archive to S3 and get presigned URL for import
|
|
137
|
+
sourceIsLocal = true;
|
|
138
|
+
const fileMeta = await (0, client_file_uploader_1.getFileMeta)(fileNameOrURL);
|
|
139
|
+
fileMeta.fileName = fileNameOrURL;
|
|
140
|
+
let lastProgress = '';
|
|
141
|
+
const { fileMeta: { basename }, checksum: uploadedMD5, result, } = await (0, client_file_uploader_1.uploadImportFileToS3)({
|
|
142
|
+
app,
|
|
143
|
+
env,
|
|
144
|
+
fileMeta,
|
|
145
|
+
progressCallback: percentage => {
|
|
146
|
+
if (percentage === lastProgress) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
lastProgress = percentage;
|
|
150
|
+
process.stdout.write(`\rUpload progress: ${percentage} `);
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
process.stdout.write('\n');
|
|
154
|
+
// small debug info to keep variables used
|
|
155
|
+
debug('Uploaded file basename:', basename);
|
|
156
|
+
debug('Uploaded checksum:', uploadedMD5);
|
|
157
|
+
debug('Upload result:', result && typeof result === 'object' ? Object.keys(result) : result);
|
|
158
|
+
({ url } = await (0, client_file_uploader_1.getSignedUploadRequestData)({
|
|
159
|
+
appId: app.id,
|
|
160
|
+
envId: env.id,
|
|
161
|
+
basename,
|
|
162
|
+
action: 'GetObject',
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
const track = tracker_1.trackEventWithEnv.bind(null, app.id, env.id);
|
|
166
|
+
const api = (0, api_1.default)();
|
|
167
|
+
debug('Options: ', opts);
|
|
168
|
+
debug('Args:', args);
|
|
169
|
+
await track('import_media_start_execute');
|
|
170
|
+
const progressTracker = new progress_1.MediaImportProgressTracker([]);
|
|
171
|
+
progressTracker.prefix = `
|
|
175
172
|
=============================================================
|
|
176
173
|
Importing Media into your App...
|
|
177
174
|
`;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
175
|
+
console.log();
|
|
176
|
+
if (sourceIsLocal) {
|
|
177
|
+
console.log(`Importing local archive: ${fileNameOrURL} (uploaded to temporary URL)`);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
console.log(`Importing archive from: ${url}`);
|
|
181
|
+
}
|
|
182
|
+
console.log(`to: ${env.primaryDomain.name} (${(0, format_1.formatEnvironment)(env.type)})`);
|
|
183
|
+
try {
|
|
184
|
+
await api.mutate({
|
|
185
|
+
mutation: START_IMPORT_MUTATION,
|
|
186
|
+
variables: {
|
|
187
|
+
input: {
|
|
188
|
+
applicationId: app.id,
|
|
189
|
+
environmentId: env.id,
|
|
190
|
+
archiveUrl: url,
|
|
191
|
+
overwriteExistingFiles,
|
|
192
|
+
importIntermediateImages,
|
|
193
|
+
apiVersion: API_VERSION,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
await (0, status_1.mediaImportCheckStatus)({
|
|
198
|
+
app,
|
|
199
|
+
env,
|
|
200
|
+
progressTracker,
|
|
201
|
+
exportFileErrorsToJson,
|
|
202
|
+
saveErrorLog,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
if (core_1.CombinedGraphQLErrors.is(error)) {
|
|
207
|
+
for (const err of error.errors) {
|
|
208
|
+
console.log(chalk_1.default.red('Error:'), err.message);
|
|
209
|
+
}
|
|
210
|
+
return;
|
|
196
211
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
app,
|
|
201
|
-
env,
|
|
202
|
-
progressTracker,
|
|
203
|
-
exportFileErrorsToJson,
|
|
204
|
-
saveErrorLog
|
|
205
|
-
});
|
|
206
|
-
} catch (error) {
|
|
207
|
-
if (_core.CombinedGraphQLErrors.is(error)) {
|
|
208
|
-
for (const err of error.errors) {
|
|
209
|
-
console.log(_chalk.default.red('Error:'), err.message);
|
|
210
|
-
}
|
|
211
|
-
return;
|
|
212
|
+
await track('import_media_start_execute_error', {
|
|
213
|
+
error: `Error: ${error.message}`,
|
|
214
|
+
});
|
|
212
215
|
}
|
|
213
|
-
|
|
214
|
-
error: `Error: ${error.message}`
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
});
|
|
216
|
+
});
|
|
@@ -1,14 +1,48 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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 });
|
|
40
|
+
const command_1 = __importDefault(require("../lib/cli/command"));
|
|
41
|
+
const exit = __importStar(require("../lib/cli/exit"));
|
|
42
|
+
const progress_1 = require("../lib/cli/progress");
|
|
43
|
+
const db_file_import_1 = require("../lib/site-import/db-file-import");
|
|
44
|
+
const status_1 = require("../lib/site-import/status");
|
|
45
|
+
const tracker_1 = require("../lib/tracker");
|
|
12
46
|
const appQuery = `
|
|
13
47
|
id,
|
|
14
48
|
name,
|
|
@@ -27,43 +61,39 @@ environments{
|
|
|
27
61
|
}
|
|
28
62
|
`;
|
|
29
63
|
const usage = 'vip import sql status';
|
|
30
|
-
|
|
31
64
|
// Command examples
|
|
32
|
-
const examples = [
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
appId
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
await track('import_sql_check_status_command_execute');
|
|
58
|
-
const progressTracker = new _progress.ProgressTracker([]);
|
|
59
|
-
progressTracker.prefix = `
|
|
65
|
+
const examples = [
|
|
66
|
+
{
|
|
67
|
+
usage: 'vip @example-app.develop import sql status',
|
|
68
|
+
description: 'Check the status of the most recent SQL database import to the develop environment of the "example-app" application.\n' +
|
|
69
|
+
' * If the import is still in progress, the command will poll until the import is complete.',
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
(0, command_1.default)({
|
|
73
|
+
appContext: true,
|
|
74
|
+
appQuery,
|
|
75
|
+
envContext: true,
|
|
76
|
+
requiredArgs: 0,
|
|
77
|
+
usage,
|
|
78
|
+
})
|
|
79
|
+
.examples(examples)
|
|
80
|
+
.argv(process.argv, async (arg, { app, env }) => {
|
|
81
|
+
const { id: envId, appId } = env;
|
|
82
|
+
const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
|
|
83
|
+
if (!(0, db_file_import_1.isSupportedApp)(app)) {
|
|
84
|
+
await track('import_sql_command_error', { errorType: 'unsupported-app' });
|
|
85
|
+
exit.withError('The type of application you specified does not currently support SQL imports.');
|
|
86
|
+
}
|
|
87
|
+
await track('import_sql_check_status_command_execute');
|
|
88
|
+
const progressTracker = new progress_1.ProgressTracker([]);
|
|
89
|
+
progressTracker.prefix = `
|
|
60
90
|
=============================================================
|
|
61
91
|
Checking the SQL import status for your environment...
|
|
62
92
|
`;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
93
|
+
await (0, status_1.importSqlCheckStatus)({
|
|
94
|
+
app,
|
|
95
|
+
env,
|
|
96
|
+
progressTracker,
|
|
97
|
+
shouldReturnMissingJobImmediately: true,
|
|
98
|
+
});
|
|
99
|
+
});
|