generate and store private key for telebit-remote
This commit is contained in:
		
							parent
							
								
									21115b9543
								
							
						
					
					
						commit
						1c9396216a
					
				@ -26,6 +26,9 @@ var camelCopy = recase.camelCopy.bind(recase);
 | 
				
			|||||||
var urequest = require('@coolaj86/urequest');
 | 
					var urequest = require('@coolaj86/urequest');
 | 
				
			||||||
var common = require('../lib/cli-common.js');
 | 
					var common = require('../lib/cli-common.js');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var defaultConfPath = path.join(os.homedir(), '.config/telebit');
 | 
				
			||||||
 | 
					var defaultConfFile = path.join(defaultConfPath, 'telebit.yml');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var argv = process.argv.slice(2);
 | 
					var argv = process.argv.slice(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var argIndex = argv.indexOf('--config');
 | 
					var argIndex = argv.indexOf('--config');
 | 
				
			||||||
@ -40,6 +43,30 @@ if (-1 === argIndex) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
if (-1 !== argIndex) {
 | 
					if (-1 !== argIndex) {
 | 
				
			||||||
  confpath = argv.splice(argIndex, 2)[1];
 | 
					  confpath = argv.splice(argIndex, 2)[1];
 | 
				
			||||||
 | 
					  state.configArg = confpath;
 | 
				
			||||||
 | 
					  // shortname
 | 
				
			||||||
 | 
					  if (state.configArg) {
 | 
				
			||||||
 | 
					    if (/^[\w:\.\-]+$/.test(state.configArg)) {
 | 
				
			||||||
 | 
					      state.configDir = defaultConfPath;
 | 
				
			||||||
 | 
					      state.configFile = path.join(defaultConfPath, confpath + '.yml');
 | 
				
			||||||
 | 
					    } else if (/[\/\\]$/.test(state.configArg)) {
 | 
				
			||||||
 | 
					      state.configDir = state.configArg;
 | 
				
			||||||
 | 
					      state.configFile = path.join(state.configDir, 'telebit.yml');
 | 
				
			||||||
 | 
					    } else if (/[\/\\][^\.\/\\]\.[^\.\/\\]$/.test(state.configArg)) {
 | 
				
			||||||
 | 
					      state.configDir = path.pathname(state.configArg);
 | 
				
			||||||
 | 
					      state.configFile = state.configArg;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      console.error();
 | 
				
			||||||
 | 
					      console.error("Not a valid config path, file, or shortname: '%s'", state.configArg);
 | 
				
			||||||
 | 
					      console.error();
 | 
				
			||||||
 | 
					      console.error("Valid config options look like this:");
 | 
				
			||||||
 | 
					      console.error(" Full path: ~/.config/telebit/telebit.yml (full path)");
 | 
				
			||||||
 | 
					      console.error(" Directory: ~/.config/telebit/            (directory)");
 | 
				
			||||||
 | 
					      console.error(" Shortname: lucky-duck                    (shortname)");
 | 
				
			||||||
 | 
					      process.exit(37);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    confpath = state.configFile;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
argIndex = argv.indexOf('--tty');
 | 
					argIndex = argv.indexOf('--tty');
 | 
				
			||||||
if (-1 !== argIndex) {
 | 
					if (-1 !== argIndex) {
 | 
				
			||||||
@ -58,7 +85,9 @@ function help() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
var verstr = [ pkg.name + ' remote v' + pkg.version ];
 | 
					var verstr = [ pkg.name + ' remote v' + pkg.version ];
 | 
				
			||||||
if (!confpath) {
 | 
					if (!confpath) {
 | 
				
			||||||
  confpath = path.join(os.homedir(), '.config/telebit/telebit.yml');
 | 
					  state.configDir = defaultConfPath;
 | 
				
			||||||
 | 
					  state.configFile = defaultConfFile;
 | 
				
			||||||
 | 
					  confpath = state.configFile;
 | 
				
			||||||
  verstr.push('(--config \'' + confpath.replace(new RegExp('^' + os.homedir()), '~') + '\')');
 | 
					  verstr.push('(--config \'' + confpath.replace(new RegExp('^' + os.homedir()), '~') + '\')');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -732,6 +761,25 @@ var parsers = {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fs.readFile(confpath, 'utf8', parseConfig);
 | 
					var keystore = require('../lib/keystore.js').create(state);
 | 
				
			||||||
 | 
					var keyname = 'telebit-remote';
 | 
				
			||||||
 | 
					state.keystore = keystore;
 | 
				
			||||||
 | 
					state.keystoreSecure = !keystore.insecure;
 | 
				
			||||||
 | 
					keystore.get(keyname).then(function (jwk) {
 | 
				
			||||||
 | 
					  if (jwk && jwk.kty) {
 | 
				
			||||||
 | 
					    state.key = jwk;
 | 
				
			||||||
 | 
					    fs.readFile(confpath, 'utf8', parseConfig);
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console.info('Generating Private Key...');
 | 
				
			||||||
 | 
					  return require('keypairs').generate().then(function (jwk) {
 | 
				
			||||||
 | 
					    return keystore.set(keyname, jwk).then(function () {
 | 
				
			||||||
 | 
					      console.info("Generated New %s %s Private Key.", jwk.kty, (jwk.crv || Buffer.from(jwk.n, 'base64').byteLength * 8));
 | 
				
			||||||
 | 
					      state.key = jwk;
 | 
				
			||||||
 | 
					      fs.readFile(confpath, 'utf8', parseConfig);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}());
 | 
					}());
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										26
									
								
								lib/keystore-fallback.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								lib/keystore-fallback.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var fs = require('fs').promises;
 | 
				
			||||||
 | 
					var path = require('path');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports.create = function (opts) {
 | 
				
			||||||
 | 
					  return {
 | 
				
			||||||
 | 
					    getPassword: function (service, name) {
 | 
				
			||||||
 | 
					      var f = path.join(opts.configDir, name + '.key');
 | 
				
			||||||
 | 
					      return fs.readFile(f, 'utf8').catch(function (err) {
 | 
				
			||||||
 | 
					        if ('ENOEXIST' === err.code) {
 | 
				
			||||||
 | 
					          return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , setPassword: function (service, name, key) {
 | 
				
			||||||
 | 
					      var f = path.join(opts.configDir, name + '.key');
 | 
				
			||||||
 | 
					      return fs.writeFile(f, key, 'utf8');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , deletePassword: function (service, name) {
 | 
				
			||||||
 | 
					      var f = path.join(opts.configDir, name + '.key');
 | 
				
			||||||
 | 
					      return fs.unlink(f);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , insecure: true
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										22
									
								
								lib/keystore-test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								lib/keystore-test.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var keystore = require('./keystore.js').create({
 | 
				
			||||||
 | 
					  configDir: require('path').join(require('os').homedir(), '.local/telebit/')
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					var name = "testy-mctestface-1";
 | 
				
			||||||
 | 
					return keystore.get(name).then(function (jwk) {
 | 
				
			||||||
 | 
					  console.log("get1", typeof jwk, jwk);
 | 
				
			||||||
 | 
					  if (!jwk || !jwk.kty) {
 | 
				
			||||||
 | 
					    return require('keypairs').generate().then(function (jwk) {
 | 
				
			||||||
 | 
					      var json = JSON.stringify(jwk.private);
 | 
				
			||||||
 | 
					      return keystore.set(name, json).then(function () {
 | 
				
			||||||
 | 
					        return keystore.get(name).then(function (val2) {
 | 
				
			||||||
 | 
					          console.log("get2", val2);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      }).catch(function (err) {
 | 
				
			||||||
 | 
					        console.log('badness', err);
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return jwk;
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										40
									
								
								lib/keystore.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								lib/keystore.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports.create = function (opts) {
 | 
				
			||||||
 | 
					  var service = "Telebit";
 | 
				
			||||||
 | 
					  var keytar;
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    keytar = require('keytar');
 | 
				
			||||||
 | 
					  } catch(e) {
 | 
				
			||||||
 | 
					    console.warn("Could not load native key management. Keys will be stored in plain text.");
 | 
				
			||||||
 | 
					    keytar = require('./keystore-fallback.js').create(opts);
 | 
				
			||||||
 | 
					    keytar.insecure = true;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return {
 | 
				
			||||||
 | 
					    get: function (name) {
 | 
				
			||||||
 | 
					      return keytar.getPassword(service, name).then(maybeParse);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , set: function (name, value) {
 | 
				
			||||||
 | 
					      return keytar.setPassword(service, name, maybeStringify(value));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , delete: function (name) {
 | 
				
			||||||
 | 
					      return keytar.deletePassword(service, name);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  , insecure: keytar.insecure
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function maybeParse(str) {
 | 
				
			||||||
 | 
					  if (str && '{' === str[0]) {
 | 
				
			||||||
 | 
					    return JSON.parse(str);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return str;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function maybeStringify(obj) {
 | 
				
			||||||
 | 
					  if ('string' !== typeof obj && 'object' === typeof obj) {
 | 
				
			||||||
 | 
					    return JSON.stringify(obj);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return obj;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										437
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										437
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -35,6 +35,28 @@
 | 
				
			|||||||
        "rsa-compat": "^1.9.2"
 | 
					        "rsa-compat": "^1.9.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "ansi-regex": {
 | 
				
			||||||
 | 
					      "version": "2.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "aproba": {
 | 
				
			||||||
 | 
					      "version": "1.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "are-we-there-yet": {
 | 
				
			||||||
 | 
					      "version": "1.1.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "delegates": "^1.0.0",
 | 
				
			||||||
 | 
					        "readable-stream": "^2.0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "argparse": {
 | 
					    "argparse": {
 | 
				
			||||||
      "version": "1.0.10",
 | 
					      "version": "1.0.10",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
 | 
				
			||||||
@ -62,6 +84,16 @@
 | 
				
			|||||||
        "file-uri-to-path": "1.0.0"
 | 
					        "file-uri-to-path": "1.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "bl": {
 | 
				
			||||||
 | 
					      "version": "1.2.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "readable-stream": "^2.3.5",
 | 
				
			||||||
 | 
					        "safe-buffer": "^5.1.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "bluebird": {
 | 
					    "bluebird": {
 | 
				
			||||||
      "version": "3.5.1",
 | 
					      "version": "3.5.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
 | 
				
			||||||
@ -96,6 +128,24 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/cert-info/-/cert-info-1.5.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/cert-info/-/cert-info-1.5.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-3fE0DDJJ7FWwMsUqLqBd+FY5LQACK24R1p129BTCYMEe00Nql2Q9Dkr6TEBlZ8XJnNaSbjzf3qBLjLrD8KLutw=="
 | 
					      "integrity": "sha512-3fE0DDJJ7FWwMsUqLqBd+FY5LQACK24R1p129BTCYMEe00Nql2Q9Dkr6TEBlZ8XJnNaSbjzf3qBLjLrD8KLutw=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "chownr": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "code-point-at": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "console-control-strings": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "core-util-is": {
 | 
					    "core-util-is": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
 | 
				
			||||||
@ -130,6 +180,27 @@
 | 
				
			|||||||
        "ms": "2.0.0"
 | 
					        "ms": "2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "decompress-response": {
 | 
				
			||||||
 | 
					      "version": "3.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "mimic-response": "^1.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "deep-extend": {
 | 
				
			||||||
 | 
					      "version": "0.6.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "delegates": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "depd": {
 | 
					    "depd": {
 | 
				
			||||||
      "version": "1.1.2",
 | 
					      "version": "1.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
 | 
				
			||||||
@ -140,6 +211,17 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
 | 
					      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "detect-libc": {
 | 
				
			||||||
 | 
					      "version": "1.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "eckles": {
 | 
				
			||||||
 | 
					      "version": "1.4.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/eckles/-/eckles-1.4.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-auWyk/k8oSkVHaD4RxkPadKsLUcIwKgr/h8F7UZEueFDBO7BsE4y+H6IMUDbfqKIFPg/9MxV6KcBdJCmVVcxSA=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "ee-first": {
 | 
					    "ee-first": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
 | 
				
			||||||
@ -150,6 +232,15 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
 | 
					      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "end-of-stream": {
 | 
				
			||||||
 | 
					      "version": "1.4.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "once": "^1.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "escape-html": {
 | 
					    "escape-html": {
 | 
				
			||||||
      "version": "1.0.3",
 | 
					      "version": "1.0.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
 | 
				
			||||||
@ -165,6 +256,12 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
 | 
					      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "expand-template": {
 | 
				
			||||||
 | 
					      "version": "2.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "file-uri-to-path": {
 | 
					    "file-uri-to-path": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
 | 
				
			||||||
@ -199,6 +296,28 @@
 | 
				
			|||||||
        "readable-stream": "^2.0.0"
 | 
					        "readable-stream": "^2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "fs-constants": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "gauge": {
 | 
				
			||||||
 | 
					      "version": "2.7.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "aproba": "^1.0.3",
 | 
				
			||||||
 | 
					        "console-control-strings": "^1.0.0",
 | 
				
			||||||
 | 
					        "has-unicode": "^2.0.0",
 | 
				
			||||||
 | 
					        "object-assign": "^4.1.0",
 | 
				
			||||||
 | 
					        "signal-exit": "^3.0.0",
 | 
				
			||||||
 | 
					        "string-width": "^1.0.1",
 | 
				
			||||||
 | 
					        "strip-ansi": "^3.0.1",
 | 
				
			||||||
 | 
					        "wide-align": "^1.1.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "generate-function": {
 | 
					    "generate-function": {
 | 
				
			||||||
      "version": "1.1.0",
 | 
					      "version": "1.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-1.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-1.1.0.tgz",
 | 
				
			||||||
@ -221,6 +340,12 @@
 | 
				
			|||||||
        "pinkie-promise": "^2.0.0"
 | 
					        "pinkie-promise": "^2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "github-from-package": {
 | 
				
			||||||
 | 
					      "version": "0.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "greenlock": {
 | 
					    "greenlock": {
 | 
				
			||||||
      "version": "2.6.7",
 | 
					      "version": "2.6.7",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/greenlock/-/greenlock-2.6.7.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/greenlock/-/greenlock-2.6.7.tgz",
 | 
				
			||||||
@ -235,6 +360,12 @@
 | 
				
			|||||||
        "rsa-compat": "^1.9.2"
 | 
					        "rsa-compat": "^1.9.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "has-unicode": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "http-errors": {
 | 
					    "http-errors": {
 | 
				
			||||||
      "version": "1.6.3",
 | 
					      "version": "1.6.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
 | 
				
			||||||
@ -251,6 +382,12 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
 | 
				
			||||||
      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
 | 
					      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "ini": {
 | 
				
			||||||
 | 
					      "version": "1.3.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "into-stream": {
 | 
					    "into-stream": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-2.0.1.tgz",
 | 
				
			||||||
@ -259,6 +396,15 @@
 | 
				
			|||||||
        "from2": "^2.1.1"
 | 
					        "from2": "^2.1.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "is-fullwidth-code-point": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "number-is-nan": "^1.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "is-property": {
 | 
					    "is-property": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
 | 
				
			||||||
@ -284,19 +430,22 @@
 | 
				
			|||||||
      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
 | 
					      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "keypairs": {
 | 
					    "keypairs": {
 | 
				
			||||||
      "version": "1.0.1",
 | 
					      "version": "1.2.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/keypairs/-/keypairs-1.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/keypairs/-/keypairs-1.2.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-vwzW+HWfifpSbjGP+qg3P2IXNrTc4tuFRxiVmddwZbV6jYkbARJOnGMQhG36OeBxW5/Ec1iBKDFTyoxjn+dLLg==",
 | 
					      "integrity": "sha512-VKUxQ4iQB5LvVMtObOzNmZRfgXLTr5GMr+wg9A2BnILArBLrtg/DIuWRJQpDNRRfAGRQjHXxSVOW+7xpzIAY1Q==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "eckles": "^1.4.0",
 | 
					        "eckles": "^1.4.1",
 | 
				
			||||||
        "rasha": "^1.2.1"
 | 
					        "rasha": "^1.2.4"
 | 
				
			||||||
      },
 | 
					      }
 | 
				
			||||||
      "dependencies": {
 | 
					    },
 | 
				
			||||||
        "eckles": {
 | 
					    "keytar": {
 | 
				
			||||||
          "version": "1.4.0",
 | 
					      "version": "4.4.1",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/eckles/-/eckles-1.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/keytar/-/keytar-4.4.1.tgz",
 | 
				
			||||||
          "integrity": "sha512-Bm5dpwhsBuoCHvKCY3gAvP8XFyXH7im8uAu3szykpVNbFBdC+lOuV8vLC8fvTYRZBfFqB+k/P6ud/ZPVO2V2tA=="
 | 
					      "integrity": "sha512-6xEe7ybXSR5EZC+z0GI2yqLYZjV1tyPQY2xSZ8rGsBxrrLEh8VR/Lfqv59uGX+I+W+OZxH0jCXN1dU1++ify4g==",
 | 
				
			||||||
        }
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "nan": "2.12.1",
 | 
				
			||||||
 | 
					        "prebuild-install": "5.2.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "le-challenge-fs": {
 | 
					    "le-challenge-fs": {
 | 
				
			||||||
@ -343,6 +492,12 @@
 | 
				
			|||||||
        "mime-db": "~1.33.0"
 | 
					        "mime-db": "~1.33.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "mimic-response": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "minimist": {
 | 
					    "minimist": {
 | 
				
			||||||
      "version": "0.0.8",
 | 
					      "version": "0.0.8",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
 | 
				
			||||||
@ -367,6 +522,12 @@
 | 
				
			|||||||
      "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
 | 
					      "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
 | 
				
			||||||
      "optional": true
 | 
					      "optional": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "napi-build-utils": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "ndjson": {
 | 
					    "ndjson": {
 | 
				
			||||||
      "version": "1.5.0",
 | 
					      "version": "1.5.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz",
 | 
				
			||||||
@ -400,12 +561,45 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
 | 
					      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node-abi": {
 | 
				
			||||||
 | 
					      "version": "2.7.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "semver": "^5.4.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node-forge": {
 | 
					    "node-forge": {
 | 
				
			||||||
      "version": "0.7.6",
 | 
					      "version": "0.7.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz",
 | 
				
			||||||
      "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==",
 | 
					      "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==",
 | 
				
			||||||
      "optional": true
 | 
					      "optional": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "noop-logger": {
 | 
				
			||||||
 | 
					      "version": "0.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "npmlog": {
 | 
				
			||||||
 | 
					      "version": "4.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "are-we-there-yet": "~1.1.2",
 | 
				
			||||||
 | 
					        "console-control-strings": "~1.1.0",
 | 
				
			||||||
 | 
					        "gauge": "~2.7.3",
 | 
				
			||||||
 | 
					        "set-blocking": "~2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "number-is-nan": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "object-assign": {
 | 
					    "object-assign": {
 | 
				
			||||||
      "version": "4.1.1",
 | 
					      "version": "4.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 | 
				
			||||||
@ -419,6 +613,21 @@
 | 
				
			|||||||
        "ee-first": "1.1.1"
 | 
					        "ee-first": "1.1.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "once": {
 | 
				
			||||||
 | 
					      "version": "1.4.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "wrappy": "1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "os-homedir": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "parseurl": {
 | 
					    "parseurl": {
 | 
				
			||||||
      "version": "1.3.2",
 | 
					      "version": "1.3.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
 | 
				
			||||||
@ -442,6 +651,38 @@
 | 
				
			|||||||
        "pinkie": "^2.0.0"
 | 
					        "pinkie": "^2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "prebuild-install": {
 | 
				
			||||||
 | 
					      "version": "5.2.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CG3JnpTZXdmr92GW4zbcba4jkDha6uHraJ7hW4Fn8j0mExxwOKK20hqho8ZuBDCKYCHYIkFM1P2jhtG+KpP4fg==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "detect-libc": "^1.0.3",
 | 
				
			||||||
 | 
					        "expand-template": "^2.0.3",
 | 
				
			||||||
 | 
					        "github-from-package": "0.0.0",
 | 
				
			||||||
 | 
					        "minimist": "^1.2.0",
 | 
				
			||||||
 | 
					        "mkdirp": "^0.5.1",
 | 
				
			||||||
 | 
					        "napi-build-utils": "^1.0.1",
 | 
				
			||||||
 | 
					        "node-abi": "^2.7.0",
 | 
				
			||||||
 | 
					        "noop-logger": "^0.1.1",
 | 
				
			||||||
 | 
					        "npmlog": "^4.0.1",
 | 
				
			||||||
 | 
					        "os-homedir": "^1.0.1",
 | 
				
			||||||
 | 
					        "pump": "^2.0.1",
 | 
				
			||||||
 | 
					        "rc": "^1.2.7",
 | 
				
			||||||
 | 
					        "simple-get": "^2.7.0",
 | 
				
			||||||
 | 
					        "tar-fs": "^1.13.0",
 | 
				
			||||||
 | 
					        "tunnel-agent": "^0.6.0",
 | 
				
			||||||
 | 
					        "which-pm-runs": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "minimist": {
 | 
				
			||||||
 | 
					          "version": "1.2.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "process-nextick-args": {
 | 
					    "process-nextick-args": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
 | 
				
			||||||
@ -461,6 +702,16 @@
 | 
				
			|||||||
        "tasklist": "^3.1.0"
 | 
					        "tasklist": "^3.1.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "pump": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "end-of-stream": "^1.1.0",
 | 
				
			||||||
 | 
					        "once": "^1.3.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "pyconf": {
 | 
					    "pyconf": {
 | 
				
			||||||
      "version": "1.1.6",
 | 
					      "version": "1.1.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/pyconf/-/pyconf-1.1.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/pyconf/-/pyconf-1.1.6.tgz",
 | 
				
			||||||
@ -475,9 +726,29 @@
 | 
				
			|||||||
      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
 | 
					      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "rasha": {
 | 
					    "rasha": {
 | 
				
			||||||
      "version": "1.2.1",
 | 
					      "version": "1.2.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/rasha/-/rasha-1.2.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/rasha/-/rasha-1.2.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-cs4Hu/rVF3/Qucq+V7lxSz449VfHNMVXJaeajAHno9H5FC1PWlmS4NM6IAX5jPKFF0IC2rOdHdf7iNxQuIWZag=="
 | 
					      "integrity": "sha512-GsIwKv+hYSumJyK9wkTDaERLwvWaGYh1WuI7JMTBISfYt13TkKFU/HFzlY4n72p8VfXZRUYm0AqaYhkZVxOC3Q=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rc": {
 | 
				
			||||||
 | 
					      "version": "1.2.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "deep-extend": "^0.6.0",
 | 
				
			||||||
 | 
					        "ini": "~1.3.0",
 | 
				
			||||||
 | 
					        "minimist": "^1.2.0",
 | 
				
			||||||
 | 
					        "strip-json-comments": "~2.0.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "minimist": {
 | 
				
			||||||
 | 
					          "version": "1.2.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "readable-stream": {
 | 
					    "readable-stream": {
 | 
				
			||||||
      "version": "2.3.6",
 | 
					      "version": "2.3.6",
 | 
				
			||||||
@ -535,6 +806,12 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/sec/-/sec-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sec/-/sec-1.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-Az1go60g7PLgCUDRT5eCNGV3QzU="
 | 
					      "integrity": "sha1-Az1go60g7PLgCUDRT5eCNGV3QzU="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "semver": {
 | 
				
			||||||
 | 
					      "version": "5.6.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "send": {
 | 
					    "send": {
 | 
				
			||||||
      "version": "0.16.2",
 | 
					      "version": "0.16.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
 | 
				
			||||||
@ -605,11 +882,40 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "set-blocking": {
 | 
				
			||||||
 | 
					      "version": "2.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "setprototypeof": {
 | 
					    "setprototypeof": {
 | 
				
			||||||
      "version": "1.1.0",
 | 
					      "version": "1.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
 | 
					      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "signal-exit": {
 | 
				
			||||||
 | 
					      "version": "3.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "simple-concat": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "simple-get": {
 | 
				
			||||||
 | 
					      "version": "2.8.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "decompress-response": "^3.3.0",
 | 
				
			||||||
 | 
					        "once": "^1.3.1",
 | 
				
			||||||
 | 
					        "simple-concat": "^1.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "sni": {
 | 
					    "sni": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/sni/-/sni-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sni/-/sni-1.0.0.tgz",
 | 
				
			||||||
@ -641,6 +947,17 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
 | 
					      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "string-width": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "code-point-at": "^1.0.0",
 | 
				
			||||||
 | 
					        "is-fullwidth-code-point": "^1.0.0",
 | 
				
			||||||
 | 
					        "strip-ansi": "^3.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "string_decoder": {
 | 
					    "string_decoder": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 | 
				
			||||||
@ -649,6 +966,60 @@
 | 
				
			|||||||
        "safe-buffer": "~5.1.0"
 | 
					        "safe-buffer": "~5.1.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "strip-ansi": {
 | 
				
			||||||
 | 
					      "version": "3.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "ansi-regex": "^2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "strip-json-comments": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "tar-fs": {
 | 
				
			||||||
 | 
					      "version": "1.16.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "chownr": "^1.0.1",
 | 
				
			||||||
 | 
					        "mkdirp": "^0.5.1",
 | 
				
			||||||
 | 
					        "pump": "^1.0.0",
 | 
				
			||||||
 | 
					        "tar-stream": "^1.1.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "pump": {
 | 
				
			||||||
 | 
					          "version": "1.0.3",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
 | 
				
			||||||
 | 
					          "optional": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "end-of-stream": "^1.1.0",
 | 
				
			||||||
 | 
					            "once": "^1.3.1"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "tar-stream": {
 | 
				
			||||||
 | 
					      "version": "1.6.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "bl": "^1.0.0",
 | 
				
			||||||
 | 
					        "buffer-alloc": "^1.2.0",
 | 
				
			||||||
 | 
					        "end-of-stream": "^1.0.0",
 | 
				
			||||||
 | 
					        "fs-constants": "^1.0.0",
 | 
				
			||||||
 | 
					        "readable-stream": "^2.3.0",
 | 
				
			||||||
 | 
					        "to-buffer": "^1.1.1",
 | 
				
			||||||
 | 
					        "xtend": "^4.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "tasklist": {
 | 
					    "tasklist": {
 | 
				
			||||||
      "version": "3.1.0",
 | 
					      "version": "3.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tasklist/-/tasklist-3.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/tasklist/-/tasklist-3.1.0.tgz",
 | 
				
			||||||
@ -675,11 +1046,26 @@
 | 
				
			|||||||
        "xtend": "~4.0.1"
 | 
					        "xtend": "~4.0.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "to-buffer": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "toml": {
 | 
					    "toml": {
 | 
				
			||||||
      "version": "0.4.1",
 | 
					      "version": "0.4.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/toml/-/toml-0.4.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/toml/-/toml-0.4.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-Iv5QHFe+WpV9o4JcHd5YS7LmL3M="
 | 
					      "integrity": "sha1-Iv5QHFe+WpV9o4JcHd5YS7LmL3M="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "tunnel-agent": {
 | 
				
			||||||
 | 
					      "version": "0.6.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "safe-buffer": "^5.0.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "unpipe": {
 | 
					    "unpipe": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
 | 
				
			||||||
@ -700,6 +1086,27 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
 | 
					      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "which-pm-runs": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "wide-align": {
 | 
				
			||||||
 | 
					      "version": "1.1.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "string-width": "^1.0.2 || 2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "wrappy": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "ws": {
 | 
					    "ws": {
 | 
				
			||||||
      "version": "6.0.0",
 | 
					      "version": "6.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ws/-/ws-6.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ws/-/ws-6.0.0.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -57,7 +57,7 @@
 | 
				
			|||||||
    "finalhandler": "^1.1.1",
 | 
					    "finalhandler": "^1.1.1",
 | 
				
			||||||
    "greenlock": "^2.6.7",
 | 
					    "greenlock": "^2.6.7",
 | 
				
			||||||
    "js-yaml": "^3.11.0",
 | 
					    "js-yaml": "^3.11.0",
 | 
				
			||||||
    "keypairs": "^1.0.1",
 | 
					    "keypairs": "^1.2.5",
 | 
				
			||||||
    "mkdirp": "^0.5.1",
 | 
					    "mkdirp": "^0.5.1",
 | 
				
			||||||
    "proxy-packer": "^2.0.2",
 | 
					    "proxy-packer": "^2.0.2",
 | 
				
			||||||
    "ps-list": "^5.0.0",
 | 
					    "ps-list": "^5.0.0",
 | 
				
			||||||
@ -72,6 +72,9 @@
 | 
				
			|||||||
    "toml": "^0.4.1",
 | 
					    "toml": "^0.4.1",
 | 
				
			||||||
    "ws": "^6.0.0"
 | 
					    "ws": "^6.0.0"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "optionalDependencies": {
 | 
				
			||||||
 | 
					    "keytar": "^4.4.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "trulyOptionalDependencies": {
 | 
					  "trulyOptionalDependencies": {
 | 
				
			||||||
    "bluebird": "^3.5.1"
 | 
					    "bluebird": "^3.5.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user