@automattic/vip 2.22.0 → 2.24.0
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/CHANGELOG.md +38 -13
- package/assets/dev-env.lando.template.yml.ejs +6 -1
- package/dist/bin/vip-app-list.js +0 -12
- package/dist/bin/vip-app.js +6 -13
- package/dist/bin/vip-cache-purge-url.js +4 -19
- package/dist/bin/vip-cache.js +0 -2
- package/dist/bin/vip-config-envvar-delete.js +4 -19
- package/dist/bin/vip-config-envvar-get-all.js +6 -19
- package/dist/bin/vip-config-envvar-get.js +4 -15
- package/dist/bin/vip-config-envvar-list.js +8 -20
- package/dist/bin/vip-config-envvar-set.js +4 -23
- package/dist/bin/vip-config-envvar.js +0 -2
- package/dist/bin/vip-config-software-get.js +0 -17
- package/dist/bin/vip-config-software-update.js +6 -22
- package/dist/bin/vip-config-software.js +0 -2
- package/dist/bin/vip-config.js +0 -2
- package/dist/bin/vip-dev-env-create.js +8 -21
- package/dist/bin/vip-dev-env-destroy.js +4 -11
- package/dist/bin/vip-dev-env-exec.js +4 -14
- package/dist/bin/vip-dev-env-import-media.js +3 -8
- package/dist/bin/vip-dev-env-import-sql.js +10 -23
- package/dist/bin/vip-dev-env-import.js +0 -3
- package/dist/bin/vip-dev-env-info.js +5 -13
- package/dist/bin/vip-dev-env-list.js +4 -9
- package/dist/bin/vip-dev-env-start.js +9 -17
- package/dist/bin/vip-dev-env-stop.js +4 -11
- package/dist/bin/vip-dev-env-update.js +4 -12
- package/dist/bin/vip-dev-env.js +0 -2
- package/dist/bin/vip-import-media-abort.js +0 -18
- package/dist/bin/vip-import-media-status.js +0 -12
- package/dist/bin/vip-import-media.js +6 -23
- package/dist/bin/vip-import-sql-status.js +0 -12
- package/dist/bin/vip-import-sql.js +33 -99
- package/dist/bin/vip-import-validate-files.js +21 -42
- package/dist/bin/vip-import-validate-sql.js +0 -8
- package/dist/bin/vip-import.js +0 -3
- package/dist/bin/vip-logs.js +20 -50
- package/dist/bin/vip-search-replace.js +8 -14
- package/dist/bin/vip-sync.js +2 -25
- package/dist/bin/vip-validate-preflight.js +467 -0
- package/dist/bin/vip-validate.js +19 -0
- package/dist/bin/vip-whoami.js +2 -14
- package/dist/bin/vip-wp.js +39 -89
- package/dist/bin/vip.js +14 -40
- package/dist/lib/analytics/clients/pendo.js +9 -18
- package/dist/lib/analytics/clients/stub.js +1 -3
- package/dist/lib/analytics/clients/tracks.js +11 -20
- package/dist/lib/analytics/index.js +4 -11
- package/dist/lib/api/app.js +1 -11
- package/dist/lib/api/cache-purge.js +4 -7
- package/dist/lib/api/feature-flags.js +1 -4
- package/dist/lib/api/http.js +9 -15
- package/dist/lib/api/user.js +1 -7
- package/dist/lib/api.js +7 -18
- package/dist/lib/app-logs/app-logs.js +2 -9
- package/dist/lib/app.js +2 -5
- package/dist/lib/cli/apiConfig.js +4 -19
- package/dist/lib/cli/command.js +43 -133
- package/dist/lib/cli/config.js +1 -5
- package/dist/lib/cli/envAlias.js +14 -15
- package/dist/lib/cli/exit.js +4 -6
- package/dist/lib/cli/format.js +8 -50
- package/dist/lib/cli/progress.js +13 -42
- package/dist/lib/cli/prompt.js +1 -5
- package/dist/lib/cli/repo.js +7 -20
- package/dist/lib/client-file-uploader.js +44 -97
- package/dist/lib/config/software.js +2 -52
- package/dist/lib/constants/dev-environment.js +1 -2
- package/dist/lib/constants/file-size.js +1 -1
- package/dist/lib/constants/vipgo.js +1 -1
- package/dist/lib/dev-environment/dev-environment-cli.js +140 -195
- package/dist/lib/dev-environment/dev-environment-core.js +91 -186
- package/dist/lib/dev-environment/dev-environment-lando.js +32 -96
- package/dist/lib/env.js +1 -4
- package/dist/lib/envvar/api-delete.js +1 -4
- package/dist/lib/envvar/api-get-all.js +1 -4
- package/dist/lib/envvar/api-get.js +1 -2
- package/dist/lib/envvar/api-list.js +3 -4
- package/dist/lib/envvar/api-set.js +1 -4
- package/dist/lib/envvar/api.js +5 -16
- package/dist/lib/envvar/input.js +1 -8
- package/dist/lib/envvar/logging.js +2 -6
- package/dist/lib/envvar/read-file.js +1 -3
- package/dist/lib/http/proxy-agent.js +17 -22
- package/dist/lib/keychain/browser.js +1 -4
- package/dist/lib/keychain/insecure.js +1 -10
- package/dist/lib/keychain/secure.js +1 -8
- package/dist/lib/keychain.js +4 -8
- package/dist/lib/logout.js +0 -6
- package/dist/lib/media-import/media-file-import.js +3 -7
- package/dist/lib/media-import/progress.js +6 -17
- package/dist/lib/media-import/status.js +14 -65
- package/dist/lib/read-file.js +1 -6
- package/dist/lib/rollbar.js +1 -7
- package/dist/lib/search-and-replace.js +9 -41
- package/dist/lib/site-import/db-file-import.js +3 -9
- package/dist/lib/site-import/status.js +17 -74
- package/dist/lib/token.js +1 -33
- package/dist/lib/tracker.js +4 -20
- package/dist/lib/user-error.js +0 -2
- package/dist/lib/validations/is-multi-site-sql-dump.js +4 -12
- package/dist/lib/validations/is-multi-site.js +5 -21
- package/dist/lib/validations/is-multisite-domain-mapped.js +5 -31
- package/dist/lib/validations/line-by-line.js +4 -16
- package/dist/lib/validations/site-type.js +10 -19
- package/dist/lib/validations/sql.js +11 -76
- package/dist/lib/validations/utils.js +1 -6
- package/dist/lib/vip-import-validate-files.js +82 -109
- package/npm-shrinkwrap.json +894 -357
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,20 +1,45 @@
|
|
|
1
1
|
## Changelog
|
|
2
2
|
|
|
3
|
+
## 2.24.0 (06 Dec 2022)
|
|
4
|
+
|
|
5
|
+
- #1139 fix(dev-env): Fall back to copy when rename fails due to EXDEV
|
|
6
|
+
- #1170 [dev-env] Substitute the check for forward slash to with a cross-platform regex when processing component argument value
|
|
7
|
+
- #1174 Override WordPress image cache key in tests
|
|
8
|
+
- #1175 Dev-env: Throw error if more than one environment found when starting
|
|
9
|
+
- #1177 Logged out `vip --version`
|
|
10
|
+
- #1178 chore(deps): Fix some of vulnerable dependencies
|
|
11
|
+
- #1179 feat(dev-env): Do not prompt for missing values if stdin is not a TTY
|
|
12
|
+
- #1180 fix(dev-env): Fix a typo in parameter description
|
|
13
|
+
- #1181 fix(dev-env): Set SQL_MODE to match our production environment
|
|
14
|
+
- #1182 Dev-env: Throw UserError in getEnvironmentName() instead and default to first one if only one env
|
|
15
|
+
- #1184 Validate Preflight: Allow preflight checks to execute without explicit app and/or env
|
|
16
|
+
- #1185 feat(dev-env): Add support for MailHog
|
|
17
|
+
- #1186 feat(dev-env): Do not mount home directory into containers
|
|
18
|
+
- #1188 fix: Make bin files executables
|
|
19
|
+
- #1189 refactor(dev-env): Bootstrap Lando only once
|
|
20
|
+
|
|
21
|
+
## 2.23.0 (11 Nov 2022)
|
|
22
|
+
|
|
23
|
+
- #1169 Preflight Validation: Change return code on error
|
|
24
|
+
- #1095 Harmonia Pre Deploy Validation: Add `validate` command
|
|
25
|
+
- #1156 Validate env before resolving path
|
|
26
|
+
- #1167 dev-env: Fix bug in getVersionList() when path doesn't exist
|
|
27
|
+
|
|
3
28
|
## 2.22.0 (2 Nov 2022)
|
|
4
29
|
|
|
5
|
-
#1165 Add caching type policy for `WPSite` data
|
|
6
|
-
#1164 Fix regExp to categorize multisite tables during SQL Imports
|
|
7
|
-
#1163 Pull correct environment's details from API when displaying Multisite SQL Import preflight details
|
|
8
|
-
#1159 chore(deps): Bump debug from 4.3.3 to 4.3.4
|
|
9
|
-
#1162 chore(deps): Bump update-notifier from 4.1.3 to 5.1.0
|
|
10
|
-
#1160 chore(deps): Bump json2csv from 5.0.6 to 5.0.7
|
|
11
|
-
#1158 chore(deps): Bump args from 5.0.1 to 5.0.3
|
|
12
|
-
#1157 chore(deps): Bump semver from 7.3.5 to 7.3.8
|
|
13
|
-
#1155 chore(deps): Bump uuid from 8.3.2 to 9.0.0
|
|
14
|
-
#1154 chore(deps): Update Babel-related packages
|
|
15
|
-
#1153 chore(deps): Fix security vulnerabilities in dependencies
|
|
16
|
-
#1152 ci: Update workflows
|
|
17
|
-
#1151 refactor(dev-env): Modify `verifyDNSResolution()` to use Promises API
|
|
30
|
+
#1165 Add caching type policy for `WPSite` data
|
|
31
|
+
#1164 Fix regExp to categorize multisite tables during SQL Imports
|
|
32
|
+
#1163 Pull correct environment's details from API when displaying Multisite SQL Import preflight details
|
|
33
|
+
#1159 chore(deps): Bump debug from 4.3.3 to 4.3.4
|
|
34
|
+
#1162 chore(deps): Bump update-notifier from 4.1.3 to 5.1.0
|
|
35
|
+
#1160 chore(deps): Bump json2csv from 5.0.6 to 5.0.7
|
|
36
|
+
#1158 chore(deps): Bump args from 5.0.1 to 5.0.3
|
|
37
|
+
#1157 chore(deps): Bump semver from 7.3.5 to 7.3.8
|
|
38
|
+
#1155 chore(deps): Bump uuid from 8.3.2 to 9.0.0
|
|
39
|
+
#1154 chore(deps): Update Babel-related packages
|
|
40
|
+
#1153 chore(deps): Fix security vulnerabilities in dependencies
|
|
41
|
+
#1152 ci: Update workflows
|
|
42
|
+
#1151 refactor(dev-env): Modify `verifyDNSResolution()` to use Promises API
|
|
18
43
|
|
|
19
44
|
### 2.21.0 (24 Oct 2022)
|
|
20
45
|
|
|
@@ -67,7 +67,7 @@ services:
|
|
|
67
67
|
type: compose
|
|
68
68
|
services:
|
|
69
69
|
image: mariadb:<%= mariadb %>
|
|
70
|
-
command: docker-entrypoint.sh mysqld
|
|
70
|
+
command: docker-entrypoint.sh mysqld --sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
|
|
71
71
|
ports:
|
|
72
72
|
- ":3306"
|
|
73
73
|
environment:
|
|
@@ -174,6 +174,11 @@ services:
|
|
|
174
174
|
clientcode_vipconfig: {}
|
|
175
175
|
<% } %>
|
|
176
176
|
|
|
177
|
+
<% if ( mailhog ) { %>
|
|
178
|
+
mailhog:
|
|
179
|
+
type: mailhog
|
|
180
|
+
<% } %>
|
|
181
|
+
|
|
177
182
|
tooling:
|
|
178
183
|
wp:
|
|
179
184
|
service: php
|
package/dist/bin/vip-app-list.js
CHANGED
|
@@ -6,17 +6,11 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
9
|
-
|
|
10
9
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
11
|
-
|
|
12
10
|
var _api = _interopRequireDefault(require("../lib/api"));
|
|
13
|
-
|
|
14
11
|
var _tracker = require("../lib/tracker");
|
|
15
|
-
|
|
16
12
|
var _rollbar = require("../lib/rollbar");
|
|
17
|
-
|
|
18
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
14
|
/**
|
|
21
15
|
* Internal dependencies
|
|
22
16
|
*/
|
|
@@ -26,7 +20,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
26
20
|
const api = await (0, _api.default)();
|
|
27
21
|
await (0, _tracker.trackEvent)('app_list_command_execute');
|
|
28
22
|
let response;
|
|
29
|
-
|
|
30
23
|
try {
|
|
31
24
|
response = await api.query({
|
|
32
25
|
// $FlowFixMe: gql template is not supported by flow
|
|
@@ -44,7 +37,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
44
37
|
variables: {
|
|
45
38
|
first: 100,
|
|
46
39
|
after: null // TODO make dynamic
|
|
47
|
-
|
|
48
40
|
}
|
|
49
41
|
});
|
|
50
42
|
} catch (err) {
|
|
@@ -52,13 +44,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
52
44
|
await (0, _tracker.trackEvent)('app_list_command_fetch_error', {
|
|
53
45
|
error: message
|
|
54
46
|
});
|
|
55
|
-
|
|
56
47
|
_rollbar.rollbar.error(err);
|
|
57
|
-
|
|
58
48
|
console.log('Failed to fetch apps: %s', message);
|
|
59
49
|
return;
|
|
60
50
|
}
|
|
61
|
-
|
|
62
51
|
if (!response || !response.data || !response.data.apps || !response.data.apps.edges || !response.data.apps.edges.length) {
|
|
63
52
|
const message = 'No apps found';
|
|
64
53
|
await (0, _tracker.trackEvent)('app_list_command_fetch_error', {
|
|
@@ -67,7 +56,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
67
56
|
console.log(message);
|
|
68
57
|
return;
|
|
69
58
|
}
|
|
70
|
-
|
|
71
59
|
await (0, _tracker.trackEvent)('app_list_command_success');
|
|
72
60
|
return response.data.apps.edges;
|
|
73
61
|
});
|
package/dist/bin/vip-app.js
CHANGED
|
@@ -6,19 +6,12 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
-
|
|
10
9
|
var _command = _interopRequireWildcard(require("../lib/cli/command"));
|
|
11
|
-
|
|
12
10
|
var _app = _interopRequireDefault(require("../lib/api/app"));
|
|
13
|
-
|
|
14
11
|
var _tracker = require("../lib/tracker");
|
|
15
|
-
|
|
16
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
15
|
/**
|
|
23
16
|
* Internal dependencies
|
|
24
17
|
*/
|
|
@@ -28,7 +21,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
28
21
|
}).example('vip app <app>', 'Pass an app name or ID to get details about that app').example('vip app 123', 'Get details about the app with ID 123').example('vip app vip-test', 'Get details about the app named vip-test').command('list', 'List your VIP applications').argv(process.argv, async arg => {
|
|
29
22
|
await (0, _tracker.trackEvent)('app_command_execute');
|
|
30
23
|
let res;
|
|
31
|
-
|
|
32
24
|
try {
|
|
33
25
|
res = await (0, _app.default)(arg[0], 'id,repo,name,environments{id,appId,name,type,branch,currentCommit,primaryDomain{name},launched}');
|
|
34
26
|
} catch (err) {
|
|
@@ -38,7 +30,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
38
30
|
console.log(`App ${_chalk.default.blueBright(arg[0])} does not exist`);
|
|
39
31
|
return;
|
|
40
32
|
}
|
|
41
|
-
|
|
42
33
|
if (!res || !res.environments) {
|
|
43
34
|
await (0, _tracker.trackEvent)('app_command_fetch_error', {
|
|
44
35
|
error: `App ${arg[0]} does not exist`
|
|
@@ -46,9 +37,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
46
37
|
console.log(`App ${_chalk.default.blueBright(arg[0])} does not exist`);
|
|
47
38
|
return;
|
|
48
39
|
}
|
|
40
|
+
await (0, _tracker.trackEvent)('app_command_success');
|
|
49
41
|
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
// Clone the read-only response object so we can modify it
|
|
52
43
|
const clonedResponse = Object.assign({}, res);
|
|
53
44
|
const header = [{
|
|
54
45
|
key: 'id',
|
|
@@ -62,10 +53,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
62
53
|
}];
|
|
63
54
|
clonedResponse.environments = clonedResponse.environments.map(env => {
|
|
64
55
|
const clonedEnv = Object.assign({}, env);
|
|
65
|
-
clonedEnv.name = (0, _command.getEnvIdentifier)(env);
|
|
56
|
+
clonedEnv.name = (0, _command.getEnvIdentifier)(env);
|
|
66
57
|
|
|
67
|
-
|
|
58
|
+
// Use the short version of git commit hash
|
|
59
|
+
clonedEnv.currentCommit = clonedEnv.currentCommit.substring(0, 7);
|
|
68
60
|
|
|
61
|
+
// Flatten object
|
|
69
62
|
clonedEnv.primaryDomain = clonedEnv.primaryDomain.name;
|
|
70
63
|
return clonedEnv;
|
|
71
64
|
});
|
|
@@ -18,23 +18,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
18
18
|
value: true
|
|
19
19
|
});
|
|
20
20
|
exports.cachePurgeCommand = cachePurgeCommand;
|
|
21
|
-
|
|
22
21
|
var _cachePurge = require("../lib/api/cache-purge");
|
|
23
|
-
|
|
24
22
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
25
|
-
|
|
26
23
|
var _tracker = require("../lib/tracker");
|
|
27
|
-
|
|
28
24
|
var _readFile = require("../lib/read-file");
|
|
29
|
-
|
|
30
25
|
var exit = _interopRequireWildcard(require("../lib/cli/exit"));
|
|
31
|
-
|
|
32
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
-
|
|
34
27
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
-
|
|
36
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
|
-
|
|
38
29
|
const examples = [{
|
|
39
30
|
usage: 'vip cache purge-url <URL>',
|
|
40
31
|
description: 'Purge a URL from page cache'
|
|
@@ -42,7 +33,6 @@ const examples = [{
|
|
|
42
33
|
usage: 'vip cache purge-url --from-file=/dev/vip/urls.txt',
|
|
43
34
|
description: 'Purge multiple URLs from page cache'
|
|
44
35
|
}];
|
|
45
|
-
|
|
46
36
|
async function cachePurgeCommand(urls = [], opt = {}) {
|
|
47
37
|
const trackingParams = {
|
|
48
38
|
app_id: opt.app.id,
|
|
@@ -51,39 +41,34 @@ async function cachePurgeCommand(urls = [], opt = {}) {
|
|
|
51
41
|
from_file: !!opt.fromFile
|
|
52
42
|
};
|
|
53
43
|
await (0, _tracker.trackEvent)('cache_purge_url_command_execute', trackingParams);
|
|
54
|
-
|
|
55
44
|
if (opt.fromFile) {
|
|
56
45
|
const value = await (0, _readFile.readFromFile)(opt.fromFile);
|
|
57
|
-
|
|
58
46
|
if (value) {
|
|
59
47
|
urls = value.split('\n').map(url => url.trim());
|
|
60
48
|
}
|
|
61
49
|
}
|
|
62
|
-
|
|
63
50
|
if (!urls.length) {
|
|
64
|
-
await (0, _tracker.trackEvent)('cache_purge_url_command_error', {
|
|
51
|
+
await (0, _tracker.trackEvent)('cache_purge_url_command_error', {
|
|
52
|
+
...trackingParams,
|
|
65
53
|
error: 'No URL provided'
|
|
66
54
|
});
|
|
67
55
|
exit.withError('Please supply at least one URL.');
|
|
68
56
|
}
|
|
69
|
-
|
|
70
57
|
let purgeCacheObject = {};
|
|
71
|
-
|
|
72
58
|
try {
|
|
73
59
|
purgeCacheObject = await (0, _cachePurge.purgeCache)(opt.app.id, opt.env.id, urls);
|
|
74
60
|
} catch (err) {
|
|
75
|
-
await (0, _tracker.trackEvent)('cache_purge_url_command_error', {
|
|
61
|
+
await (0, _tracker.trackEvent)('cache_purge_url_command_error', {
|
|
62
|
+
...trackingParams,
|
|
76
63
|
error: err.message
|
|
77
64
|
});
|
|
78
65
|
exit.withError(`Failed to purge URL(s) from page cache: ${err.message}`);
|
|
79
66
|
}
|
|
80
|
-
|
|
81
67
|
await (0, _tracker.trackEvent)('cache_purge_url_command_success', trackingParams);
|
|
82
68
|
purgeCacheObject.urls.forEach(url => {
|
|
83
69
|
console.log(`- Purged URL: ${url}`);
|
|
84
70
|
});
|
|
85
71
|
}
|
|
86
|
-
|
|
87
72
|
(0, _command.default)({
|
|
88
73
|
appContext: true,
|
|
89
74
|
appQuery: _cachePurge.appQuery,
|
package/dist/bin/vip-cache.js
CHANGED
|
@@ -15,9 +15,7 @@
|
|
|
15
15
|
"use strict";
|
|
16
16
|
|
|
17
17
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
18
|
-
|
|
19
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
-
|
|
21
19
|
(0, _command.default)({
|
|
22
20
|
requiredArgs: 2
|
|
23
21
|
}).command('purge-url', 'Purge page cache').argv(process.argv);
|
|
@@ -14,33 +14,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
exports.deleteEnvVarCommand = deleteEnvVarCommand;
|
|
17
|
-
|
|
18
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
19
|
-
|
|
20
18
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
21
|
-
|
|
22
19
|
var _api = require("../lib/envvar/api");
|
|
23
|
-
|
|
24
20
|
var _input = require("../lib/envvar/input");
|
|
25
|
-
|
|
26
21
|
var _logging = require("../lib/envvar/logging");
|
|
27
|
-
|
|
28
22
|
var _rollbar = require("../lib/rollbar");
|
|
29
|
-
|
|
30
23
|
var _tracker = require("../lib/tracker");
|
|
31
|
-
|
|
32
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
25
|
/**
|
|
35
26
|
* Internal dependencies
|
|
36
27
|
*/
|
|
37
|
-
const baseUsage = 'vip @mysite.develop config envvar delete';
|
|
28
|
+
const baseUsage = 'vip @mysite.develop config envvar delete';
|
|
38
29
|
|
|
30
|
+
// Command examples
|
|
39
31
|
const examples = [{
|
|
40
32
|
usage: `${baseUsage} MY_VARIABLE`,
|
|
41
33
|
description: 'Permanently deletes the environment variable "MY_VARIABLE"'
|
|
42
34
|
}];
|
|
43
|
-
|
|
44
35
|
async function deleteEnvVarCommand(arg, opt) {
|
|
45
36
|
// Help the user by uppercasing input.
|
|
46
37
|
const name = arg[0].trim().toUpperCase();
|
|
@@ -54,40 +45,34 @@ async function deleteEnvVarCommand(arg, opt) {
|
|
|
54
45
|
};
|
|
55
46
|
(0, _logging.debug)(`Request: Delete environment variable ${JSON.stringify(name)} for ${(0, _logging.getEnvContext)(opt.app, opt.env)}`);
|
|
56
47
|
await (0, _tracker.trackEvent)('envvar_delete_command_execute', trackingParams);
|
|
57
|
-
|
|
58
48
|
if (!(0, _api.validateNameWithMessage)(name)) {
|
|
59
49
|
await (0, _tracker.trackEvent)('envvar_delete_invalid_name', trackingParams);
|
|
60
50
|
process.exit(1);
|
|
61
51
|
}
|
|
62
|
-
|
|
63
52
|
if (!opt.skipConfirmation) {
|
|
64
53
|
await (0, _input.promptForValue)(`Type ${name} to confirm deletion:`, name).catch(async () => {
|
|
65
54
|
await (0, _tracker.trackEvent)('envvar_delete_user_cancelled_input', trackingParams);
|
|
66
55
|
(0, _input.cancel)();
|
|
67
56
|
});
|
|
68
|
-
|
|
69
57
|
if (!(await (0, _input.confirm)(`Are you sure? ${_chalk.default.bold.red('Deletion is permanent')} (y/N)`))) {
|
|
70
58
|
await (0, _tracker.trackEvent)('envvar_delete_user_cancelled_confirmation', trackingParams);
|
|
71
59
|
(0, _input.cancel)();
|
|
72
60
|
}
|
|
73
61
|
}
|
|
74
|
-
|
|
75
62
|
await (0, _api.deleteEnvVar)(opt.app.id, opt.env.id, name).catch(async err => {
|
|
76
63
|
_rollbar.rollbar.error(err);
|
|
77
|
-
|
|
78
|
-
|
|
64
|
+
await (0, _tracker.trackEvent)('envvar_delete_mutation_error', {
|
|
65
|
+
...trackingParams,
|
|
79
66
|
error: err.message
|
|
80
67
|
});
|
|
81
68
|
throw err;
|
|
82
69
|
});
|
|
83
70
|
await (0, _tracker.trackEvent)('envvar_delete_command_success', trackingParams);
|
|
84
71
|
console.log(_chalk.default.green(`Successfully deleted environment variable ${JSON.stringify(name)}`));
|
|
85
|
-
|
|
86
72
|
if (!opt.skipConfirmation) {
|
|
87
73
|
console.log(_chalk.default.bgYellow(_chalk.default.bold('Important:')), 'Updates to environment variables will not be available until the application’s next deploy.');
|
|
88
74
|
}
|
|
89
75
|
}
|
|
90
|
-
|
|
91
76
|
(0, _command.default)({
|
|
92
77
|
appContext: true,
|
|
93
78
|
appQuery: _api.appQuery,
|
|
@@ -14,33 +14,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
exports.getAllEnvVarsCommand = getAllEnvVarsCommand;
|
|
17
|
-
|
|
18
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
19
|
-
|
|
20
18
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
21
|
-
|
|
22
19
|
var _format = require("../lib/cli/format");
|
|
23
|
-
|
|
24
20
|
var _api = require("../lib/envvar/api");
|
|
25
|
-
|
|
26
21
|
var _logging = require("../lib/envvar/logging");
|
|
27
|
-
|
|
28
22
|
var _rollbar = require("../lib/rollbar");
|
|
29
|
-
|
|
30
23
|
var _tracker = require("../lib/tracker");
|
|
31
|
-
|
|
32
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
25
|
/**
|
|
35
26
|
* Internal dependencies
|
|
36
27
|
*/
|
|
37
|
-
const usage = 'vip @mysite.develop config envvar get-all';
|
|
28
|
+
const usage = 'vip @mysite.develop config envvar get-all';
|
|
38
29
|
|
|
30
|
+
// Command examples
|
|
39
31
|
const examples = [{
|
|
40
32
|
usage,
|
|
41
33
|
description: 'Get the values of all environment variables'
|
|
42
34
|
}];
|
|
43
|
-
|
|
44
35
|
async function getAllEnvVarsCommand(arg, opt) {
|
|
45
36
|
const trackingParams = {
|
|
46
37
|
app_id: opt.app.id,
|
|
@@ -53,28 +44,25 @@ async function getAllEnvVarsCommand(arg, opt) {
|
|
|
53
44
|
await (0, _tracker.trackEvent)('envvar_get_all_command_execute', trackingParams);
|
|
54
45
|
const envvars = await (0, _api.getEnvVars)(opt.app.id, opt.env.id).catch(async err => {
|
|
55
46
|
_rollbar.rollbar.error(err);
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
await (0, _tracker.trackEvent)('envvar_get_all_query_error', {
|
|
48
|
+
...trackingParams,
|
|
58
49
|
error: err.message
|
|
59
50
|
});
|
|
60
51
|
throw err;
|
|
61
52
|
});
|
|
62
53
|
await (0, _tracker.trackEvent)('envvar_get_all_command_success', trackingParams);
|
|
63
|
-
|
|
64
54
|
if (0 === envvars.length) {
|
|
65
55
|
console.log(_chalk.default.yellow('There are no environment variables'));
|
|
66
56
|
process.exit();
|
|
67
|
-
}
|
|
68
|
-
|
|
57
|
+
}
|
|
69
58
|
|
|
59
|
+
// Vary data by expected format.
|
|
70
60
|
let key = 'name';
|
|
71
|
-
|
|
72
61
|
if ('keyValue' === opt.format) {
|
|
73
62
|
key = 'key';
|
|
74
63
|
} else if ('ids' === opt.format) {
|
|
75
64
|
key = 'id';
|
|
76
65
|
}
|
|
77
|
-
|
|
78
66
|
const envvarsObject = envvars.map(({
|
|
79
67
|
name: envvarName,
|
|
80
68
|
value
|
|
@@ -84,7 +72,6 @@ async function getAllEnvVarsCommand(arg, opt) {
|
|
|
84
72
|
}));
|
|
85
73
|
console.log((0, _format.formatData)(envvarsObject, opt.format));
|
|
86
74
|
}
|
|
87
|
-
|
|
88
75
|
(0, _command.default)({
|
|
89
76
|
appContext: true,
|
|
90
77
|
appQuery: _api.appQuery,
|
|
@@ -14,31 +14,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
exports.getEnvVarCommand = getEnvVarCommand;
|
|
17
|
-
|
|
18
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
19
|
-
|
|
20
18
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
21
|
-
|
|
22
19
|
var _api = require("../lib/envvar/api");
|
|
23
|
-
|
|
24
20
|
var _logging = require("../lib/envvar/logging");
|
|
25
|
-
|
|
26
21
|
var _rollbar = require("../lib/rollbar");
|
|
27
|
-
|
|
28
22
|
var _tracker = require("../lib/tracker");
|
|
29
|
-
|
|
30
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
-
|
|
32
24
|
/**
|
|
33
25
|
* Internal dependencies
|
|
34
26
|
*/
|
|
35
|
-
const baseUsage = 'vip @mysite.develop config envvar get';
|
|
27
|
+
const baseUsage = 'vip @mysite.develop config envvar get';
|
|
36
28
|
|
|
29
|
+
// Command examples
|
|
37
30
|
const examples = [{
|
|
38
31
|
usage: `${baseUsage} MY_VARIABLE`,
|
|
39
32
|
description: 'Get the value of the environment variable "MY_VARIABLE"'
|
|
40
33
|
}];
|
|
41
|
-
|
|
42
34
|
async function getEnvVarCommand(arg, opt) {
|
|
43
35
|
// Help the user by uppercasing input.
|
|
44
36
|
const name = arg[0].trim().toUpperCase();
|
|
@@ -53,23 +45,20 @@ async function getEnvVarCommand(arg, opt) {
|
|
|
53
45
|
await (0, _tracker.trackEvent)('envvar_get_command_execute', trackingParams);
|
|
54
46
|
const envvar = await (0, _api.getEnvVar)(opt.app.id, opt.env.id, name).catch(async err => {
|
|
55
47
|
_rollbar.rollbar.error(err);
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
await (0, _tracker.trackEvent)('envvar_get_query_error', {
|
|
49
|
+
...trackingParams,
|
|
58
50
|
error: err.message
|
|
59
51
|
});
|
|
60
52
|
throw err;
|
|
61
53
|
});
|
|
62
54
|
await (0, _tracker.trackEvent)('envvar_get_command_success', trackingParams);
|
|
63
|
-
|
|
64
55
|
if (!envvar) {
|
|
65
56
|
const message = `The environment variable ${JSON.stringify(name)} does not exist`;
|
|
66
57
|
console.log(_chalk.default.yellow(message));
|
|
67
58
|
process.exit();
|
|
68
59
|
}
|
|
69
|
-
|
|
70
60
|
console.log(envvar.value);
|
|
71
61
|
}
|
|
72
|
-
|
|
73
62
|
(0, _command.default)({
|
|
74
63
|
appContext: true,
|
|
75
64
|
appQuery: _api.appQuery,
|
|
@@ -14,33 +14,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
exports.listEnvVarsCommand = listEnvVarsCommand;
|
|
17
|
-
|
|
18
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
19
|
-
|
|
20
18
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
21
|
-
|
|
22
19
|
var _format = require("../lib/cli/format");
|
|
23
|
-
|
|
24
20
|
var _api = require("../lib/envvar/api");
|
|
25
|
-
|
|
26
21
|
var _logging = require("../lib/envvar/logging");
|
|
27
|
-
|
|
28
22
|
var _rollbar = require("../lib/rollbar");
|
|
29
|
-
|
|
30
23
|
var _tracker = require("../lib/tracker");
|
|
31
|
-
|
|
32
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
25
|
/**
|
|
35
26
|
* Internal dependencies
|
|
36
27
|
*/
|
|
37
|
-
const usage = 'vip @mysite.develop config envvar list';
|
|
28
|
+
const usage = 'vip @mysite.develop config envvar list';
|
|
38
29
|
|
|
30
|
+
// Command examples
|
|
39
31
|
const examples = [{
|
|
40
32
|
usage,
|
|
41
33
|
description: 'Lists all environment variables (names only)'
|
|
42
34
|
}];
|
|
43
|
-
|
|
44
35
|
async function listEnvVarsCommand(arg, opt) {
|
|
45
36
|
const trackingParams = {
|
|
46
37
|
app_id: opt.app.id,
|
|
@@ -53,35 +44,32 @@ async function listEnvVarsCommand(arg, opt) {
|
|
|
53
44
|
await (0, _tracker.trackEvent)('envvar_list_command_execute', trackingParams);
|
|
54
45
|
const envvars = await (0, _api.listEnvVars)(opt.app.id, opt.env.id).catch(async err => {
|
|
55
46
|
_rollbar.rollbar.error(err);
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
await (0, _tracker.trackEvent)('envvar_list_query_error', {
|
|
48
|
+
...trackingParams,
|
|
58
49
|
error: err.message
|
|
59
50
|
});
|
|
60
51
|
throw err;
|
|
61
52
|
});
|
|
62
53
|
await (0, _tracker.trackEvent)('envvar_list_command_success', trackingParams);
|
|
63
|
-
|
|
64
54
|
if (0 === envvars.length) {
|
|
65
55
|
console.log(_chalk.default.yellow('There are no environment variables'));
|
|
66
56
|
process.exit();
|
|
67
|
-
}
|
|
68
|
-
|
|
57
|
+
}
|
|
69
58
|
|
|
59
|
+
// Vary data by expected format.
|
|
70
60
|
let key = 'name';
|
|
71
|
-
|
|
72
61
|
if ('keyValue' === opt.format) {
|
|
73
62
|
key = 'key';
|
|
74
63
|
} else if ('ids' === opt.format) {
|
|
75
64
|
key = 'id';
|
|
76
|
-
}
|
|
77
|
-
|
|
65
|
+
}
|
|
78
66
|
|
|
67
|
+
// Format as an object for formatData.
|
|
79
68
|
const envvarsObject = envvars.map(name => ({
|
|
80
69
|
[key]: name
|
|
81
70
|
}));
|
|
82
71
|
console.log((0, _format.formatData)(envvarsObject, opt.format));
|
|
83
72
|
}
|
|
84
|
-
|
|
85
73
|
(0, _command.default)({
|
|
86
74
|
appContext: true,
|
|
87
75
|
appQuery: _api.appQuery,
|
|
@@ -14,36 +14,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
16
|
exports.setEnvVarCommand = setEnvVarCommand;
|
|
17
|
-
|
|
18
17
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
19
|
-
|
|
20
18
|
var _command = _interopRequireDefault(require("../lib/cli/command"));
|
|
21
|
-
|
|
22
19
|
var _api = require("../lib/envvar/api");
|
|
23
|
-
|
|
24
20
|
var _input = require("../lib/envvar/input");
|
|
25
|
-
|
|
26
21
|
var _logging = require("../lib/envvar/logging");
|
|
27
|
-
|
|
28
22
|
var _readFile = require("../lib/envvar/read-file");
|
|
29
|
-
|
|
30
23
|
var _rollbar = require("../lib/rollbar");
|
|
31
|
-
|
|
32
24
|
var _tracker = require("../lib/tracker");
|
|
33
|
-
|
|
34
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
-
|
|
36
26
|
/**
|
|
37
27
|
* Internal dependencies
|
|
38
28
|
*/
|
|
39
29
|
const baseUsage = 'vip @mysite.develop config envvar set';
|
|
40
|
-
const NEW_RELIC_ENVVAR_KEY = 'NEW_RELIC_LICENSE_KEY';
|
|
30
|
+
const NEW_RELIC_ENVVAR_KEY = 'NEW_RELIC_LICENSE_KEY';
|
|
41
31
|
|
|
32
|
+
// Command examples
|
|
42
33
|
const examples = [{
|
|
43
34
|
usage: `${baseUsage} MY_VARIABLE`,
|
|
44
35
|
description: 'Sets the environment variable "MY_VARIABLE" and prompts for its value'
|
|
45
36
|
}];
|
|
46
|
-
|
|
47
37
|
async function setEnvVarCommand(arg, opt) {
|
|
48
38
|
// Help the user by uppercasing input.
|
|
49
39
|
const name = arg[0].trim().toUpperCase();
|
|
@@ -58,20 +48,16 @@ async function setEnvVarCommand(arg, opt) {
|
|
|
58
48
|
};
|
|
59
49
|
(0, _logging.debug)(`Request: Set environment variable ${JSON.stringify(name)} for ${(0, _logging.getEnvContext)(opt.app, opt.env)}`);
|
|
60
50
|
await (0, _tracker.trackEvent)('envvar_set_command_execute', trackingParams);
|
|
61
|
-
|
|
62
51
|
if (!(0, _api.validateNameWithMessage)(name)) {
|
|
63
52
|
await (0, _tracker.trackEvent)('envvar_set_invalid_name', trackingParams);
|
|
64
53
|
process.exit(1);
|
|
65
54
|
}
|
|
66
|
-
|
|
67
55
|
if (NEW_RELIC_ENVVAR_KEY === name) {
|
|
68
56
|
await (0, _tracker.trackEvent)('envvar_set_newrelic_key', trackingParams);
|
|
69
57
|
console.log(_chalk.default.bold.red('Setting the New Relic key is not permitted.'), 'If you want to set your own New Relic key, please contact our support team through the usual channels.');
|
|
70
58
|
process.exit(1);
|
|
71
59
|
}
|
|
72
|
-
|
|
73
60
|
let value;
|
|
74
|
-
|
|
75
61
|
if (opt.fromFile) {
|
|
76
62
|
value = await (0, _readFile.readVariableFromFile)(opt.fromFile);
|
|
77
63
|
} else {
|
|
@@ -82,7 +68,6 @@ async function setEnvVarCommand(arg, opt) {
|
|
|
82
68
|
(0, _input.cancel)();
|
|
83
69
|
});
|
|
84
70
|
}
|
|
85
|
-
|
|
86
71
|
if (!opt.skipConfirmation) {
|
|
87
72
|
// Print input if it was loaded from file.
|
|
88
73
|
if (opt.fromFile) {
|
|
@@ -91,29 +76,25 @@ async function setEnvVarCommand(arg, opt) {
|
|
|
91
76
|
console.log('===== Received value printed above =====');
|
|
92
77
|
console.log();
|
|
93
78
|
}
|
|
94
|
-
|
|
95
79
|
if (!(await (0, _input.confirm)(`Please ${_chalk.default.bold('confirm')} the input value above (y/N)`))) {
|
|
96
80
|
await (0, _tracker.trackEvent)('envvar_set_user_cancelled_confirmation', trackingParams);
|
|
97
81
|
(0, _input.cancel)();
|
|
98
82
|
}
|
|
99
83
|
}
|
|
100
|
-
|
|
101
84
|
await (0, _api.setEnvVar)(opt.app.id, opt.env.id, name, value).catch(async err => {
|
|
102
85
|
_rollbar.rollbar.error(err);
|
|
103
|
-
|
|
104
|
-
|
|
86
|
+
await (0, _tracker.trackEvent)('envvar_set_mutation_error', {
|
|
87
|
+
...trackingParams,
|
|
105
88
|
error: err.message
|
|
106
89
|
});
|
|
107
90
|
throw err;
|
|
108
91
|
});
|
|
109
92
|
await (0, _tracker.trackEvent)('envvar_set_command_success', trackingParams);
|
|
110
93
|
console.log(_chalk.default.green(`Successfully set environment variable ${JSON.stringify(name)}`));
|
|
111
|
-
|
|
112
94
|
if (!opt.skipConfirmation) {
|
|
113
95
|
console.log(_chalk.default.bgYellow(_chalk.default.bold('Important:')), 'Updates to environment variables will not be available until the application’s next deploy.');
|
|
114
96
|
}
|
|
115
97
|
}
|
|
116
|
-
|
|
117
98
|
(0, _command.default)({
|
|
118
99
|
appContext: true,
|
|
119
100
|
appQuery: _api.appQuery,
|