@automattic/vip 2.22.0 → 2.23.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.
Files changed (110) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/automattic-vip-2.23.0.tgz +0 -0
  3. package/dist/bin/vip-app-list.js +0 -12
  4. package/dist/bin/vip-app.js +6 -13
  5. package/dist/bin/vip-cache-purge-url.js +4 -19
  6. package/dist/bin/vip-cache.js +0 -2
  7. package/dist/bin/vip-config-envvar-delete.js +4 -19
  8. package/dist/bin/vip-config-envvar-get-all.js +6 -19
  9. package/dist/bin/vip-config-envvar-get.js +4 -15
  10. package/dist/bin/vip-config-envvar-list.js +8 -20
  11. package/dist/bin/vip-config-envvar-set.js +4 -23
  12. package/dist/bin/vip-config-envvar.js +0 -2
  13. package/dist/bin/vip-config-software-get.js +0 -17
  14. package/dist/bin/vip-config-software-update.js +6 -22
  15. package/dist/bin/vip-config-software.js +0 -2
  16. package/dist/bin/vip-config.js +0 -2
  17. package/dist/bin/vip-dev-env-create.js +0 -18
  18. package/dist/bin/vip-dev-env-destroy.js +0 -9
  19. package/dist/bin/vip-dev-env-exec.js +0 -12
  20. package/dist/bin/vip-dev-env-import-media.js +0 -7
  21. package/dist/bin/vip-dev-env-import-sql.js +2 -17
  22. package/dist/bin/vip-dev-env-import.js +0 -3
  23. package/dist/bin/vip-dev-env-info.js +0 -10
  24. package/dist/bin/vip-dev-env-list.js +0 -7
  25. package/dist/bin/vip-dev-env-start.js +4 -14
  26. package/dist/bin/vip-dev-env-stop.js +0 -9
  27. package/dist/bin/vip-dev-env-update.js +0 -11
  28. package/dist/bin/vip-dev-env.js +0 -2
  29. package/dist/bin/vip-import-media-abort.js +0 -18
  30. package/dist/bin/vip-import-media-status.js +0 -12
  31. package/dist/bin/vip-import-media.js +6 -23
  32. package/dist/bin/vip-import-sql-status.js +0 -12
  33. package/dist/bin/vip-import-sql.js +33 -99
  34. package/dist/bin/vip-import-validate-files.js +21 -42
  35. package/dist/bin/vip-import-validate-sql.js +0 -8
  36. package/dist/bin/vip-import.js +0 -3
  37. package/dist/bin/vip-logs.js +20 -50
  38. package/dist/bin/vip-search-replace.js +8 -14
  39. package/dist/bin/vip-sync.js +2 -25
  40. package/dist/bin/vip-validate-preflight.js +427 -0
  41. package/dist/bin/vip-validate.js +19 -0
  42. package/dist/bin/vip-whoami.js +2 -14
  43. package/dist/bin/vip-wp.js +39 -89
  44. package/dist/bin/vip.js +5 -35
  45. package/dist/lib/analytics/clients/pendo.js +9 -18
  46. package/dist/lib/analytics/clients/stub.js +1 -3
  47. package/dist/lib/analytics/clients/tracks.js +11 -20
  48. package/dist/lib/analytics/index.js +4 -11
  49. package/dist/lib/api/app.js +1 -11
  50. package/dist/lib/api/cache-purge.js +4 -7
  51. package/dist/lib/api/feature-flags.js +1 -4
  52. package/dist/lib/api/http.js +9 -15
  53. package/dist/lib/api/user.js +1 -7
  54. package/dist/lib/api.js +7 -18
  55. package/dist/lib/app-logs/app-logs.js +2 -9
  56. package/dist/lib/app.js +2 -5
  57. package/dist/lib/cli/apiConfig.js +4 -19
  58. package/dist/lib/cli/command.js +43 -133
  59. package/dist/lib/cli/config.js +1 -5
  60. package/dist/lib/cli/envAlias.js +14 -15
  61. package/dist/lib/cli/exit.js +4 -6
  62. package/dist/lib/cli/format.js +8 -50
  63. package/dist/lib/cli/progress.js +13 -42
  64. package/dist/lib/cli/prompt.js +1 -5
  65. package/dist/lib/cli/repo.js +7 -20
  66. package/dist/lib/client-file-uploader.js +44 -97
  67. package/dist/lib/config/software.js +2 -52
  68. package/dist/lib/constants/dev-environment.js +1 -2
  69. package/dist/lib/constants/file-size.js +1 -1
  70. package/dist/lib/constants/vipgo.js +1 -1
  71. package/dist/lib/dev-environment/dev-environment-cli.js +31 -134
  72. package/dist/lib/dev-environment/dev-environment-core.js +63 -171
  73. package/dist/lib/dev-environment/dev-environment-lando.js +16 -71
  74. package/dist/lib/env.js +1 -4
  75. package/dist/lib/envvar/api-delete.js +1 -4
  76. package/dist/lib/envvar/api-get-all.js +1 -4
  77. package/dist/lib/envvar/api-get.js +1 -2
  78. package/dist/lib/envvar/api-list.js +3 -4
  79. package/dist/lib/envvar/api-set.js +1 -4
  80. package/dist/lib/envvar/api.js +5 -16
  81. package/dist/lib/envvar/input.js +1 -8
  82. package/dist/lib/envvar/logging.js +2 -6
  83. package/dist/lib/envvar/read-file.js +1 -3
  84. package/dist/lib/http/proxy-agent.js +17 -22
  85. package/dist/lib/keychain/browser.js +1 -4
  86. package/dist/lib/keychain/insecure.js +1 -10
  87. package/dist/lib/keychain/secure.js +1 -8
  88. package/dist/lib/keychain.js +4 -8
  89. package/dist/lib/logout.js +0 -6
  90. package/dist/lib/media-import/media-file-import.js +3 -7
  91. package/dist/lib/media-import/progress.js +6 -17
  92. package/dist/lib/media-import/status.js +14 -65
  93. package/dist/lib/read-file.js +1 -6
  94. package/dist/lib/rollbar.js +1 -7
  95. package/dist/lib/search-and-replace.js +9 -41
  96. package/dist/lib/site-import/db-file-import.js +3 -9
  97. package/dist/lib/site-import/status.js +17 -74
  98. package/dist/lib/token.js +1 -33
  99. package/dist/lib/tracker.js +4 -20
  100. package/dist/lib/user-error.js +0 -2
  101. package/dist/lib/validations/is-multi-site-sql-dump.js +4 -12
  102. package/dist/lib/validations/is-multi-site.js +5 -21
  103. package/dist/lib/validations/is-multisite-domain-mapped.js +5 -31
  104. package/dist/lib/validations/line-by-line.js +4 -16
  105. package/dist/lib/validations/site-type.js +10 -19
  106. package/dist/lib/validations/sql.js +11 -76
  107. package/dist/lib/validations/utils.js +1 -6
  108. package/dist/lib/vip-import-validate-files.js +82 -109
  109. package/npm-shrinkwrap.json +837 -67
  110. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## Changelog
2
2
 
3
+ ## 2.23.0 (11 Nov 2022)
4
+
5
+ - #1169 Preflight Validation: Change return code on error
6
+ - #1095 Harmonia Pre Deploy Validation: Add `validate` command
7
+ - #1156 Validate env before resolving path
8
+ - #1167 dev-env: Fix bug in getVersionList() when path doesn't exist
9
+
3
10
  ## 2.22.0 (2 Nov 2022)
4
11
 
5
12
  #1165 Add caching type policy for `WPSite` data
Binary file
@@ -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
  });
@@ -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
- await (0, _tracker.trackEvent)('app_command_success'); // Clone the read-only response object so we can modify it
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); // Use the short version of git commit hash
56
+ clonedEnv.name = (0, _command.getEnvIdentifier)(env);
66
57
 
67
- clonedEnv.currentCommit = clonedEnv.currentCommit.substring(0, 7); // Flatten object
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', { ...trackingParams,
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', { ...trackingParams,
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,
@@ -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'; // Command examples
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
- await (0, _tracker.trackEvent)('envvar_delete_mutation_error', { ...trackingParams,
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'; // Command examples
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
- await (0, _tracker.trackEvent)('envvar_get_all_query_error', { ...trackingParams,
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
- } // Vary data by expected format.
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'; // Command examples
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
- await (0, _tracker.trackEvent)('envvar_get_query_error', { ...trackingParams,
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'; // Command examples
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
- await (0, _tracker.trackEvent)('envvar_list_query_error', { ...trackingParams,
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
- } // Vary data by expected format.
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
- } // Format as an object for formatData.
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'; // Command examples
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
- await (0, _tracker.trackEvent)('envvar_set_mutation_error', { ...trackingParams,
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,
@@ -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: 1
23
21
  }).command('delete', 'Permanently delete an environment variable').command('get', 'Get the value of an environment variable').command('get-all', 'Get the values of all environment variable').command('list', 'List the names of all environment variables').command('set', 'Add or update an environment variable').argv(process.argv);