@automattic/vip 2.29.1 → 2.30.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 (41) hide show
  1. package/.sonarcloud.properties +2 -0
  2. package/CHANGELOG.md +10 -0
  3. package/assets/dev-env.lando.template.yml.ejs +7 -2
  4. package/dist/bin/vip-app-list.js +0 -2
  5. package/dist/bin/vip-config-envvar-delete.js +0 -2
  6. package/dist/bin/vip-config-envvar-get-all.js +0 -2
  7. package/dist/bin/vip-config-envvar-get.js +0 -2
  8. package/dist/bin/vip-config-envvar-list.js +0 -2
  9. package/dist/bin/vip-config-envvar-set.js +0 -2
  10. package/dist/bin/vip-dev-env-create.js +4 -1
  11. package/dist/bin/vip-dev-env-sync-sql.js +86 -0
  12. package/dist/bin/vip-dev-env-sync.js +21 -0
  13. package/dist/bin/vip-dev-env.js +1 -1
  14. package/dist/bin/vip-import-sql.js +0 -2
  15. package/dist/bin/vip-import-validate-sql.js +2 -2
  16. package/dist/bin/vip-logs.js +0 -3
  17. package/dist/bin/vip-wp.js +7 -35
  18. package/dist/bin/vip.js +11 -11
  19. package/dist/commands/dev-env-sync-sql.js +30 -15
  20. package/dist/commands/export-sql.js +12 -8
  21. package/dist/lib/api/feature-flags.js +2 -1
  22. package/dist/lib/api.js +2 -2
  23. package/dist/lib/app.js +2 -0
  24. package/dist/lib/cli/command.js +0 -4
  25. package/dist/lib/cli/format.js +3 -3
  26. package/dist/lib/dev-environment/dev-environment-cli.js +74 -13
  27. package/dist/lib/dev-environment/dev-environment-lando.js +2 -2
  28. package/dist/lib/keychain/insecure.js +25 -26
  29. package/dist/lib/keychain/secure.js +5 -2
  30. package/dist/lib/keychain.js +11 -18
  31. package/dist/lib/media-import/status.js +2 -2
  32. package/dist/lib/site-import/status.js +4 -3
  33. package/dist/lib/token.js +17 -6
  34. package/dist/lib/tracker.js +3 -4
  35. package/dist/lib/validations/sql.js +3 -3
  36. package/noImplictAnyImportBypass.d.ts +6 -0
  37. package/npm-shrinkwrap.json +970 -367
  38. package/package.json +29 -6
  39. package/tsconfig.json +35 -0
  40. package/dist/lib/keychain/browser.js +0 -31
  41. package/dist/lib/rollbar.js +0 -29
@@ -0,0 +1,2 @@
1
+ sonar.sources=src, helpers
2
+ sonar.tests=__tests__
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## Changelog
2
2
 
3
+ ### 2.30.0
4
+
5
+ - #1264 feature(dev-env): Add dev-env-sync-sql command
6
+ - #1376 refactor: Convert keychain to TypeScript
7
+ - #1370 fix: Fix issues found by SonarCloud
8
+ - #1374 Add TypeScript support
9
+ - #1334 Dev-env: Allow --multisite to accept boolean, subdirectory, or subdomain values
10
+ - #1375 fix(api): Set non-zero exit code on error
11
+ - #1373 Reverting accidental push to vip-cli
12
+
3
13
  ### 2.29.1
4
14
 
5
15
  - #1372 fix(export): Make vip-export-sql.js executable
@@ -74,8 +74,13 @@ services:
74
74
  run_as_root:
75
75
  - chown www-data:www-data /wp/wp-content/mu-plugins /wp/config /wp/log /wp/wp-content/uploads /wp
76
76
  run:
77
- - sh /dev-tools/setup.sh database root "http://<%= siteSlug %>.vipdev.lndo.site/" "<%= wpTitle %>" <% if ( multisite ) { %> <%= siteSlug %>.vipdev.lndo.site <% } %>
78
-
77
+ - >
78
+ sh /dev-tools/setup.sh
79
+ --host database
80
+ --user root
81
+ --domain "http://<%= siteSlug %>.vipdev.lndo.site/"
82
+ --title "<%= wpTitle %>"
83
+ <% if ( multisite ) { %>--ms-domain "<%= siteSlug %>.vipdev.lndo.site" <% if ( multisite === true || multisite === 'subdomain' ) { %>--subdomain <% } %> <% } %>
79
84
  database:
80
85
  type: compose
81
86
  services:
@@ -8,7 +8,6 @@ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
8
8
  var _command = _interopRequireDefault(require("../lib/cli/command"));
9
9
  var _api = _interopRequireDefault(require("../lib/api"));
10
10
  var _tracker = require("../lib/tracker");
11
- var _rollbar = require("../lib/rollbar");
12
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
12
  /**
14
13
  * Internal dependencies
@@ -43,7 +42,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
43
42
  await (0, _tracker.trackEvent)('app_list_command_fetch_error', {
44
43
  error: message
45
44
  });
46
- _rollbar.rollbar.error(err);
47
45
  console.log('Failed to fetch apps: %s', message);
48
46
  return;
49
47
  }
@@ -19,7 +19,6 @@ var _command = _interopRequireDefault(require("../lib/cli/command"));
19
19
  var _api = require("../lib/envvar/api");
20
20
  var _input = require("../lib/envvar/input");
21
21
  var _logging = require("../lib/envvar/logging");
22
- var _rollbar = require("../lib/rollbar");
23
22
  var _tracker = require("../lib/tracker");
24
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
24
  /**
@@ -60,7 +59,6 @@ async function deleteEnvVarCommand(arg, opt) {
60
59
  }
61
60
  }
62
61
  await (0, _api.deleteEnvVar)(opt.app.id, opt.env.id, name).catch(async err => {
63
- _rollbar.rollbar.error(err);
64
62
  await (0, _tracker.trackEvent)('envvar_delete_mutation_error', {
65
63
  ...trackingParams,
66
64
  error: err.message
@@ -19,7 +19,6 @@ var _command = _interopRequireDefault(require("../lib/cli/command"));
19
19
  var _format = require("../lib/cli/format");
20
20
  var _api = require("../lib/envvar/api");
21
21
  var _logging = require("../lib/envvar/logging");
22
- var _rollbar = require("../lib/rollbar");
23
22
  var _tracker = require("../lib/tracker");
24
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
24
  /**
@@ -43,7 +42,6 @@ async function getAllEnvVarsCommand(arg, opt) {
43
42
  (0, _logging.debug)(`Request: Get all environment variables for ${(0, _logging.getEnvContext)(opt.app, opt.env)}`);
44
43
  await (0, _tracker.trackEvent)('envvar_get_all_command_execute', trackingParams);
45
44
  const envvars = await (0, _api.getEnvVars)(opt.app.id, opt.env.id).catch(async err => {
46
- _rollbar.rollbar.error(err);
47
45
  await (0, _tracker.trackEvent)('envvar_get_all_query_error', {
48
46
  ...trackingParams,
49
47
  error: err.message
@@ -18,7 +18,6 @@ var _chalk = _interopRequireDefault(require("chalk"));
18
18
  var _command = _interopRequireDefault(require("../lib/cli/command"));
19
19
  var _api = require("../lib/envvar/api");
20
20
  var _logging = require("../lib/envvar/logging");
21
- var _rollbar = require("../lib/rollbar");
22
21
  var _tracker = require("../lib/tracker");
23
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
23
  /**
@@ -44,7 +43,6 @@ async function getEnvVarCommand(arg, opt) {
44
43
  (0, _logging.debug)(`Request: Get environment variable ${JSON.stringify(name)} for ${(0, _logging.getEnvContext)(opt.app, opt.env)}`);
45
44
  await (0, _tracker.trackEvent)('envvar_get_command_execute', trackingParams);
46
45
  const envvar = await (0, _api.getEnvVar)(opt.app.id, opt.env.id, name).catch(async err => {
47
- _rollbar.rollbar.error(err);
48
46
  await (0, _tracker.trackEvent)('envvar_get_query_error', {
49
47
  ...trackingParams,
50
48
  error: err.message
@@ -19,7 +19,6 @@ var _command = _interopRequireDefault(require("../lib/cli/command"));
19
19
  var _format = require("../lib/cli/format");
20
20
  var _api = require("../lib/envvar/api");
21
21
  var _logging = require("../lib/envvar/logging");
22
- var _rollbar = require("../lib/rollbar");
23
22
  var _tracker = require("../lib/tracker");
24
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
24
  /**
@@ -43,7 +42,6 @@ async function listEnvVarsCommand(arg, opt) {
43
42
  (0, _logging.debug)(`Request: list environment variables for ${(0, _logging.getEnvContext)(opt.app, opt.env)}`);
44
43
  await (0, _tracker.trackEvent)('envvar_list_command_execute', trackingParams);
45
44
  const envvars = await (0, _api.listEnvVars)(opt.app.id, opt.env.id).catch(async err => {
46
- _rollbar.rollbar.error(err);
47
45
  await (0, _tracker.trackEvent)('envvar_list_query_error', {
48
46
  ...trackingParams,
49
47
  error: err.message
@@ -20,7 +20,6 @@ var _api = require("../lib/envvar/api");
20
20
  var _input = require("../lib/envvar/input");
21
21
  var _logging = require("../lib/envvar/logging");
22
22
  var _readFile = require("../lib/envvar/read-file");
23
- var _rollbar = require("../lib/rollbar");
24
23
  var _tracker = require("../lib/tracker");
25
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
25
  /**
@@ -82,7 +81,6 @@ async function setEnvVarCommand(arg, opt) {
82
81
  }
83
82
  }
84
83
  await (0, _api.setEnvVar)(opt.app.id, opt.env.id, name, value).catch(async err => {
85
- _rollbar.rollbar.error(err);
86
84
  await (0, _tracker.trackEvent)('envvar_set_mutation_error', {
87
85
  ...trackingParams,
88
86
  error: err.message
@@ -42,8 +42,11 @@ const examples = [{
42
42
  }, {
43
43
  usage: `${_devEnvironment.DEV_ENVIRONMENT_FULL_COMMAND} create --multisite --wordpress="5.8" --app-code="~/git/my_code"`,
44
44
  description: 'Creates a local multisite dev environment using WP 5.8 and application code is expected to be in "~/git/my_code"'
45
+ }, {
46
+ usage: `${_devEnvironment.DEV_ENVIRONMENT_FULL_COMMAND} create --multisite=subdirectory --wordpress="5.8" --app-code="~/git/my_code"`,
47
+ description: 'Creates a local multisite dev environment with a subdirectory URL structure using WP 5.8 and application code is expected to be in "~/git/my_code"'
45
48
  }];
46
- const cmd = (0, _command.default)().option('slug', 'Custom name of the dev environment').option('title', 'Title for the WordPress site').option('multisite', 'Enable multisite install', undefined, _devEnvironmentCli.processBooleanOption);
49
+ const cmd = (0, _command.default)().option('slug', 'Custom name of the dev environment').option('title', 'Title for the WordPress site').option('multisite', 'Enable multisite install', undefined, _devEnvironmentCli.processStringOrBooleanOption);
47
50
  (0, _devEnvironmentCli.addDevEnvConfigurationOptions)(cmd);
48
51
  cmd.examples(examples);
49
52
  cmd.argv(process.argv, async (arg, opt) => {
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ *
5
+ * @format
6
+ */
7
+
8
+ /**
9
+ * External dependencies
10
+ */
11
+ "use strict";
12
+
13
+ var _chalk = _interopRequireDefault(require("chalk"));
14
+ var _command = _interopRequireDefault(require("../lib/cli/command"));
15
+ var _devEnvironmentCore = require("../lib/dev-environment/dev-environment-core");
16
+ var _devEnvironmentLando = require("../lib/dev-environment/dev-environment-lando");
17
+ var _userError = _interopRequireDefault(require("../lib/user-error"));
18
+ var _devEnvSyncSql = require("../commands/dev-env-sync-sql");
19
+ var _devEnvironment = require("../lib/constants/dev-environment");
20
+ var _tracker = require("../lib/tracker");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+ const examples = [{
26
+ usage: `${_devEnvironment.DEV_ENVIRONMENT_FULL_COMMAND} sync sql @my-test.develop --slug=my_site`,
27
+ description: 'Syncs with the `my-test` site\'s `develop` environment database into `my_site`'
28
+ }];
29
+ const appQuery = `
30
+ id,
31
+ name,
32
+ type,
33
+ organization { id, name },
34
+ environments{
35
+ id
36
+ appId
37
+ type
38
+ name
39
+ primaryDomain { name }
40
+ uniqueLabel
41
+ isMultisite
42
+ }
43
+ `;
44
+ (0, _command.default)({
45
+ appContext: true,
46
+ appQuery,
47
+ envContext: true,
48
+ requiredArgs: 0,
49
+ module: 'dev-env-sync-sql'
50
+ }).option('slug', 'Custom name of the dev environment').examples(examples).argv(process.argv, async (arg, {
51
+ app,
52
+ env,
53
+ slug
54
+ }) => {
55
+ const trackerFn = (0, _tracker.makeCommandTracker)('dev_env_sync_sql', {
56
+ app: app.id,
57
+ env: env.uniqueLabel,
58
+ slug
59
+ });
60
+ await trackerFn('execute');
61
+ if (env.isMultisite) {
62
+ console.log(_chalk.default.yellow('You seem to be trying to sync a SQL database for a network site.'));
63
+ console.log(_chalk.default.yellow('Unfortunately, the current version of our tool does not yet support syncing network sites.\n'));
64
+ console.log(_chalk.default.yellow('However, you can manually export the database using the following command:'));
65
+ console.log(_chalk.default.yellow(_chalk.default.bold(`vip export sql @${app.id}.${env.uniqueLabel} --output=${app.id}-${env.uniqueLabel}-exported.sql.gz\n`)));
66
+ console.log(_chalk.default.yellow('After exporting the database, you\'ll need to perform the necessary search and replace operations on the exported file to update any relevant data or configurations.'));
67
+ console.log(_chalk.default.yellow('See: https://docs.wpvip.com/how-tos/dev-env-add-content/#h-3-import-the-sql-file\n'));
68
+ console.log(_chalk.default.yellow('Once you\'ve made the required changes, you can import the modified SQL file into your development environment using the following command:'));
69
+ console.log(_chalk.default.yellow(_chalk.default.bold(`vip dev-env import sql ${app.id}-${env.uniqueLabel}-exported.sql.gz --slug=${slug}`)));
70
+ await trackerFn('aborted', {
71
+ error_type: 'multisite_not_supported'
72
+ });
73
+ process.exit(0);
74
+ }
75
+ const lando = await (0, _devEnvironmentLando.bootstrapLando)();
76
+ const envPath = (0, _devEnvironmentCore.getEnvironmentPath)(slug);
77
+ if (!(await (0, _devEnvironmentLando.isEnvUp)(lando, envPath))) {
78
+ await trackerFn('env_not_running_error', {
79
+ errorMessage: 'Environment was not running'
80
+ });
81
+ throw new _userError.default('Environment needs to be started first');
82
+ }
83
+ const cmd = new _devEnvSyncSql.DevEnvSyncSQLCommand(app, env, slug, trackerFn);
84
+ await cmd.run();
85
+ await trackerFn('success');
86
+ });
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ *
5
+ * @format
6
+ */
7
+
8
+ /**
9
+ * External dependencies
10
+ */
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ "use strict";
16
+
17
+ var _command = _interopRequireDefault(require("../lib/cli/command"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ (0, _command.default)({
20
+ requiredArgs: 1
21
+ }).command('sql', 'Sync local database with a production environment').argv(process.argv);
@@ -18,4 +18,4 @@ var _command = _interopRequireDefault(require("../lib/cli/command"));
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
  (0, _command.default)({
20
20
  requiredArgs: 0
21
- }).command('create', 'Create a new local dev environment').command('update', 'Update an already created local dev environment').command('start', 'Start a local dev environment').command('stop', 'Stop a local dev environment').command('destroy', 'Remove containers, networks, volumes and configuration files of a local dev environment').command('info', 'Provides basic info about one or multiple local dev environments').command('list', 'Provides basic info about all local dev environments').command('exec', 'Execute a WP-CLI command in local dev environment').command('import', 'Import data into a local WordPress environment').command('shell', 'Spawns a shell in a dev environment').command('logs', 'View logs from a local WordPress environment').argv(process.argv);
21
+ }).command('create', 'Create a new local dev environment').command('update', 'Update an already created local dev environment').command('start', 'Start a local dev environment').command('stop', 'Stop a local dev environment').command('destroy', 'Remove containers, networks, volumes and configuration files of a local dev environment').command('info', 'Provides basic info about one or multiple local dev environments').command('list', 'Provides basic info about all local dev environments').command('exec', 'Execute a WP-CLI command in local dev environment').command('import', 'Import data into a local WordPress environment').command('shell', 'Spawns a shell in a dev environment').command('logs', 'View logs from a local WordPress environment').command('sync', 'Pull data from production to local development environment').argv(process.argv);
@@ -34,7 +34,6 @@ var _lineByLine = require("../lib/validations/line-by-line");
34
34
  var _format = require("../lib/cli/format");
35
35
  var _progress = require("../lib/cli/progress");
36
36
  var _isMultiSite = require("../lib/validations/is-multi-site");
37
- var _rollbar = require("../lib/rollbar");
38
37
  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); }
39
38
  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; }
40
39
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -419,7 +418,6 @@ Processing the SQL import for your environment...
419
418
  progressTracker.print({
420
419
  clearAfter: true
421
420
  });
422
- _rollbar.rollbar.error(failureError);
423
421
  exit.withError(failureError);
424
422
  };
425
423
  progressTracker.startPrinting(setProgressTrackerPrefixAndSuffix);
@@ -17,8 +17,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
  requiredArgs: 1
18
18
  }).example('vip import validate-sql <file>', 'Run the import validation against file').argv(process.argv, async arg => {
19
19
  const filename = arg[0];
20
- if (!arg && !filename) {
20
+ if (!filename) {
21
21
  exit.withError('You must pass in a filename');
22
22
  }
23
- (0, _sql.validate)(filename);
23
+ await (0, _sql.validate)(filename);
24
24
  });
@@ -14,7 +14,6 @@ exports.validateInputs = validateInputs;
14
14
  var _chalk = _interopRequireDefault(require("chalk"));
15
15
  var _promises = require("timers/promises");
16
16
  var _command = _interopRequireDefault(require("../lib/cli/command"));
17
- var _rollbar = require("../lib/rollbar");
18
17
  var _tracker = require("../lib/tracker");
19
18
  var logsLib = _interopRequireWildcard(require("../lib/app-logs/app-logs"));
20
19
  var exit = _interopRequireWildcard(require("../lib/cli/exit"));
@@ -43,7 +42,6 @@ async function getLogs(arg, opt) {
43
42
  }
44
43
  logs = await logsLib.getRecentLogs(opt.app.id, opt.env.id, opt.type, opt.limit);
45
44
  } catch (error) {
46
- _rollbar.rollbar.error(error);
47
45
  await (0, _tracker.trackEvent)('logs_command_error', {
48
46
  ...trackingParams,
49
47
  error: error.message
@@ -104,7 +102,6 @@ async function followLogs(opt) {
104
102
  delay += DEFAULT_POLLING_DELAY_IN_SECONDS;
105
103
  delay = Math.min(delay, MAX_POLLING_DELAY_IN_SECONDS);
106
104
  console.error(`${_chalk.default.red('Error:')} Failed to fetch logs. Trying again in ${delay} seconds.`);
107
- _rollbar.rollbar.error(error);
108
105
  }
109
106
  if (logs) {
110
107
  var _logs2, _logs3, _logs4;
@@ -18,7 +18,6 @@ var _format = require("../lib/cli/format");
18
18
  var _prompt = require("../lib/cli/prompt");
19
19
  var _tracker = require("../lib/tracker");
20
20
  var _token = _interopRequireDefault(require("../lib/token"));
21
- var _rollbar = require("../lib/rollbar");
22
21
  var _proxyAgent = require("../lib/http/proxy-agent");
23
22
  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); }
24
23
  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; }
@@ -174,7 +173,6 @@ const launchCommandAndGetStreams = async ({
174
173
  });
175
174
  (0, _socket2.default)(socket).on('error', err => {
176
175
  // This returns the error so it can be catched by the socket.on('error')
177
- _rollbar.rollbar.error(err);
178
176
  return err;
179
177
  });
180
178
  socket.on('error', err => {
@@ -182,7 +180,6 @@ const launchCommandAndGetStreams = async ({
182
180
  console.log(_chalk.default.red('\nError:'), 'Rate limit exceeded: Please wait a moment and try again.');
183
181
  return;
184
182
  }
185
- _rollbar.rollbar.error(err);
186
183
  console.log(err);
187
184
  });
188
185
  return {
@@ -204,19 +201,13 @@ const bindReconnectEvents = ({
204
201
  currentJob.socket.removeAllListeners('connect_error');
205
202
  currentJob.socket.io.on('reconnect', async () => {
206
203
  debug('socket.io: reconnect');
207
- _rollbar.rollbar.info('WP-CLI socket.io.on( \'reconnect\' )', {
208
- custom: {
209
- code: 'wp-cli-on-reconnect',
210
- commandGuid: cliCommand.guid
211
- }
212
- });
213
204
 
214
205
  // Close old streams
215
206
  unpipeStreamsFromProcess({
216
207
  stdin: currentJob.stdinStream,
217
208
  stdout: currentJob.stdoutStream
218
209
  });
219
- (0, _tracker.trackEvent)('wpcli_command_reconnect', commonTrackingParams);
210
+ (0, _tracker.trackEvent)('wpcli_command_reconnect', commonTrackingParams).catch(() => {});
220
211
  currentJob = await launchCommandAndGetStreams({
221
212
  socket: currentJob.socket,
222
213
  guid: cliCommand.guid,
@@ -248,24 +239,12 @@ const bindReconnectEvents = ({
248
239
  });
249
240
  currentJob.socket.on('retry', async () => {
250
241
  debug('socket: retry');
251
- _rollbar.rollbar.info('WP-CLI socket.io.on( \'retry\' )', {
252
- custom: {
253
- code: 'wp-cli-on-retry',
254
- commandGuid: cliCommand.guid
255
- }
256
- });
257
242
  setTimeout(() => {
258
243
  currentJob.socket.io.engine.close();
259
244
  }, 5000);
260
245
  });
261
246
  currentJob.socket.on('connect_error', () => {
262
247
  debug('socket: connect_error; forcing the preference for websocket');
263
- _rollbar.rollbar.info('WP-CLI socket.on( \'connect_error\' )', {
264
- custom: {
265
- code: 'wp-cli-on-connect_error',
266
- commandGuid: cliCommand.guid
267
- }
268
- });
269
248
 
270
249
  // Force the preference for WebSocket in case we see an error during connection
271
250
  // https://socket.io/docs/v3/client-initialization/#low-level-engine-options
@@ -340,7 +319,7 @@ const bindReconnectEvents = ({
340
319
  };
341
320
  /* eslint-enable camelcase */
342
321
 
343
- (0, _tracker.trackEvent)('wpcli_command_execute', commonTrackingParams);
322
+ (0, _tracker.trackEvent)('wpcli_command_execute', commonTrackingParams).catch(() => {});
344
323
  if (isSubShell) {
345
324
  // Reset the cursor (can get messed up with enquirer)
346
325
  process.stdout.write('\u001b[?25h');
@@ -351,7 +330,7 @@ const bindReconnectEvents = ({
351
330
  value: `wp ${cmd}`
352
331
  }], `Are you sure you want to run this command on ${(0, _format.formatEnvironment)(envName)} for site ${appName}?`));
353
332
  if (!yes) {
354
- (0, _tracker.trackEvent)('wpcli_confirm_cancel', commonTrackingParams);
333
+ (0, _tracker.trackEvent)('wpcli_confirm_cancel', commonTrackingParams).catch(() => {});
355
334
  console.log('Command cancelled');
356
335
  process.exit();
357
336
  }
@@ -418,7 +397,6 @@ const bindReconnectEvents = ({
418
397
  });
419
398
  } else {
420
399
  // Else, other type of error, just dump it
421
- _rollbar.rollbar.error(error);
422
400
  console.log(error);
423
401
  }
424
402
  if (!isSubShell) {
@@ -436,14 +414,6 @@ const bindReconnectEvents = ({
436
414
  }
437
415
  }
438
416
  } = result;
439
- if (line.includes("'")) {
440
- _rollbar.rollbar.info('WP-CLI Command containing single quotes', {
441
- custom: {
442
- code: 'wp-cli-single-quotes',
443
- commandGuid: cliCommand.guid
444
- }
445
- });
446
- }
447
417
  const token = await _token.default.get();
448
418
  const extraHeaders = {
449
419
  Authorization: `Bearer ${token.raw}`
@@ -488,12 +458,14 @@ const bindReconnectEvents = ({
488
458
  process.stdin.on('data', data => {
489
459
  // only run this in interactive mode for prompts from WP commands
490
460
  if (commandRunning && 0 === Buffer.compare(data, Buffer.from('\r'))) {
491
- if (currentJob && currentJob.stdinStream) {
461
+ var _currentJob;
462
+ if ((_currentJob = currentJob) !== null && _currentJob !== void 0 && _currentJob.stdinStream) {
492
463
  currentJob.stdinStream.write('\n');
493
464
  }
494
465
  }
495
466
  });
496
467
  subShellRl.on('SIGINT', async () => {
468
+ var _currentJob2;
497
469
  // if we have a 2nd SIGINT, exit immediately
498
470
  if (countSIGINT >= 1) {
499
471
  process.exit();
@@ -502,7 +474,7 @@ const bindReconnectEvents = ({
502
474
 
503
475
  // write out CTRL-C/SIGINT
504
476
  process.stdin.write(cancelCommandChar);
505
- if (currentJob && currentJob.stdoutStream) {
477
+ if ((_currentJob2 = currentJob) !== null && _currentJob2 !== void 0 && _currentJob2.stdoutStream) {
506
478
  currentJob.stdoutStream.end();
507
479
  }
508
480
  await (0, _tracker.trackEvent)('wpcli_cancel_command', commonTrackingParams);
package/dist/bin/vip.js CHANGED
@@ -10,9 +10,8 @@ var _chalk = _interopRequireDefault(require("chalk"));
10
10
  var _debug = _interopRequireDefault(require("debug"));
11
11
  var _config = _interopRequireDefault(require("../lib/cli/config"));
12
12
  var _command = _interopRequireWildcard(require("../lib/cli/command"));
13
- var _token = _interopRequireDefault(require("../lib/token"));
13
+ var _token2 = _interopRequireDefault(require("../lib/token"));
14
14
  var _tracker = require("../lib/tracker");
15
- var _rollbar = require("../lib/rollbar");
16
15
  var _logout = _interopRequireDefault(require("../lib/logout"));
17
16
  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); }
18
17
  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; }
@@ -40,15 +39,16 @@ function doesArgvHaveAtLeastOneParam(argv, params) {
40
39
  return argv.some(arg => params.includes(arg));
41
40
  }
42
41
  const rootCmd = async function () {
43
- let token = await _token.default.get();
42
+ var _token;
43
+ let token = await _token2.default.get();
44
44
  const isHelpCommand = doesArgvHaveAtLeastOneParam(process.argv, ['help', '-h', '--help']);
45
45
  const isVersionCommand = doesArgvHaveAtLeastOneParam(process.argv, ['-v', '--version']);
46
46
  const isLogoutCommand = doesArgvHaveAtLeastOneParam(process.argv, ['logout']);
47
47
  const isLoginCommand = doesArgvHaveAtLeastOneParam(process.argv, ['login']);
48
48
  const isDevEnvCommandWithoutEnv = doesArgvHaveAtLeastOneParam(process.argv, ['dev-env']) && !(0, _command.containsAppEnvArgument)(process.argv);
49
49
  debug('Argv:', process.argv);
50
- if (!isLoginCommand && (isLogoutCommand || isHelpCommand || isVersionCommand || isDevEnvCommandWithoutEnv || token && token.valid())) {
51
- runCmd();
50
+ if (!isLoginCommand && (isLogoutCommand || isHelpCommand || isVersionCommand || isDevEnvCommandWithoutEnv || (_token = token) !== null && _token !== void 0 && _token.valid())) {
51
+ await runCmd();
52
52
  } else {
53
53
  console.log();
54
54
  console.log(' _ __ ________ ________ ____');
@@ -83,10 +83,9 @@ const rootCmd = async function () {
83
83
  message: 'Access Token:'
84
84
  });
85
85
  try {
86
- token = new _token.default(tokenInput);
86
+ token = new _token2.default(tokenInput);
87
87
  } catch (err) {
88
88
  console.log('The token provided is malformed. Please check the token and try again.');
89
- _rollbar.rollbar.error(err);
90
89
  await (0, _tracker.trackEvent)('login_command_token_submit_error', {
91
90
  error: err.message
92
91
  });
@@ -107,12 +106,11 @@ const rootCmd = async function () {
107
106
  return;
108
107
  }
109
108
  try {
110
- _token.default.set(token.raw);
109
+ await _token2.default.set(token.raw);
111
110
  } catch (err) {
112
111
  await (0, _tracker.trackEvent)('login_command_token_submit_error', {
113
112
  error: err.message
114
113
  });
115
- _rollbar.rollbar.error(err);
116
114
  throw err;
117
115
  }
118
116
 
@@ -123,7 +121,9 @@ const rootCmd = async function () {
123
121
  console.log('You are now logged in - see `vip -h` for a list of available commands.');
124
122
  process.exit();
125
123
  }
126
- runCmd();
124
+ await runCmd();
127
125
  }
128
126
  };
129
- rootCmd();
127
+
128
+ // We may end up having an unhandled rejection here :-(
129
+ void rootCmd();