@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.
- package/.sonarcloud.properties +2 -0
- package/CHANGELOG.md +10 -0
- package/assets/dev-env.lando.template.yml.ejs +7 -2
- package/dist/bin/vip-app-list.js +0 -2
- package/dist/bin/vip-config-envvar-delete.js +0 -2
- package/dist/bin/vip-config-envvar-get-all.js +0 -2
- package/dist/bin/vip-config-envvar-get.js +0 -2
- package/dist/bin/vip-config-envvar-list.js +0 -2
- package/dist/bin/vip-config-envvar-set.js +0 -2
- package/dist/bin/vip-dev-env-create.js +4 -1
- package/dist/bin/vip-dev-env-sync-sql.js +86 -0
- package/dist/bin/vip-dev-env-sync.js +21 -0
- package/dist/bin/vip-dev-env.js +1 -1
- package/dist/bin/vip-import-sql.js +0 -2
- package/dist/bin/vip-import-validate-sql.js +2 -2
- package/dist/bin/vip-logs.js +0 -3
- package/dist/bin/vip-wp.js +7 -35
- package/dist/bin/vip.js +11 -11
- package/dist/commands/dev-env-sync-sql.js +30 -15
- package/dist/commands/export-sql.js +12 -8
- package/dist/lib/api/feature-flags.js +2 -1
- package/dist/lib/api.js +2 -2
- package/dist/lib/app.js +2 -0
- package/dist/lib/cli/command.js +0 -4
- package/dist/lib/cli/format.js +3 -3
- package/dist/lib/dev-environment/dev-environment-cli.js +74 -13
- package/dist/lib/dev-environment/dev-environment-lando.js +2 -2
- package/dist/lib/keychain/insecure.js +25 -26
- package/dist/lib/keychain/secure.js +5 -2
- package/dist/lib/keychain.js +11 -18
- package/dist/lib/media-import/status.js +2 -2
- package/dist/lib/site-import/status.js +4 -3
- package/dist/lib/token.js +17 -6
- package/dist/lib/tracker.js +3 -4
- package/dist/lib/validations/sql.js +3 -3
- package/noImplictAnyImportBypass.d.ts +6 -0
- package/npm-shrinkwrap.json +970 -367
- package/package.json +29 -6
- package/tsconfig.json +35 -0
- package/dist/lib/keychain/browser.js +0 -31
- package/dist/lib/rollbar.js +0 -29
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
|
-
-
|
|
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:
|
package/dist/bin/vip-app-list.js
CHANGED
|
@@ -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.
|
|
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);
|
package/dist/bin/vip-dev-env.js
CHANGED
|
@@ -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 (!
|
|
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
|
});
|
package/dist/bin/vip-logs.js
CHANGED
|
@@ -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;
|
package/dist/bin/vip-wp.js
CHANGED
|
@@ -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
|
-
|
|
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 &&
|
|
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
|
|
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
|
-
|
|
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 &&
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
127
|
+
|
|
128
|
+
// We may end up having an unhandled rejection here :-(
|
|
129
|
+
void rootCmd();
|