@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,35 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
39
|
exports.validateCustomDeployKey = validateCustomDeployKey;
|
|
5
40
|
exports.validateFile = validateFile;
|
|
6
41
|
exports.validateLargeArchiveFiles = validateLargeArchiveFiles;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
const DEPLOY_MAX_FILE_SIZE = 4 * _fileSize.GB_IN_BYTES;
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const fs_1 = __importDefault(require("fs"));
|
|
44
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
45
|
+
const api_1 = __importDefault(require("../../lib/api"));
|
|
46
|
+
const exit = __importStar(require("../../lib/cli/exit"));
|
|
47
|
+
const client_file_uploader_1 = require("../../lib/client-file-uploader");
|
|
48
|
+
const file_size_1 = require("../../lib/constants/file-size");
|
|
49
|
+
const tracker_1 = require("../../lib/tracker");
|
|
50
|
+
const custom_deploy_1 = require("../../lib/validations/custom-deploy");
|
|
51
|
+
const DEPLOY_MAX_FILE_SIZE = 4 * file_size_1.GB_IN_BYTES;
|
|
19
52
|
const WPVIP_DEPLOY_TOKEN = process.env.WPVIP_DEPLOY_TOKEN;
|
|
20
53
|
const SKIP_LARGE_FILE_VALIDATION_FLAG = '--skip-large-file-validation';
|
|
21
54
|
function formatFileSize(bytes) {
|
|
22
|
-
|
|
55
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
23
56
|
}
|
|
24
57
|
function getLargeArchiveFilesMessage(largeArchiveFiles) {
|
|
25
|
-
|
|
26
|
-
|
|
58
|
+
const fileList = largeArchiveFiles
|
|
59
|
+
.map(file => `- ${file.path} (${formatFileSize(file.size)})`)
|
|
60
|
+
.join('\n');
|
|
61
|
+
return `Deploy archive contains archive file(s) larger than ${formatFileSize(custom_deploy_1.LARGE_ARCHIVE_FILE_SIZE_LIMIT)} in the deploy archive:\n${fileList}\nRemove these files from the repository, or rerun with ${chalk_1.default.bold(SKIP_LARGE_FILE_VALIDATION_FLAG)} to skip this check.`;
|
|
27
62
|
}
|
|
28
63
|
async function validateCustomDeployKey(app, env) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
64
|
+
if (!WPVIP_DEPLOY_TOKEN) {
|
|
65
|
+
exit.withError('Valid custom deploy key is required.');
|
|
66
|
+
}
|
|
67
|
+
const VALIDATE_CUSTOM_DEPLOY_ACCESS_MUTATION = (0, graphql_tag_1.default) `
|
|
33
68
|
mutation ValidateCustomDeployAccess {
|
|
34
69
|
validateCustomDeployAccess( input: { app: "${String(app)}", env: "${String(env)}" } ) {
|
|
35
70
|
success,
|
|
@@ -42,118 +77,101 @@ async function validateCustomDeployKey(app, env) {
|
|
|
42
77
|
}
|
|
43
78
|
}
|
|
44
79
|
`;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
80
|
+
const api = (0, api_1.default)({ exitOnError: true });
|
|
81
|
+
try {
|
|
82
|
+
const result = await api.mutate({
|
|
83
|
+
mutation: VALIDATE_CUSTOM_DEPLOY_ACCESS_MUTATION,
|
|
84
|
+
context: {
|
|
85
|
+
headers: {
|
|
86
|
+
Authorization: `Bearer ${WPVIP_DEPLOY_TOKEN}`,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
if (!result.data?.validateCustomDeployAccess) {
|
|
91
|
+
throw new Error('Not found');
|
|
54
92
|
}
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
93
|
+
return result.data?.validateCustomDeployAccess;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
exit.withError(`Unauthorized: Invalid or non-existent custom deploy key for environment.`);
|
|
59
97
|
}
|
|
60
|
-
return result.data?.validateCustomDeployAccess;
|
|
61
|
-
} catch {
|
|
62
|
-
exit.withError(`Unauthorized: Invalid or non-existent custom deploy key for environment.`);
|
|
63
|
-
}
|
|
64
98
|
}
|
|
65
|
-
|
|
66
99
|
/**
|
|
67
100
|
* @param {FileMeta} fileMeta
|
|
68
101
|
*/
|
|
69
102
|
async function validateFile(appId, envId, fileMeta) {
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
await (0,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
const fileSize = await (0, _clientFileUploader.getFileSize)(fileName);
|
|
119
|
-
if (!fileSize) {
|
|
120
|
-
await track('deploy_app_command_error', {
|
|
121
|
-
error_type: 'appfile-empty'
|
|
122
|
-
});
|
|
123
|
-
exit.withError(`File '${fileName}' is empty.`);
|
|
124
|
-
}
|
|
125
|
-
if (fileSize > DEPLOY_MAX_FILE_SIZE) {
|
|
126
|
-
await track('deploy_app_command_error', {
|
|
127
|
-
error_type: 'appfile-toobig',
|
|
128
|
-
file_size: fileSize
|
|
129
|
-
});
|
|
130
|
-
exit.withError(`The deploy file size (${fileSize} bytes) exceeds the limit (${DEPLOY_MAX_FILE_SIZE} bytes).`);
|
|
131
|
-
}
|
|
103
|
+
const { fileName, basename, isCompressed } = fileMeta;
|
|
104
|
+
const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
|
|
105
|
+
if (!fs_1.default.existsSync(fileName)) {
|
|
106
|
+
await track('deploy_app_command_error', { error_type: 'invalid-file' });
|
|
107
|
+
exit.withError(`Unable to access file ${fileMeta.fileName}`);
|
|
108
|
+
}
|
|
109
|
+
if (!isCompressed) {
|
|
110
|
+
await track('deploy_app_command_error', { error_type: 'uncompressed-file' });
|
|
111
|
+
exit.withError(`Please compress file ${fileMeta.fileName} before uploading.`);
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
(0, custom_deploy_1.validateFilename)(basename);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
await track('deploy_app_command_error', { error_type: 'invalid-filename' });
|
|
118
|
+
exit.withError(error);
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
(0, custom_deploy_1.validateDeployFileExt)(fileName);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
await track('deploy_app_command_error', { error_type: 'invalid-extension' });
|
|
125
|
+
exit.withError(error);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
await (0, client_file_uploader_1.checkFileAccess)(fileName);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
await track('deploy_app_command_error', { error_type: 'appfile-unreadable' });
|
|
132
|
+
exit.withError(`File '${fileName}' does not exist or is not readable.`);
|
|
133
|
+
}
|
|
134
|
+
if (!(await (0, client_file_uploader_1.isFile)(fileName))) {
|
|
135
|
+
await track('deploy_app_command_error', { error_type: 'appfile-notfile' });
|
|
136
|
+
exit.withError(`Path '${fileName}' is not a file.`);
|
|
137
|
+
}
|
|
138
|
+
const fileSize = await (0, client_file_uploader_1.getFileSize)(fileName);
|
|
139
|
+
if (!fileSize) {
|
|
140
|
+
await track('deploy_app_command_error', { error_type: 'appfile-empty' });
|
|
141
|
+
exit.withError(`File '${fileName}' is empty.`);
|
|
142
|
+
}
|
|
143
|
+
if (fileSize > DEPLOY_MAX_FILE_SIZE) {
|
|
144
|
+
await track('deploy_app_command_error', {
|
|
145
|
+
error_type: 'appfile-toobig',
|
|
146
|
+
file_size: fileSize,
|
|
147
|
+
});
|
|
148
|
+
exit.withError(`The deploy file size (${fileSize} bytes) exceeds the limit (${DEPLOY_MAX_FILE_SIZE} bytes).`);
|
|
149
|
+
}
|
|
132
150
|
}
|
|
133
|
-
|
|
134
151
|
/**
|
|
135
152
|
* @param {number} appId
|
|
136
153
|
* @param {number} envId
|
|
137
154
|
* @param {FileMeta} fileMeta
|
|
138
155
|
*/
|
|
139
156
|
async function validateLargeArchiveFiles(appId, envId, fileMeta) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
157
|
+
const track = tracker_1.trackEventWithEnv.bind(null, appId, envId);
|
|
158
|
+
let largeArchiveFiles;
|
|
159
|
+
try {
|
|
160
|
+
largeArchiveFiles = await (0, custom_deploy_1.findLargeArchiveFilesInDeployArchive)(fileMeta.fileName);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
await track('deploy_app_command_error', {
|
|
164
|
+
error_type: 'large-archive-file-verify-failed',
|
|
165
|
+
verify_error: error.message,
|
|
166
|
+
});
|
|
167
|
+
return exit.withError(`Unable to verify large archive files in the deploy archive: ${error.message}. Rerun with ${SKIP_LARGE_FILE_VALIDATION_FLAG} to skip this check.`);
|
|
168
|
+
}
|
|
169
|
+
if (!largeArchiveFiles.length) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
145
172
|
await track('deploy_app_command_error', {
|
|
146
|
-
|
|
147
|
-
|
|
173
|
+
error_type: 'large-archive-files',
|
|
174
|
+
large_archive_files: largeArchiveFiles.map(file => file.path),
|
|
148
175
|
});
|
|
149
|
-
return exit.withError(
|
|
150
|
-
|
|
151
|
-
if (!largeArchiveFiles.length) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
await track('deploy_app_command_error', {
|
|
155
|
-
error_type: 'large-archive-files',
|
|
156
|
-
large_archive_files: largeArchiveFiles.map(file => file.path)
|
|
157
|
-
});
|
|
158
|
-
return exit.withError(getLargeArchiveFilesMessage(largeArchiveFiles));
|
|
159
|
-
}
|
|
176
|
+
return exit.withError(getLargeArchiveFilesMessage(largeArchiveFiles));
|
|
177
|
+
}
|
package/dist/lib/database.js
CHANGED
|
@@ -1,102 +1,105 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
fileStream = _nodeFs.default.createReadStream(filePath);
|
|
25
|
-
}
|
|
26
|
-
const readLine = _nodeReadline.default.createInterface({
|
|
27
|
-
input: fileStream,
|
|
28
|
-
crlfDelay: Infinity
|
|
29
|
-
});
|
|
30
|
-
let isMyDumper = false;
|
|
31
|
-
let sourceDB;
|
|
32
|
-
let currentLineNumber = 0;
|
|
33
|
-
for await (const line of readLine) {
|
|
34
|
-
if (line === '') {
|
|
35
|
-
continue;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fixMyDumperTransform = exports.getSqlDumpDetails = exports.SqlDumpType = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_readline_1 = __importDefault(require("node:readline"));
|
|
9
|
+
const node_stream_1 = require("node:stream");
|
|
10
|
+
const node_zlib_1 = __importDefault(require("node:zlib"));
|
|
11
|
+
const promise_1 = require("./promise");
|
|
12
|
+
var SqlDumpType;
|
|
13
|
+
(function (SqlDumpType) {
|
|
14
|
+
SqlDumpType["MYDUMPER"] = "MYDUMPER";
|
|
15
|
+
SqlDumpType["MYSQLDUMP"] = "MYSQLDUMP";
|
|
16
|
+
})(SqlDumpType || (exports.SqlDumpType = SqlDumpType = {}));
|
|
17
|
+
const getSqlDumpDetails = async (filePath) => {
|
|
18
|
+
const isCompressed = filePath.endsWith('.gz');
|
|
19
|
+
let fileStream;
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
21
|
+
const fileStreamExternalPromise = (0, promise_1.createExternalizedPromise)();
|
|
22
|
+
if (isCompressed) {
|
|
23
|
+
fileStream = await getSqlFileStreamFromCompressedFile(filePath);
|
|
36
24
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const sourceDBName = sourceDBMatch?.[1];
|
|
40
|
-
if (metadataMatch && !isMyDumper) {
|
|
41
|
-
isMyDumper = true;
|
|
25
|
+
else {
|
|
26
|
+
fileStream = node_fs_1.default.createReadStream(filePath);
|
|
42
27
|
}
|
|
43
|
-
|
|
44
|
-
|
|
28
|
+
const readLine = node_readline_1.default.createInterface({
|
|
29
|
+
input: fileStream,
|
|
30
|
+
crlfDelay: Infinity,
|
|
31
|
+
});
|
|
32
|
+
let isMyDumper = false;
|
|
33
|
+
let sourceDB;
|
|
34
|
+
let currentLineNumber = 0;
|
|
35
|
+
for await (const line of readLine) {
|
|
36
|
+
if (line === '') {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const metadataMatch = /^-- metadata.header /.exec(line);
|
|
40
|
+
const sourceDBMatch = /^-- (.*)-schema-create.sql/.exec(line);
|
|
41
|
+
const sourceDBName = sourceDBMatch?.[1];
|
|
42
|
+
if (metadataMatch && !isMyDumper) {
|
|
43
|
+
isMyDumper = true;
|
|
44
|
+
}
|
|
45
|
+
if (sourceDBMatch && !sourceDB) {
|
|
46
|
+
sourceDB = sourceDBName;
|
|
47
|
+
}
|
|
48
|
+
if (sourceDB && isMyDumper) {
|
|
49
|
+
// all fields found? end the search early.
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
if (currentLineNumber > 100) {
|
|
53
|
+
// we'll assume that this isn't the correct file if we still haven't found `-- metadata.header` even at the 100th line.
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
currentLineNumber++;
|
|
45
57
|
}
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
if (fileStream instanceof node_fs_1.default.ReadStream) {
|
|
59
|
+
fileStream.on('close', () => {
|
|
60
|
+
fileStreamExternalPromise.resolve();
|
|
61
|
+
});
|
|
49
62
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
break;
|
|
63
|
+
else {
|
|
64
|
+
fileStreamExternalPromise.resolve();
|
|
53
65
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
fileStreamExternalPromise.resolve();
|
|
62
|
-
}
|
|
63
|
-
readLine.close();
|
|
64
|
-
fileStream.close();
|
|
65
|
-
await fileStreamExternalPromise.promise;
|
|
66
|
-
return {
|
|
67
|
-
type: isMyDumper ? SqlDumpType.MYDUMPER : SqlDumpType.MYSQLDUMP,
|
|
68
|
-
sourceDb: sourceDB
|
|
69
|
-
};
|
|
66
|
+
readLine.close();
|
|
67
|
+
fileStream.close();
|
|
68
|
+
await fileStreamExternalPromise.promise;
|
|
69
|
+
return {
|
|
70
|
+
type: isMyDumper ? SqlDumpType.MYDUMPER : SqlDumpType.MYSQLDUMP,
|
|
71
|
+
sourceDb: sourceDB,
|
|
72
|
+
};
|
|
70
73
|
};
|
|
71
74
|
exports.getSqlDumpDetails = getSqlDumpDetails;
|
|
72
|
-
const verifyFileExists = async filePath => {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
const verifyFileExists = async (filePath) => {
|
|
76
|
+
try {
|
|
77
|
+
await node_fs_1.default.promises.access(filePath, node_fs_1.default.constants.F_OK);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
throw new Error('File not accessible. Does file exist?');
|
|
81
|
+
}
|
|
78
82
|
};
|
|
79
|
-
const getSqlFileStreamFromGz = async filePath => {
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
const getSqlFileStreamFromGz = async (filePath) => {
|
|
84
|
+
await verifyFileExists(filePath);
|
|
85
|
+
return node_fs_1.default.createReadStream(filePath).pipe(node_zlib_1.default.createGunzip());
|
|
82
86
|
};
|
|
83
|
-
const getSqlFileStreamFromCompressedFile = async filePath => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
const getSqlFileStreamFromCompressedFile = async (filePath) => {
|
|
88
|
+
if (filePath.endsWith('.gz')) {
|
|
89
|
+
return await getSqlFileStreamFromGz(filePath);
|
|
90
|
+
}
|
|
91
|
+
throw new Error('Not a supported compressed file');
|
|
88
92
|
};
|
|
89
|
-
|
|
90
93
|
// Replaces the byte-size value that mydumper embeds in chunk header comments (e.g. `-- tablename 1234`)
|
|
91
94
|
// with -1. mydumper exports the original file size in those headers, but since we modify the dump,
|
|
92
95
|
// the size is no longer accurate — setting it to -1 tells mydumper to ignore it.
|
|
93
96
|
// Lines starting with `-- metadata` are left untouched as they use the same format but are not chunk headers.
|
|
94
97
|
const fixMyDumperTransform = () => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
const regex = /^-- (?!metadata)([^ ]+) \d+$/gm;
|
|
99
|
+
return new node_stream_1.Transform({
|
|
100
|
+
transform(chunk, _encoding, callback) {
|
|
101
|
+
callback(null, chunk.toString().replace(regex, '-- $1 -1'));
|
|
102
|
+
},
|
|
103
|
+
});
|
|
101
104
|
};
|
|
102
|
-
exports.fixMyDumperTransform = fixMyDumperTransform;
|
|
105
|
+
exports.fixMyDumperTransform = fixMyDumperTransform;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.appQuery = void 0;
|
|
5
|
-
exports.updateDefensiveModeConfig = updateDefensiveModeConfig;
|
|
6
7
|
exports.updateDefensiveModeStatus = updateDefensiveModeStatus;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
exports.updateDefensiveModeConfig = updateDefensiveModeConfig;
|
|
9
|
+
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
10
|
+
const api_1 = __importDefault(require("../api"));
|
|
11
|
+
exports.appQuery = `
|
|
11
12
|
id
|
|
12
13
|
name
|
|
13
14
|
typeId
|
|
@@ -46,7 +47,7 @@ const appQuery = exports.appQuery = `
|
|
|
46
47
|
salesforceId
|
|
47
48
|
}
|
|
48
49
|
`;
|
|
49
|
-
const STATUS_MUTATION = (0,
|
|
50
|
+
const STATUS_MUTATION = (0, graphql_tag_1.default) `
|
|
50
51
|
mutation UpdateDefensiveModeStatus($input: AppEnvironmentDefensiveModeUpdateStatusInput) {
|
|
51
52
|
updateDefensiveModeStatus(input: $input) {
|
|
52
53
|
success
|
|
@@ -54,7 +55,7 @@ const STATUS_MUTATION = (0, _graphqlTag.default)`
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
`;
|
|
57
|
-
const CONFIG_MUTATION = (0,
|
|
58
|
+
const CONFIG_MUTATION = (0, graphql_tag_1.default) `
|
|
58
59
|
mutation UpdateDefensiveModeConfig($input: AppEnvironmentDefensiveModeConfigInput) {
|
|
59
60
|
updateDefensiveModeConfig(input: $input) {
|
|
60
61
|
success
|
|
@@ -63,44 +64,38 @@ const CONFIG_MUTATION = (0, _graphqlTag.default)`
|
|
|
63
64
|
}
|
|
64
65
|
`;
|
|
65
66
|
async function updateDefensiveModeStatus(input) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
const api = (0, api_1.default)();
|
|
68
|
+
const result = await api.mutate({
|
|
69
|
+
mutation: STATUS_MUTATION,
|
|
70
|
+
variables: {
|
|
71
|
+
input: { id: input.appId, environmentId: input.envId, enabled: input.enabled },
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
if (!result.data) {
|
|
75
|
+
throw new Error('updateDefensiveModeStatus returned no data; the API may have rejected the request.');
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
-
if (!result.data) {
|
|
78
|
-
throw new Error('updateDefensiveModeStatus returned no data; the API may have rejected the request.');
|
|
79
|
-
}
|
|
80
|
-
return result.data.updateDefensiveModeStatus;
|
|
77
|
+
return result.data.updateDefensiveModeStatus;
|
|
81
78
|
}
|
|
82
79
|
async function updateDefensiveModeConfig(input) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
const result = await api.mutate({
|
|
97
|
-
mutation: CONFIG_MUTATION,
|
|
98
|
-
variables: {
|
|
99
|
-
input: mutationInput
|
|
80
|
+
const api = (0, api_1.default)();
|
|
81
|
+
const mutationInput = {
|
|
82
|
+
id: input.appId,
|
|
83
|
+
environmentId: input.envId,
|
|
84
|
+
enabled: input.enabled,
|
|
85
|
+
challengeType: input.challengeType,
|
|
86
|
+
};
|
|
87
|
+
if (input.connectionThresholdAbsolute !== undefined) {
|
|
88
|
+
mutationInput.connectionThresholdAbsolute = input.connectionThresholdAbsolute;
|
|
89
|
+
}
|
|
90
|
+
if (input.connectionThresholdPercentage !== undefined) {
|
|
91
|
+
mutationInput.connectionThresholdPercentage = input.connectionThresholdPercentage;
|
|
100
92
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
93
|
+
const result = await api.mutate({
|
|
94
|
+
mutation: CONFIG_MUTATION,
|
|
95
|
+
variables: { input: mutationInput },
|
|
96
|
+
});
|
|
97
|
+
if (!result.data) {
|
|
98
|
+
throw new Error('updateDefensiveModeConfig returned no data; the API may have rejected the request.');
|
|
99
|
+
}
|
|
100
|
+
return result.data.updateDefensiveModeConfig;
|
|
101
|
+
}
|