@automattic/vip 2.17.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  ## Changelog
2
2
 
3
+ ### 2.18.0 (15 Sep 2022)
4
+ - #1103 Force the preference for WebSocket in case we see an error during connection
5
+ - #1102 Remove http proxy support
6
+ - #1096 [dev-env] Supports extended information table
7
+ - #1100 Add GitHub action to mark inactive issues and PRs as stale
8
+ - #1099 Add @app.env to commands help
9
+ - #1092 Improve login + logout
10
+ - #1097 Don't pipe output through less
11
+
3
12
  ### 2.17.0 (06 Sep 2022)
4
13
  - #1093 [dev-env] use latest proxy image
5
14
  - #1091 Extract http helper into standalone function
@@ -34,7 +34,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
34
34
  /**
35
35
  * Internal dependencies
36
36
  */
37
- const baseUsage = 'vip config envvar delete'; // Command examples
37
+ const baseUsage = 'vip @mysite.develop config envvar delete'; // Command examples
38
38
 
39
39
  const examples = [{
40
40
  usage: `${baseUsage} MY_VARIABLE`,
@@ -34,7 +34,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
34
34
  /**
35
35
  * Internal dependencies
36
36
  */
37
- const usage = 'vip config envvar get-all'; // Command examples
37
+ const usage = 'vip @mysite.develop config envvar get-all'; // Command examples
38
38
 
39
39
  const examples = [{
40
40
  usage,
@@ -32,7 +32,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
32
32
  /**
33
33
  * Internal dependencies
34
34
  */
35
- const baseUsage = 'vip config envvar get'; // Command examples
35
+ const baseUsage = 'vip @mysite.develop config envvar get'; // Command examples
36
36
 
37
37
  const examples = [{
38
38
  usage: `${baseUsage} MY_VARIABLE`,
@@ -34,7 +34,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
34
34
  /**
35
35
  * Internal dependencies
36
36
  */
37
- const usage = 'vip config envvar list'; // Command examples
37
+ const usage = 'vip @mysite.develop config envvar list'; // Command examples
38
38
 
39
39
  const examples = [{
40
40
  usage,
@@ -36,7 +36,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
36
36
  /**
37
37
  * Internal dependencies
38
38
  */
39
- const baseUsage = 'vip config envvar set';
39
+ const baseUsage = 'vip @mysite.develop config envvar set';
40
40
  const NEW_RELIC_ENVVAR_KEY = 'NEW_RELIC_LICENSE_KEY'; // Command examples
41
41
 
42
42
  const examples = [{
@@ -28,10 +28,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
28
28
 
29
29
  // Command examples
30
30
  const examples = [{
31
- usage: 'vip config software get wordpress --format json',
31
+ usage: 'vip @mysite.develop config software get wordpress --format json',
32
32
  description: 'Read current software settings for WordPress in JSON format'
33
33
  }, {
34
- usage: 'vip config software get',
34
+ usage: 'vip @mysite.develop config software get',
35
35
  description: 'Read current software settings for all components'
36
36
  }];
37
37
  (0, _command.default)({
@@ -41,7 +41,7 @@ const examples = [{
41
41
  envContext: true,
42
42
  wildcardCommand: true,
43
43
  format: true,
44
- usage: 'vip config software get <wordpress|php|nodejs|muplugins>'
44
+ usage: 'vip @mysite.develop config software get <wordpress|php|nodejs|muplugins>'
45
45
  }).examples(examples).argv(process.argv, async (arg, opt) => {
46
46
  var _opt$env;
47
47
 
@@ -43,12 +43,12 @@ const cmd = (0, _command.default)({
43
43
  appQueryFragments: _software.appQueryFragments,
44
44
  envContext: true,
45
45
  wildcardCommand: true,
46
- usage: 'vip config software update <wordpress|php|nodejs|muplugins> <version>'
46
+ usage: 'vip @mysite.develop config software update <wordpress|php|nodejs|muplugins> <version>'
47
47
  }).examples([{
48
- usage: 'vip config software update wordpress 6.0',
48
+ usage: 'vip @mysite.develop config software update wordpress 6.0',
49
49
  description: 'Update WordPress to 6.0.x'
50
50
  }, {
51
- usage: 'vip config software update nodejs 16',
51
+ usage: 'vip @mysite.develop config software update nodejs 16',
52
52
  description: 'Update Node.js to v16'
53
53
  }]);
54
54
  cmd.option('force', 'Auto-confirm update');
@@ -20,8 +20,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
20
 
21
21
  (0, _command.default)({
22
22
  requiredArgs: 1,
23
- usage: 'vip config software <action>'
24
- }).command('get', 'Read current software settings').command('update', 'Update software settings').examples([{
25
- usage: 'vip config software update <wordpress|php|nodejs|muplugins> <version>',
26
- description: 'Update <component> to <version>'
27
- }]).argv(process.argv);
23
+ usage: 'vip @mysite.develop config software <action>'
24
+ }).command('get', 'Read current software settings').command('update', 'Update software settings').argv(process.argv);
@@ -97,7 +97,9 @@ cmd.argv(process.argv, async (arg, opt) => {
97
97
 
98
98
  try {
99
99
  await (0, _devEnvironmentCore.createEnvironment)(instanceData);
100
- await (0, _devEnvironmentCore.printEnvironmentInfo)(slug);
100
+ await (0, _devEnvironmentCore.printEnvironmentInfo)(slug, {
101
+ extended: false
102
+ });
101
103
  const message = '\n' + _chalk.default.green('✓') + ` environment created.\n\nTo start it please run:\n\n${startCommand}\n`;
102
104
  console.log(message);
103
105
  await (0, _tracker.trackEvent)('dev_env_create_command_success', trackingInfo);
@@ -35,7 +35,7 @@ const examples = [{
35
35
  usage: `${_devEnvironment.DEV_ENVIRONMENT_FULL_COMMAND} info --slug=my_site`,
36
36
  description: 'Return information about a local dev environment named "my_site"'
37
37
  }];
38
- (0, _command.default)().option('slug', 'Custom name of the dev environment').option('all', 'Show Info for all local dev environments').examples(examples).argv(process.argv, async (arg, opt) => {
38
+ (0, _command.default)().option('slug', 'Custom name of the dev environment').option('all', 'Show Info for all local dev environments').option('extended', 'Show extended information about the dev environment').examples(examples).argv(process.argv, async (arg, opt) => {
39
39
  await (0, _devEnvironmentCli.validateDependencies)();
40
40
  const slug = (0, _devEnvironmentCli.getEnvironmentName)(opt);
41
41
  const trackingInfo = opt.all ? {
@@ -45,10 +45,14 @@ const examples = [{
45
45
  debug('Args: ', arg, 'Options: ', opt);
46
46
 
47
47
  try {
48
+ const options = {
49
+ extended: !!opt.extended
50
+ };
51
+
48
52
  if (opt.all) {
49
- await (0, _devEnvironmentCore.printAllEnvironmentsInfo)();
53
+ await (0, _devEnvironmentCore.printAllEnvironmentsInfo)(options);
50
54
  } else {
51
- await (0, _devEnvironmentCore.printEnvironmentInfo)(slug);
55
+ await (0, _devEnvironmentCore.printEnvironmentInfo)(slug, options);
52
56
  }
53
57
 
54
58
  await (0, _tracker.trackEvent)('dev_env_info_command_success', trackingInfo);
@@ -229,6 +229,7 @@ const bindReconnectEvents = ({
229
229
  currentJob.socket.io.removeAllListeners('reconnect');
230
230
  currentJob.socket.io.removeAllListeners('reconnect_attempt');
231
231
  currentJob.socket.removeAllListeners('retry');
232
+ currentJob.socket.removeAllListeners('connect_error');
232
233
  currentJob.socket.io.on('reconnect', async () => {
233
234
  debug('socket.io: reconnect');
234
235
 
@@ -286,6 +287,20 @@ const bindReconnectEvents = ({
286
287
  currentJob.socket.io.engine.close();
287
288
  }, 5000);
288
289
  });
290
+ currentJob.socket.on('connect_error', () => {
291
+ debug('socket: connect_error; forcing the preference for websocket');
292
+
293
+ _rollbar.rollbar.info('WP-CLI socket.on( \'connect_error\' )', {
294
+ custom: {
295
+ code: 'wp-cli-on-connect_error',
296
+ commandGuid: cliCommand.guid
297
+ }
298
+ }); // Force the preference for WebSocket in case we see an error during connection
299
+ // https://socket.io/docs/v3/client-initialization/#low-level-engine-options
300
+
301
+
302
+ currentJob.socket.io.opts.transports = ['websocket', 'polling'];
303
+ });
289
304
  currentJob.socket.on('exit', async ({
290
305
  exitCode,
291
306
  message
@@ -479,12 +494,16 @@ const bindReconnectEvents = ({
479
494
  }
480
495
 
481
496
  const token = await _token.default.get();
497
+ const extraHeaders = {
498
+ Authorization: `Bearer ${token.raw}`
499
+ };
482
500
  const socket = (0, _socket.default)(`${_api.API_HOST}/wp-cli`, {
483
501
  transportOptions: {
484
502
  polling: {
485
- extraHeaders: {
486
- Authorization: `Bearer ${token.raw}`
487
- }
503
+ extraHeaders
504
+ },
505
+ websocket: {
506
+ extraHeaders
488
507
  }
489
508
  },
490
509
  agent: (0, _proxyAgent.createProxyAgent)(_api.API_HOST)
package/dist/bin/vip.js CHANGED
@@ -23,6 +23,8 @@ var _tracker = require("../lib/tracker");
23
23
 
24
24
  var _rollbar = require("../lib/rollbar");
25
25
 
26
+ var _logout = _interopRequireDefault(require("../lib/logout"));
27
+
26
28
  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); }
27
29
 
28
30
  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; }
@@ -45,8 +47,7 @@ const tokenURL = 'https://dashboard.wpvip.com/me/cli/token';
45
47
  const runCmd = async function () {
46
48
  const cmd = (0, _command.default)();
47
49
  cmd.command('logout', 'Logout from your current session', async () => {
48
- await _token.default.purge();
49
- await (0, _tracker.trackEvent)('logout_command_execute');
50
+ await (0, _logout.default)();
50
51
  console.log('You are successfully logged out.');
51
52
  }).command('app', 'List and modify your VIP applications').command('cache', 'Manage page cache for your VIP applications').command('config', 'Set configuration for your VIP applications').command('dev-env', 'Use local dev-environment').command('import', 'Import media or SQL files into your VIP applications').command('logs', 'Get logs from your VIP applications').command('search-replace', 'Perform search and replace tasks on files').command('sync', 'Sync production to a development environment').command('whoami', 'Display details about the currently logged-in user').command('wp', 'Run WP CLI commands against an environment');
52
53
  cmd.argv(process.argv);
@@ -56,10 +57,11 @@ const rootCmd = async function () {
56
57
  let token = await _token.default.get();
57
58
  const isHelpCommand = process.argv.some(arg => arg === 'help' || arg === '-h' || arg === '--help');
58
59
  const isLogoutCommand = process.argv.some(arg => arg === 'logout');
60
+ const isLoginCommand = process.argv.some(arg => arg === 'login');
59
61
  const isDevEnvCommandWithoutEnv = process.argv.some(arg => arg === 'dev-env') && !(0, _command.containsAppEnvArgument)(process.argv);
60
62
  debug('Argv:', process.argv);
61
63
 
62
- if (isLogoutCommand || isHelpCommand || isDevEnvCommandWithoutEnv || token && token.valid()) {
64
+ if (!isLoginCommand && (isLogoutCommand || isHelpCommand || isDevEnvCommandWithoutEnv || token && token.valid())) {
63
65
  runCmd();
64
66
  } else {
65
67
  console.log();
@@ -142,6 +144,12 @@ const rootCmd = async function () {
142
144
 
143
145
  await (0, _tracker.aliasUser)(token.id);
144
146
  await (0, _tracker.trackEvent)('login_command_token_submit_success');
147
+
148
+ if (isLoginCommand) {
149
+ console.log('You are now logged in - see `vip -h` for a list of available commands.');
150
+ process.exit();
151
+ }
152
+
145
153
  runCmd();
146
154
  }
147
155
  };
@@ -29,8 +29,6 @@ var _package = _interopRequireDefault(require("../../../package.json"));
29
29
 
30
30
  var _tracker = require("../tracker");
31
31
 
32
- var _pager = _interopRequireDefault(require("./pager"));
33
-
34
32
  var _envAlias = require("./envAlias");
35
33
 
36
34
  var _rollbar = require("../rollbar");
@@ -526,9 +524,7 @@ _args.default.argv = async function (argv, cb) {
526
524
  format: options.format
527
525
  });
528
526
  const formattedOut = (0, _format.formatData)(res, options.format);
529
- const page = (0, _pager.default)();
530
- page.write(formattedOut + '\n');
531
- page.end();
527
+ console.log(formattedOut);
532
528
  return {};
533
529
  }
534
530
  }
@@ -39,7 +39,7 @@ var _xml2js = require("xml2js");
39
39
 
40
40
  var _debug = _interopRequireDefault(require("debug"));
41
41
 
42
- var _api = _interopRequireDefault(require("./api"));
42
+ var _http = _interopRequireDefault(require("./api/http"));
43
43
 
44
44
  var _fileSize = require("./constants/file-size");
45
45
 
@@ -308,10 +308,7 @@ async function getSignedUploadRequestData({
308
308
  uploadId = undefined,
309
309
  partNumber = undefined
310
310
  }) {
311
- const {
312
- apiFetch
313
- } = await (0, _api.default)();
314
- const response = await apiFetch('/upload/site-import-presigned-url', {
311
+ const response = await (0, _http.default)('/upload/site-import-presigned-url', {
315
312
  method: 'POST',
316
313
  body: {
317
314
  action,
@@ -100,7 +100,9 @@ async function startEnvironment(slug, options) {
100
100
  await (0, _devEnvironmentLando.landoRebuild)(instancePath);
101
101
  }
102
102
 
103
- await printEnvironmentInfo(slug);
103
+ await printEnvironmentInfo(slug, {
104
+ extended: false
105
+ });
104
106
  }
105
107
 
106
108
  async function stopEnvironment(slug) {
@@ -191,18 +193,26 @@ async function destroyEnvironment(slug, removeFiles) {
191
193
  }
192
194
  }
193
195
 
194
- async function printAllEnvironmentsInfo() {
196
+ async function printAllEnvironmentsInfo(options) {
195
197
  const allEnvNames = getAllEnvironmentNames();
196
198
  debug('Will print info for all environments. Names found: ', allEnvNames);
197
199
  console.log('Found ' + _chalk.default.bold(allEnvNames.length) + ' environments' + (allEnvNames.length ? ':' : '.'));
198
200
 
199
201
  for (const envName of allEnvNames) {
200
202
  console.log('\n');
201
- await printEnvironmentInfo(envName);
203
+ await printEnvironmentInfo(envName, options);
202
204
  }
203
205
  }
204
206
 
205
- async function printEnvironmentInfo(slug) {
207
+ function parseComponentForInfo(component) {
208
+ if (component.mode === 'local') {
209
+ return component.dir || '';
210
+ }
211
+
212
+ return component.tag || '[demo-image]';
213
+ }
214
+
215
+ async function printEnvironmentInfo(slug, options) {
206
216
  debug('Will get info for an environment', slug);
207
217
  const instancePath = getEnvironmentPath(slug);
208
218
  debug('Instance path for', slug, 'is:', instancePath);
@@ -214,6 +224,21 @@ async function printEnvironmentInfo(slug) {
214
224
  }
215
225
 
216
226
  const appInfo = await (0, _devEnvironmentLando.landoInfo)(instancePath);
227
+
228
+ if (options.extended) {
229
+ const environmentData = readEnvironmentData(slug);
230
+ appInfo.title = environmentData.wpTitle;
231
+ appInfo.multisite = !!environmentData.multisite;
232
+ appInfo.php = environmentData.php.split(':')[1];
233
+ appInfo.wordpress = parseComponentForInfo(environmentData.wordpress);
234
+ appInfo['Mu plugins'] = parseComponentForInfo(environmentData.muPlugins);
235
+ appInfo['App Code'] = parseComponentForInfo(environmentData.appCode);
236
+
237
+ if (environmentData.mediaRedirectDomain) {
238
+ appInfo['Media Redirect'] = environmentData.mediaRedirectDomain;
239
+ }
240
+ }
241
+
217
242
  (0, _devEnvironmentCli.printTable)(appInfo);
218
243
  }
219
244
 
@@ -4,8 +4,6 @@ var _socksProxyAgent = require("socks-proxy-agent");
4
4
 
5
5
  var _httpsProxyAgent = require("https-proxy-agent");
6
6
 
7
- var _httpProxyAgent = require("http-proxy-agent");
8
-
9
7
  var _proxyFromEnv = require("proxy-from-env");
10
8
 
11
9
  var _debug = _interopRequireDefault(require("debug"));
@@ -27,15 +25,13 @@ const debug = (0, _debug.default)('vip:proxy-agent');
27
25
  // 2. No applicable variables are set: null is returned (thus, no proxy agent is returned)
28
26
  // 3. VIP_USE_SYSTEM_PROXY and SOCKS_PROXY are set: a SOCKS_PROXY is returned
29
27
  // 4. VIP_USE_SYSTEM_PROXY and HTTPS_PROXY are set: an HTTPS_PROXY is returned
30
- // 5. VIP_USE_SYSTEM_PROXY and HTTP_PROXY are set: an HTTP_PROXY is returned
31
- // 6. NO_PROXY is set along with VIP_USE_SYSTEM_PROXY and any system proxy: null is returned if the no proxy applies, otherwise the first active proxy is used
28
+ // 5. NO_PROXY is set along with VIP_USE_SYSTEM_PROXY and any system proxy: null is returned if the no proxy applies, otherwise the first active proxy is used
32
29
  // This allows near full customization by the client of what proxy should be used, instead of making assumptions based on the URL string
33
30
 
34
31
  function createProxyAgent(url) {
35
32
  const VIP_PROXY = process.env.VIP_PROXY || process.env.vip_proxy || null;
36
33
  const SOCKS_PROXY = process.env.SOCKS_PROXY || process.env.socks_proxy || null;
37
34
  const HTTPS_PROXY = process.env.HTTPS_PROXY || process.env.https_proxy || null;
38
- const HTTP_PROXY = process.env.HTTP_PROXY || process.env.http_proxy || null;
39
35
  const NO_PROXY = process.env.NO_PROXY || process.env.no_proxy || null; // VIP Socks Proxy should take precedence and should be fully backward compatible
40
36
 
41
37
  if (VIP_PROXY) {
@@ -54,11 +50,6 @@ function createProxyAgent(url) {
54
50
  debug(`Enabling HTTPS proxy support using config: ${HTTPS_PROXY}`);
55
51
  return new _httpsProxyAgent.HttpsProxyAgent(HTTPS_PROXY);
56
52
  }
57
-
58
- if (HTTP_PROXY) {
59
- debug(`Enabling HTTP proxy support using config: ${HTTP_PROXY}`);
60
- return new _httpProxyAgent.HttpProxyAgent(HTTP_PROXY);
61
- }
62
53
  } // If no environment variables are set, the no proxy is in effect, or if the proxy enable is not set return null (equivilant of no Proxy agent)
63
54
 
64
55
 
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _token = _interopRequireDefault(require("./token"));
9
+
10
+ var _tracker = require("./tracker");
11
+
12
+ var _http = _interopRequireDefault(require("./api/http"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+ var _default = async () => {
20
+ await (0, _http.default)('/logout', {
21
+ method: 'post'
22
+ });
23
+ await _token.default.purge();
24
+ await (0, _tracker.trackEvent)('logout_command_execute');
25
+ };
26
+
27
+ exports.default = _default;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automattic/vip",
3
- "version": "2.17.0",
3
+ "version": "2.18.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -3810,11 +3810,6 @@
3810
3810
  "defer-to-connect": "^1.0.1"
3811
3811
  }
3812
3812
  },
3813
- "@tootallnate/once": {
3814
- "version": "2.0.0",
3815
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
3816
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="
3817
- },
3818
3813
  "@types/babel__core": {
3819
3814
  "version": "7.1.12",
3820
3815
  "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
@@ -4042,7 +4037,7 @@
4042
4037
  "JSONStream": {
4043
4038
  "version": "1.3.2",
4044
4039
  "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
4045
- "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==",
4040
+ "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=",
4046
4041
  "requires": {
4047
4042
  "jsonparse": "^1.2.0",
4048
4043
  "through": ">=2.2.7 <3"
@@ -4845,7 +4840,7 @@
4845
4840
  "basename": {
4846
4841
  "version": "0.1.2",
4847
4842
  "resolved": "https://registry.npmjs.org/basename/-/basename-0.1.2.tgz",
4848
- "integrity": "sha512-A/kA5Ow/F5ydLNYPBSJAUZNzLCJGQnntwmc02W/AKJhkCuv72/1DKQ+rYaeWvK9b41ez0o23TEGp7Mm12uTk4w=="
4843
+ "integrity": "sha1-1gOb75OYYxYMeASMztPF5/iMsmE="
4849
4844
  },
4850
4845
  "big.js": {
4851
4846
  "version": "5.2.2",
@@ -5079,7 +5074,7 @@
5079
5074
  "buffer-fill": {
5080
5075
  "version": "1.0.0",
5081
5076
  "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
5082
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
5077
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
5083
5078
  },
5084
5079
  "buffer-from": {
5085
5080
  "version": "1.1.1",
@@ -5404,7 +5399,7 @@
5404
5399
  "clean-stacktrace": {
5405
5400
  "version": "1.1.0",
5406
5401
  "resolved": "https://registry.npmjs.org/clean-stacktrace/-/clean-stacktrace-1.1.0.tgz",
5407
- "integrity": "sha512-S8H9ouQL4PYkf/HM7498vxcAIMo9RgUf4rEuP9HrG6+FeRQ+dHV28c8iKGfmDSq/UQU0fnFiTDV/XCyfQz+U8g==",
5402
+ "integrity": "sha1-i4zch/ZA2qupxZWrbtuJe2OwzjM=",
5408
5403
  "requires": {
5409
5404
  "stack-utils-node-internals": "^1.0.1"
5410
5405
  }
@@ -5467,7 +5462,7 @@
5467
5462
  }
5468
5463
  },
5469
5464
  "cli-table": {
5470
- "version": "git+ssh://git@github.com/automattic/cli-table.git#7b14232ba779929e1859b267bf753c150d90a618",
5465
+ "version": "github:automattic/cli-table#7b14232ba779929e1859b267bf753c150d90a618",
5471
5466
  "from": "github:automattic/cli-table#7b14232",
5472
5467
  "requires": {
5473
5468
  "chalk": "^2.4.1",
@@ -5510,7 +5505,7 @@
5510
5505
  "is-fullwidth-code-point": {
5511
5506
  "version": "2.0.0",
5512
5507
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
5513
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
5508
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
5514
5509
  },
5515
5510
  "string-width": {
5516
5511
  "version": "2.1.1",
@@ -5524,7 +5519,7 @@
5524
5519
  "strip-ansi": {
5525
5520
  "version": "4.0.0",
5526
5521
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
5527
- "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
5522
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
5528
5523
  "requires": {
5529
5524
  "ansi-regex": "^3.0.0"
5530
5525
  }
@@ -5883,7 +5878,7 @@
5883
5878
  "cycle": {
5884
5879
  "version": "1.0.3",
5885
5880
  "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
5886
- "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA=="
5881
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
5887
5882
  },
5888
5883
  "damerau-levenshtein": {
5889
5884
  "version": "1.0.6",
@@ -5927,7 +5922,7 @@
5927
5922
  "decamelize": {
5928
5923
  "version": "1.2.0",
5929
5924
  "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
5930
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
5925
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
5931
5926
  },
5932
5927
  "decimal.js": {
5933
5928
  "version": "10.3.1",
@@ -6110,12 +6105,12 @@
6110
6105
  "isarray": {
6111
6106
  "version": "0.0.1",
6112
6107
  "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6113
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
6108
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
6114
6109
  },
6115
6110
  "readable-stream": {
6116
6111
  "version": "1.0.34",
6117
6112
  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
6118
- "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
6113
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
6119
6114
  "requires": {
6120
6115
  "core-util-is": "~1.0.0",
6121
6116
  "inherits": "~2.0.1",
@@ -6126,7 +6121,7 @@
6126
6121
  "string_decoder": {
6127
6122
  "version": "0.10.31",
6128
6123
  "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
6129
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
6124
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
6130
6125
  }
6131
6126
  }
6132
6127
  },
@@ -6222,7 +6217,7 @@
6222
6217
  "dotenv": {
6223
6218
  "version": "4.0.0",
6224
6219
  "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
6225
- "integrity": "sha512-XcaMACOr3JMVcEv0Y/iUM2XaOsATRZ3U1In41/1jjK6vJZ2PZbQ1bzCG8uvaByfaBpl9gqc9QWJovpUGBXLLYQ=="
6220
+ "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0="
6226
6221
  },
6227
6222
  "duplexer3": {
6228
6223
  "version": "0.1.4",
@@ -6454,7 +6449,7 @@
6454
6449
  "es6-promisify": {
6455
6450
  "version": "5.0.0",
6456
6451
  "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
6457
- "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
6452
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
6458
6453
  "requires": {
6459
6454
  "es6-promise": "^4.0.3"
6460
6455
  }
@@ -6687,7 +6682,7 @@
6687
6682
  "dev": true
6688
6683
  },
6689
6684
  "eslint-config-wpvip": {
6690
- "version": "git+ssh://git@github.com/automattic/eslint-config-wpvip.git#c6605d1c3a545d43ac2149cd464ec3c38ebc58d5",
6685
+ "version": "github:automattic/eslint-config-wpvip#c6605d1c3a545d43ac2149cd464ec3c38ebc58d5",
6691
6686
  "from": "github:automattic/eslint-config-wpvip#c6605d1",
6692
6687
  "dev": true,
6693
6688
  "requires": {
@@ -7424,7 +7419,7 @@
7424
7419
  "eyes": {
7425
7420
  "version": "0.1.8",
7426
7421
  "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
7427
- "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="
7422
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
7428
7423
  },
7429
7424
  "fast-deep-equal": {
7430
7425
  "version": "3.1.3",
@@ -8139,16 +8134,6 @@
8139
8134
  "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
8140
8135
  "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
8141
8136
  },
8142
- "http-proxy-agent": {
8143
- "version": "5.0.0",
8144
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
8145
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
8146
- "requires": {
8147
- "@tootallnate/once": "2",
8148
- "agent-base": "6",
8149
- "debug": "4"
8150
- }
8151
- },
8152
8137
  "https-proxy-agent": {
8153
8138
  "version": "5.0.1",
8154
8139
  "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -8280,7 +8265,7 @@
8280
8265
  "is-fullwidth-code-point": {
8281
8266
  "version": "2.0.0",
8282
8267
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
8283
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
8268
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
8284
8269
  },
8285
8270
  "string-width": {
8286
8271
  "version": "2.1.1",
@@ -8294,7 +8279,7 @@
8294
8279
  "strip-ansi": {
8295
8280
  "version": "4.0.0",
8296
8281
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
8297
- "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
8282
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
8298
8283
  "requires": {
8299
8284
  "ansi-regex": "^3.0.0"
8300
8285
  }
@@ -8385,7 +8370,7 @@
8385
8370
  "invert-kv": {
8386
8371
  "version": "1.0.0",
8387
8372
  "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
8388
- "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ=="
8373
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
8389
8374
  },
8390
8375
  "ip": {
8391
8376
  "version": "1.1.5",
@@ -8556,7 +8541,7 @@
8556
8541
  "is-docker": {
8557
8542
  "version": "1.1.0",
8558
8543
  "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-1.1.0.tgz",
8559
- "integrity": "sha512-ZEpopPu+bLIb/x3IF9wXxRdAW74e/ity1XGRxpznAaABKhc8mmtRamRB2l71CSs1YMS8FQxDK/vPK10XlhzG2A=="
8544
+ "integrity": "sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE="
8560
8545
  },
8561
8546
  "is-extendable": {
8562
8547
  "version": "0.1.1",
@@ -8685,12 +8670,12 @@
8685
8670
  "is-root": {
8686
8671
  "version": "1.0.0",
8687
8672
  "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
8688
- "integrity": "sha512-1d50EJ7ipFxb9bIx213o6KPaJmHN8f+nR48UZWxWVzDx+NA3kpscxi02oQX3rGkEaLBi9m3ZayHngQc3+bBX9w=="
8673
+ "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU="
8689
8674
  },
8690
8675
  "is-scalar": {
8691
8676
  "version": "1.0.2",
8692
8677
  "resolved": "https://registry.npmjs.org/is-scalar/-/is-scalar-1.0.2.tgz",
8693
- "integrity": "sha512-klbIhwtdVzMAVh4i2CwO3ZxxSJcxjvys0mFKbGsCmPquyaAg07eGvGqyiOZZLm/gYTi48xJkTUjOWCvacZKa5Q=="
8678
+ "integrity": "sha1-Y3XOLLBww/sfLQqb8poatJQ3tx8="
8694
8679
  },
8695
8680
  "is-stream": {
8696
8681
  "version": "1.1.0",
@@ -8725,7 +8710,7 @@
8725
8710
  "is-utf8": {
8726
8711
  "version": "0.2.1",
8727
8712
  "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
8728
- "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
8713
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
8729
8714
  },
8730
8715
  "is-windows": {
8731
8716
  "version": "1.0.2",
@@ -8775,7 +8760,7 @@
8775
8760
  "isstream": {
8776
8761
  "version": "0.1.2",
8777
8762
  "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
8778
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
8763
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
8779
8764
  },
8780
8765
  "istanbul-lib-coverage": {
8781
8766
  "version": "3.0.0",
@@ -10053,7 +10038,7 @@
10053
10038
  "jsonfile": {
10054
10039
  "version": "2.4.0",
10055
10040
  "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
10056
- "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
10041
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
10057
10042
  "requires": {
10058
10043
  "graceful-fs": "^4.1.6"
10059
10044
  }
@@ -10367,7 +10352,7 @@
10367
10352
  "lcid": {
10368
10353
  "version": "1.0.0",
10369
10354
  "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
10370
- "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==",
10355
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
10371
10356
  "requires": {
10372
10357
  "invert-kv": "^1.0.0"
10373
10358
  }
@@ -10440,12 +10425,12 @@
10440
10425
  "camelcase": {
10441
10426
  "version": "3.0.0",
10442
10427
  "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
10443
- "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg=="
10428
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
10444
10429
  },
10445
10430
  "cliui": {
10446
10431
  "version": "3.2.0",
10447
10432
  "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
10448
- "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
10433
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
10449
10434
  "requires": {
10450
10435
  "string-width": "^1.0.1",
10451
10436
  "strip-ansi": "^3.0.1",
@@ -10470,7 +10455,7 @@
10470
10455
  "find-up": {
10471
10456
  "version": "1.1.2",
10472
10457
  "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
10473
- "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
10458
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
10474
10459
  "requires": {
10475
10460
  "path-exists": "^2.0.0",
10476
10461
  "pinkie-promise": "^2.0.0"
@@ -10502,7 +10487,7 @@
10502
10487
  "load-json-file": {
10503
10488
  "version": "1.1.0",
10504
10489
  "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
10505
- "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
10490
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
10506
10491
  "requires": {
10507
10492
  "graceful-fs": "^4.1.2",
10508
10493
  "parse-json": "^2.2.0",
@@ -10514,12 +10499,12 @@
10514
10499
  "ms": {
10515
10500
  "version": "2.0.0",
10516
10501
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
10517
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
10502
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
10518
10503
  },
10519
10504
  "path-exists": {
10520
10505
  "version": "2.1.0",
10521
10506
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
10522
- "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
10507
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
10523
10508
  "requires": {
10524
10509
  "pinkie-promise": "^2.0.0"
10525
10510
  }
@@ -10527,7 +10512,7 @@
10527
10512
  "path-type": {
10528
10513
  "version": "1.1.0",
10529
10514
  "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
10530
- "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
10515
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
10531
10516
  "requires": {
10532
10517
  "graceful-fs": "^4.1.2",
10533
10518
  "pify": "^2.0.0",
@@ -10537,12 +10522,12 @@
10537
10522
  "pify": {
10538
10523
  "version": "2.3.0",
10539
10524
  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
10540
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
10525
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
10541
10526
  },
10542
10527
  "read-pkg": {
10543
10528
  "version": "1.1.0",
10544
10529
  "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
10545
- "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
10530
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
10546
10531
  "requires": {
10547
10532
  "load-json-file": "^1.0.0",
10548
10533
  "normalize-package-data": "^2.3.2",
@@ -10552,7 +10537,7 @@
10552
10537
  "read-pkg-up": {
10553
10538
  "version": "1.0.1",
10554
10539
  "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
10555
- "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
10540
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
10556
10541
  "requires": {
10557
10542
  "find-up": "^1.0.0",
10558
10543
  "read-pkg": "^1.0.0"
@@ -10561,7 +10546,7 @@
10561
10546
  "strip-bom": {
10562
10547
  "version": "2.0.0",
10563
10548
  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
10564
- "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
10549
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
10565
10550
  "requires": {
10566
10551
  "is-utf8": "^0.2.0"
10567
10552
  }
@@ -10569,7 +10554,7 @@
10569
10554
  "wrap-ansi": {
10570
10555
  "version": "2.1.0",
10571
10556
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
10572
- "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
10557
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
10573
10558
  "requires": {
10574
10559
  "string-width": "^1.0.1",
10575
10560
  "strip-ansi": "^3.0.1"
@@ -10578,7 +10563,7 @@
10578
10563
  "yargs": {
10579
10564
  "version": "6.6.0",
10580
10565
  "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
10581
- "integrity": "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==",
10566
+ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
10582
10567
  "requires": {
10583
10568
  "camelcase": "^3.0.0",
10584
10569
  "cliui": "^3.2.0",
@@ -10598,7 +10583,7 @@
10598
10583
  "yargs-parser": {
10599
10584
  "version": "4.2.1",
10600
10585
  "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
10601
- "integrity": "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==",
10586
+ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
10602
10587
  "requires": {
10603
10588
  "camelcase": "^3.0.0"
10604
10589
  }
@@ -10687,7 +10672,7 @@
10687
10672
  },
10688
10673
  "onetime": {
10689
10674
  "version": "1.1.0",
10690
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
10675
+ "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
10691
10676
  "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
10692
10677
  "dev": true
10693
10678
  },
@@ -10918,7 +10903,7 @@
10918
10903
  "mkdir-p": {
10919
10904
  "version": "0.0.7",
10920
10905
  "resolved": "https://registry.npmjs.org/mkdir-p/-/mkdir-p-0.0.7.tgz",
10921
- "integrity": "sha512-VkWaZNxDgZle/aJAemUAWdyYX7geyuleKYFfRejf/pFKjxBDbWrMAy41ijg5EiI1U00WR9JcvynuDedE/fTxLA=="
10906
+ "integrity": "sha1-JMXb4m2jqZ7xWKHu+aXC3Z3laDw="
10922
10907
  },
10923
10908
  "mkdirp": {
10924
10909
  "version": "0.5.6",
@@ -10990,7 +10975,7 @@
10990
10975
  "netrc": {
10991
10976
  "version": "0.1.4",
10992
10977
  "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz",
10993
- "integrity": "sha512-ye8AIYWQcP9MvoM1i0Z2jV0qed31Z8EWXYnyGNkiUAd+Fo8J+7uy90xTV8g/oAbhtjkY7iZbNTizQaXdKUuwpQ=="
10978
+ "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ="
10994
10979
  },
10995
10980
  "nice-try": {
10996
10981
  "version": "1.0.5",
@@ -11044,7 +11029,7 @@
11044
11029
  "clone": {
11045
11030
  "version": "2.1.2",
11046
11031
  "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
11047
- "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
11032
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
11048
11033
  }
11049
11034
  }
11050
11035
  },
@@ -11564,7 +11549,7 @@
11564
11549
  "openurl": {
11565
11550
  "version": "1.1.1",
11566
11551
  "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
11567
- "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA=="
11552
+ "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c="
11568
11553
  },
11569
11554
  "opn": {
11570
11555
  "version": "5.5.0",
@@ -11603,7 +11588,7 @@
11603
11588
  "os-locale": {
11604
11589
  "version": "1.4.0",
11605
11590
  "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
11606
- "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==",
11591
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
11607
11592
  "requires": {
11608
11593
  "lcid": "^1.0.0"
11609
11594
  }
@@ -11631,7 +11616,7 @@
11631
11616
  "p-defer": {
11632
11617
  "version": "1.0.0",
11633
11618
  "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
11634
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw=="
11619
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
11635
11620
  },
11636
11621
  "p-each-series": {
11637
11622
  "version": "2.2.0",
@@ -11701,7 +11686,7 @@
11701
11686
  "parent-require": {
11702
11687
  "version": "1.0.0",
11703
11688
  "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz",
11704
- "integrity": "sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ=="
11689
+ "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc="
11705
11690
  },
11706
11691
  "parse-json": {
11707
11692
  "version": "2.2.0",
@@ -11720,7 +11705,7 @@
11720
11705
  "parse_url": {
11721
11706
  "version": "0.1.1",
11722
11707
  "resolved": "https://registry.npmjs.org/parse_url/-/parse_url-0.1.1.tgz",
11723
- "integrity": "sha512-gxTYYX4ekRbV9/0P9bEQB9w+NiwnB4HlY9LSvd8OK0oMR5OjdN0liBsUIAcegwH3ZimuizSrXZW+V8lAC4bQHg=="
11708
+ "integrity": "sha1-EGa5HI4eSGZa0p6MtpfBQw+K4Bg="
11724
11709
  },
11725
11710
  "parseqs": {
11726
11711
  "version": "0.0.6",
@@ -12285,7 +12270,7 @@
12285
12270
  "rechoir": {
12286
12271
  "version": "0.6.2",
12287
12272
  "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
12288
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
12273
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
12289
12274
  "requires": {
12290
12275
  "resolve": "^1.1.6"
12291
12276
  }
@@ -12462,7 +12447,7 @@
12462
12447
  "require-main-filename": {
12463
12448
  "version": "1.0.1",
12464
12449
  "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
12465
- "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug=="
12450
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
12466
12451
  },
12467
12452
  "requireindex": {
12468
12453
  "version": "1.1.0",
@@ -13120,7 +13105,7 @@
13120
13105
  "split-ca": {
13121
13106
  "version": "1.0.1",
13122
13107
  "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
13123
- "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ=="
13108
+ "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY="
13124
13109
  },
13125
13110
  "split-string": {
13126
13111
  "version": "3.1.0",
@@ -13139,7 +13124,7 @@
13139
13124
  "stack-trace": {
13140
13125
  "version": "0.0.10",
13141
13126
  "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
13142
- "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
13127
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
13143
13128
  },
13144
13129
  "stack-utils": {
13145
13130
  "version": "2.0.5",
@@ -13161,7 +13146,7 @@
13161
13146
  "stack-utils-node-internals": {
13162
13147
  "version": "1.0.1",
13163
13148
  "resolved": "https://registry.npmjs.org/stack-utils-node-internals/-/stack-utils-node-internals-1.0.1.tgz",
13164
- "integrity": "sha512-lMuPPh5lj8Nj+vGsxnrp5LRamN5SF++yJE+skeXz9Chy/Uw93BzxzrnQ/8BLOIKKVsJ44bleARrfSUh3ZGdMZw=="
13149
+ "integrity": "sha1-q0qKRptsvscrC/tYnfXiix0SKB8="
13165
13150
  },
13166
13151
  "stackframe": {
13167
13152
  "version": "1.2.0",
@@ -13389,7 +13374,7 @@
13389
13374
  },
13390
13375
  "strip-ansi": {
13391
13376
  "version": "3.0.1",
13392
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
13377
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
13393
13378
  "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
13394
13379
  "requires": {
13395
13380
  "ansi-regex": "^2.0.0"
@@ -13982,7 +13967,7 @@
13982
13967
  "typedarray": {
13983
13968
  "version": "0.0.6",
13984
13969
  "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
13985
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
13970
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
13986
13971
  },
13987
13972
  "typedarray-to-buffer": {
13988
13973
  "version": "3.1.5",
@@ -14197,7 +14182,7 @@
14197
14182
  "url-pattern": {
14198
14183
  "version": "1.0.3",
14199
14184
  "resolved": "https://registry.npmjs.org/url-pattern/-/url-pattern-1.0.3.tgz",
14200
- "integrity": "sha512-uQcEj/2puA4aq1R3A2+VNVBgaWYR24FdWjl7VNW83rnWftlhyzOZ/tBjezRiC2UkIzuxC8Top3IekN3vUf1WxA=="
14185
+ "integrity": "sha1-BAkpJHGyTyPFDWWkeTF5PStaz8E="
14201
14186
  },
14202
14187
  "use": {
14203
14188
  "version": "3.1.1",
@@ -14243,7 +14228,7 @@
14243
14228
  "valid-url": {
14244
14229
  "version": "1.0.9",
14245
14230
  "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
14246
- "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
14231
+ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA="
14247
14232
  },
14248
14233
  "validate-npm-package-license": {
14249
14234
  "version": "3.0.4",
@@ -14389,7 +14374,7 @@
14389
14374
  "which-module": {
14390
14375
  "version": "1.0.0",
14391
14376
  "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
14392
- "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ=="
14377
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
14393
14378
  },
14394
14379
  "wide-align": {
14395
14380
  "version": "1.1.3",
@@ -14459,7 +14444,7 @@
14459
14444
  "async": {
14460
14445
  "version": "1.0.0",
14461
14446
  "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
14462
- "integrity": "sha512-5mO7DX4CbJzp9zjaFXusQQ4tzKJARjNB1Ih1pVBi8wkbmXy/xzIDgEMXxWePLzt2OdFwaxfneIlT1nCiXubrPQ=="
14447
+ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
14463
14448
  }
14464
14449
  }
14465
14450
  },
@@ -14621,12 +14606,12 @@
14621
14606
  "ansi-styles": {
14622
14607
  "version": "2.2.1",
14623
14608
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
14624
- "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA=="
14609
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
14625
14610
  },
14626
14611
  "chalk": {
14627
14612
  "version": "1.1.3",
14628
14613
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
14629
- "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
14614
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
14630
14615
  "requires": {
14631
14616
  "ansi-styles": "^2.2.1",
14632
14617
  "escape-string-regexp": "^1.0.2",
@@ -14638,7 +14623,7 @@
14638
14623
  "supports-color": {
14639
14624
  "version": "2.0.0",
14640
14625
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
14641
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g=="
14626
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
14642
14627
  }
14643
14628
  }
14644
14629
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automattic/vip",
3
- "version": "2.17.0",
3
+ "version": "2.18.0",
4
4
  "description": "The VIP Javascript library & CLI",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -122,7 +122,6 @@
122
122
  "enquirer": "2.3.6",
123
123
  "graphql": "15.5.1",
124
124
  "graphql-tag": "2.12.5",
125
- "http-proxy-agent": "^5.0.0",
126
125
  "https-proxy-agent": "^5.0.1",
127
126
  "ini": "2.0.0",
128
127
  "json2csv": "5.0.6",
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = pager;
7
- exports.end = end;
8
-
9
- var _child_process = require("child_process");
10
-
11
- var _stream = require("stream");
12
-
13
- /**
14
- * External dependencies
15
- */
16
- let proc;
17
-
18
- function pager() {
19
- let less;
20
-
21
- switch (process.platform) {
22
- case 'win32':
23
- // PROGRA~1 is the short name for Program Files
24
- // we're using it here to avoid the space which is broken by .split( ' ' )
25
- less = 'C:\\PROGRA~1\\Git\\usr\\bin\\less.exe -FRX';
26
- break;
27
-
28
- default:
29
- less = 'less -FRX';
30
- }
31
-
32
- const args = (process.env.PAGER || less).split(' ');
33
- const bin = args.shift(); // passthrough pipe so we can change the output pipe if necessary
34
-
35
- const pipe = new _stream.PassThrough();
36
- proc = (0, _child_process.spawn)(bin, args, {
37
- stdio: ['pipe', process.stdout, process.stderr]
38
- });
39
- proc.on('exit', () => {
40
- proc.stdin.emit('done');
41
- }); // If we can't spawn less, pipe directly to stdout
42
-
43
- pipe.pipe(proc.stdin);
44
- proc.on('error', () => {
45
- pipe.pipe(process.stdout);
46
- });
47
- return pipe;
48
- }
49
-
50
- function end() {
51
- proc.end();
52
- }