address npm's security audit warnings

This commit is contained in:
AJ ONeal 2019-02-28 01:42:56 -07:00
parent 693a524549
commit 21115b9543
7 changed files with 146 additions and 228 deletions

View File

@ -12,6 +12,7 @@ var path = require('path');
var YAML = require('js-yaml'); var YAML = require('js-yaml');
var TOML = require('toml'); var TOML = require('toml');
var TPLS = TOML.parse(fs.readFileSync(path.join(__dirname, "../lib/en-us.toml"), 'utf8')); var TPLS = TOML.parse(fs.readFileSync(path.join(__dirname, "../lib/en-us.toml"), 'utf8'));
var JWT = require('../lib/jwt.js');
/* /*
if ('function' !== typeof TOML.stringify) { if ('function' !== typeof TOML.stringify) {
@ -232,10 +233,9 @@ function askForConfig(state, mainCb) {
//console.info("\tPrivate key (hex)"); //console.info("\tPrivate key (hex)");
console.info(""); console.info("");
rl.question('auth: ', function (resp) { rl.question('auth: ', function (resp) {
var jwt = require('jsonwebtoken');
resp = (resp || '').trim(); resp = (resp || '').trim();
try { try {
jwt.decode(resp); JWT.decode(resp);
state.config.token = resp; state.config.token = resp;
} catch(e) { } catch(e) {
// is not jwt // is not jwt
@ -604,8 +604,8 @@ function parseConfig(err, text) {
} }
state._connecting = true; state._connecting = true;
try { try {
require('jsonwebtoken').decode(token); JWT.decode(token);
//console.log(require('jsonwebtoken').decode(token)); //console.log(JWT.decode(token));
} catch(e) { } catch(e) {
console.warn("[warning] could not decode token"); console.warn("[warning] could not decode token");
} }

View File

@ -114,7 +114,7 @@ common.otp = function getOtp() {
return Math.round(Math.random() * 9999).toString().padStart(4, '0'); return Math.round(Math.random() * 9999).toString().padStart(4, '0');
}; };
common.signToken = function (state) { common.signToken = function (state) {
var jwt = require('jsonwebtoken'); var JWT = require('./jwt.js');
var tokenData = { var tokenData = {
domains: Object.keys(state.config.servernames || {}).filter(function (name) { domains: Object.keys(state.config.servernames || {}).filter(function (name) {
return /\./.test(name); return /\./.test(name);
@ -127,7 +127,7 @@ common.signToken = function (state) {
, iss: Math.round(Date.now() / 1000) , iss: Math.round(Date.now() / 1000)
}; };
return jwt.sign(tokenData, state.config.secret); return JWT.sign(tokenData, state.config.secret);
}; };
common.promiseTimeout = function (ms) { common.promiseTimeout = function (ms) {
var tok; var tok;

View File

@ -118,7 +118,7 @@ common.otp = function getOtp() {
return Math.round(Math.random() * 9999).toString().padStart(4, '0'); return Math.round(Math.random() * 9999).toString().padStart(4, '0');
}; };
common.signToken = function (state) { common.signToken = function (state) {
var jwt = require('jsonwebtoken'); var JWT = require('./jwt.js');
var tokenData = { var tokenData = {
domains: Object.keys(state.config.servernames || {}).filter(function (name) { domains: Object.keys(state.config.servernames || {}).filter(function (name) {
return /\./.test(name); return /\./.test(name);
@ -131,7 +131,7 @@ common.signToken = function (state) {
, iss: Math.round(Date.now() / 1000) , iss: Math.round(Date.now() / 1000)
}; };
return jwt.sign(tokenData, state.config.secret); return JWT.sign(tokenData, state.config.secret);
}; };
common.api = {}; common.api = {};
common.api.directory = function (state, next) { common.api.directory = function (state, next) {

19
lib/jwt-test.js Normal file
View File

@ -0,0 +1,19 @@
'use strict';
var crypto = require('crypto');
var FAT = require('jsonwebtoken');
var JWT = require('./jwt.js');
var key = "justanothersecretsecret";
var keyid = crypto.createHash('sha256').update(key).digest('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
var tok1 = FAT.sign({ foo: "hello" }, key, { keyid: keyid });
var tok2 = JWT.sign({ foo: "hello" }, key);
if (tok1 !== tok2) {
console.error(JWT.decode(tok1));
console.error(JWT.decode(tok2));
throw new Error("our jwt doesn't match auth0/jsonwebtoken");
}
console.info('Pass');

43
lib/jwt.js Normal file
View File

@ -0,0 +1,43 @@
'use strict';
var crypto = require('crypto');
var JWT = module.exports;
JWT.decode = function (jwt) {
var parts;
try {
parts = jwt.split('.');
return {
header: JSON.parse(Buffer.from(parts[0], 'base64'))
, payload: JSON.parse(Buffer.from(parts[1], 'base64'))
, signature: parts[2] //Buffer.from(parts[2], 'base64')
};
} catch(e) {
throw new Error("JWT Parse Error: could not split, base64 decode, and JSON.parse token " + jwt);
}
};
JWT.verify = function (jwt) {
var decoded = JWT.decode(jwt);
throw new Error("not implemented yet");
};
function base64ToUrlSafe(str) {
return str
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '')
;
}
JWT.sign = function (claims, key) {
if (!claims.iat && false !== claims.iat) {
claims.iat = Math.round(Date.now()/1000);
}
var thumb = base64ToUrlSafe(crypto.createHash('sha256').update(key).digest('base64'));
var protect = base64ToUrlSafe(Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT', kid: thumb })).toString('base64'));
var payload = base64ToUrlSafe(Buffer.from(JSON.stringify(claims)).toString('base64'));
var signature = base64ToUrlSafe(crypto.createHmac('sha256', key).update(protect + '.' + payload).digest('base64'));
return protect + '.' + payload + '.' + signature;
};

293
package-lock.json generated
View File

@ -19,28 +19,22 @@
} }
}, },
"acme": { "acme": {
"version": "1.1.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/acme/-/acme-1.1.0.tgz", "resolved": "https://registry.npmjs.org/acme/-/acme-1.2.0.tgz",
"integrity": "sha512-l2UAkE7aEKdYZ2dSok/ONxKLWj4HrSSPwuGsQE42LM8m6NukRXPKSWXyusqR4m+LhvN76183VvA8IDOOnLjSlw==", "integrity": "sha512-lG9Wq0Ol2OLpVrusq5OQ+KCT06rXaGjbHcDhKtNO6Hr3J3swISaCYi0slwLpEA9DGV+QhDkAnZ6qsXAo86SM5Q==",
"requires": { "requires": {
"acme-v2": "^1.1.0", "acme-v2": "^1.3.1"
"bluebird": "^3.5.1"
} }
}, },
"acme-v2": { "acme-v2": {
"version": "1.1.0", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/acme-v2/-/acme-v2-1.1.0.tgz", "resolved": "https://registry.npmjs.org/acme-v2/-/acme-v2-1.5.2.tgz",
"integrity": "sha512-yODrKcfaqDwRM/nVZdupww7s7y/D1q6QMe8nbYPifVEO7JYi653FaoPbUFRXFKTEzFhJ4HNXZMGUKmLYJQq/Ag==", "integrity": "sha512-Ux0cFCxHeaGGeGyPGMLHBLIGF05OYaxuh4TvaVzwkVVRib/gPpioa50CGj2pnQimH/MRkg0VtWCEdfE45MV/0g==",
"requires": { "requires": {
"@coolaj86/urequest": "^1.1.1", "@coolaj86/urequest": "^1.3.6",
"rsa-compat": "^1.3.0" "rsa-compat": "^1.9.2"
} }
}, },
"any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
},
"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",
@ -49,11 +43,6 @@
"sprintf-js": "~1.0.2" "sprintf-js": "~1.0.2"
} }
}, },
"asn1js": {
"version": "1.2.12",
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-1.2.12.tgz",
"integrity": "sha1-h9XueXWWri0qPLAkciDcQv/D8hE="
},
"async-limiter": { "async-limiter": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
@ -64,6 +53,15 @@
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
"integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
}, },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"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",
@ -83,11 +81,6 @@
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
}, },
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"buffer-fill": { "buffer-fill": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
@ -98,21 +91,10 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
"integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ=="
}, },
"buffer-v6-polyfill": { "cert-info": {
"version": "1.0.5", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/buffer-v6-polyfill/-/buffer-v6-polyfill-1.0.5.tgz", "resolved": "https://registry.npmjs.org/cert-info/-/cert-info-1.5.0.tgz",
"integrity": "sha1-0c2v61YAvvbCjWFElkJWvRLgFnc=" "integrity": "sha512-3fE0DDJJ7FWwMsUqLqBd+FY5LQACK24R1p129BTCYMEe00Nql2Q9Dkr6TEBlZ8XJnNaSbjzf3qBLjLrD8KLutw=="
},
"certpem": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/certpem/-/certpem-1.0.1.tgz",
"integrity": "sha1-+koljEBXllxGVwCCL7jYB9fy2fU=",
"requires": {
"asn1js": "^1.2.12",
"buffer-v6-polyfill": "^1.0.3",
"node.extend": "^1.1.5",
"pkijs": "^1.3.27"
}
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -158,14 +140,6 @@
"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="
}, },
"ecdsa-sig-formatter": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz",
"integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"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",
@ -191,6 +165,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="
}, },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"optional": true
},
"finalhandler": { "finalhandler": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
@ -219,16 +199,6 @@
"readable-stream": "^2.0.0" "readable-stream": "^2.0.0"
} }
}, },
"fs-symlink": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/fs-symlink/-/fs-symlink-1.2.1.tgz",
"integrity": "sha1-G+uoPqncqBI2AOPwuaUbGGQLvEA=",
"requires": {
"mkdirp": "^0.5.0",
"mkdirp-then": "1",
"mz": "^2.0.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",
@ -252,28 +222,19 @@
} }
}, },
"greenlock": { "greenlock": {
"version": "2.3.2", "version": "2.6.7",
"resolved": "https://registry.npmjs.org/greenlock/-/greenlock-2.3.2.tgz", "resolved": "https://registry.npmjs.org/greenlock/-/greenlock-2.6.7.tgz",
"integrity": "sha512-8jxb7gnKPMqUMBxa7ET3qTIALzEh30Na6TccIzaly62THZfiQtdPhVe9y26oaOEx5JGUMhc83FFo2hboeJz+ow==", "integrity": "sha512-cN8PU0tbpTyd0JiNhP78n6ZUYWhQs9fh4cuLjusKt0TjX0limP/u26wYGNK1cbgb9NsOeiox/wRhpGPh6EBocg==",
"requires": { "requires": {
"acme": "^1.0.6", "acme": "^1.2.0",
"acme-v2": "^1.0.6", "acme-v2": "^1.5.0",
"asn1js": "^1.2.12", "cert-info": "^1.5.0",
"bluebird": "^3.5.1",
"certpem": "^1.0.0",
"le-challenge-fs": "^2.0.2", "le-challenge-fs": "^2.0.2",
"le-sni-auto": "^2.1.3", "le-sni-auto": "^2.1.3",
"le-store-certbot": "^2.1.0", "le-store-certbot": "^2.1.7",
"node.extend": "^1.1.5", "rsa-compat": "^1.9.2"
"pkijs": "^1.3.27",
"rsa-compat": "^1.4.0"
} }
}, },
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
},
"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",
@ -298,11 +259,6 @@
"from2": "^2.1.1" "from2": "^2.1.1"
} }
}, },
"is": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
"integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
},
"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",
@ -313,22 +269,6 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}, },
"isemail": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
"integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo="
},
"joi": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
"integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
"requires": {
"hoek": "2.x.x",
"isemail": "1.x.x",
"moment": "2.x.x",
"topo": "1.x.x"
}
},
"js-yaml": { "js-yaml": {
"version": "3.12.0", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
@ -343,37 +283,6 @@
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
}, },
"jsonwebtoken": {
"version": "7.4.3",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz",
"integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=",
"requires": {
"joi": "^6.10.1",
"jws": "^3.1.4",
"lodash.once": "^4.0.0",
"ms": "^2.0.0",
"xtend": "^4.0.1"
}
},
"jwa": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz",
"integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.10",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz",
"integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==",
"requires": {
"jwa": "^1.1.5",
"safe-buffer": "^5.0.1"
}
},
"keypairs": { "keypairs": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/keypairs/-/keypairs-1.0.1.tgz", "resolved": "https://registry.npmjs.org/keypairs/-/keypairs-1.0.1.tgz",
@ -399,30 +308,23 @@
} }
}, },
"le-sni-auto": { "le-sni-auto": {
"version": "2.1.5", "version": "2.1.6",
"resolved": "https://registry.npmjs.org/le-sni-auto/-/le-sni-auto-2.1.5.tgz", "resolved": "https://registry.npmjs.org/le-sni-auto/-/le-sni-auto-2.1.6.tgz",
"integrity": "sha512-AUlFpYifutAAs0D0UwVVD5Jzf+X2J6+VNb03LCOFVAezQNpNcQFsWwrZzd+y24gF7jYHGBbD25q8gURQ5rhL8w==", "integrity": "sha512-LcfkF2yQ1nrep+ZfyG+SfR3pHphKFD3zMZ9FKervGfTfvgScCv/XGbX+vxsGZEKZjvzxKbFZ/5LdSCXuLXUU6A==",
"requires": { "requires": {
"bluebird": "^3.5.1" "bluebird": "^3.5.1"
} }
}, },
"le-store-certbot": { "le-store-certbot": {
"version": "2.1.3", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/le-store-certbot/-/le-store-certbot-2.1.3.tgz", "resolved": "https://registry.npmjs.org/le-store-certbot/-/le-store-certbot-2.2.1.tgz",
"integrity": "sha512-bUzbk4SfOKURUyLam4R7kI+7zGsO7/w/9mjeSDK+fAFLebjz/XND5VDzHotFEEbaOcu0UldD1/Dx3VShYnOFnw==", "integrity": "sha512-BhljZjTULhbNBAT6RBiv4TeZegFraMxURYEvh3WRUI048zmXf4ZfC8gwbdu5fnD2tTCsS9fbsCOAQyrFBl4jlA==",
"requires": { "requires": {
"bluebird": "^3.5.1",
"fs-symlink": "^1.2.1",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"pyconf": "^1.1.2", "pyconf": "^1.1.5",
"safe-replace": "^1.0.2" "safe-replace": "^1.0.3"
} }
}, },
"lodash.once": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"mime": { "mime": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
@ -454,34 +356,16 @@
"minimist": "0.0.8" "minimist": "0.0.8"
} }
}, },
"mkdirp-then": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mkdirp-then/-/mkdirp-then-1.2.0.tgz",
"integrity": "sha1-pJLIecpNhz9e5FAI+PVf0BUN48U=",
"requires": {
"any-promise": "^1.1.0",
"mkdirp": "^0.5.0"
}
},
"moment": {
"version": "2.22.2",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
},
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"mz": { "nan": {
"version": "2.7.0", "version": "2.12.1",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
"requires": { "optional": true
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
"thenify-all": "^1.0.0"
}
}, },
"ndjson": { "ndjson": {
"version": "1.5.0", "version": "1.5.0",
@ -516,13 +400,11 @@
"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.extend": { "node-forge": {
"version": "1.1.6", "version": "0.7.6",
"resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz",
"integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==",
"requires": { "optional": true
"is": "^3.1.0"
}
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -560,11 +442,6 @@
"pinkie": "^2.0.0" "pinkie": "^2.0.0"
} }
}, },
"pkijs": {
"version": "1.3.33",
"resolved": "https://registry.npmjs.org/pkijs/-/pkijs-1.3.33.tgz",
"integrity": "sha1-ponvYhE7fDSOH/wJll0iOeW7TJI="
},
"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",
@ -585,9 +462,9 @@
} }
}, },
"pyconf": { "pyconf": {
"version": "1.1.5", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/pyconf/-/pyconf-1.1.5.tgz", "resolved": "https://registry.npmjs.org/pyconf/-/pyconf-1.1.6.tgz",
"integrity": "sha512-zXEg0oUJ4mY6azqVvRy6rePTIHZGhDQG3z9PVkE60uUabS9uILiIkHobU2Jzcs3tBltMBqyEATZZezRR/UFjkg==", "integrity": "sha512-4ujjwqch6nViWduSLc3/QFrDdJJAvAE7NRBarSGLANwh0tNW0MbXeJE8ZziJZvzRnUEN5scYwsS+ItYU1uj6dQ==",
"requires": { "requires": {
"safe-replace": "^1.0.2" "safe-replace": "^1.0.2"
} }
@ -630,18 +507,12 @@
} }
}, },
"rsa-compat": { "rsa-compat": {
"version": "1.4.2", "version": "1.9.2",
"resolved": "https://registry.npmjs.org/rsa-compat/-/rsa-compat-1.4.2.tgz", "resolved": "https://registry.npmjs.org/rsa-compat/-/rsa-compat-1.9.2.tgz",
"integrity": "sha512-Ic0WfTwdiZ8DlSRDe3frod/8XGCZufwnsH4ap+6Ldt+j9bCCxIyoJZwlCvAL2NDeEO7ax0p/H0FmypprDF6B6w==", "integrity": "sha512-XY4I/74W+QENMd99zVsyHQcxYxWTXd0EihVXsI4oeb1bz7DYxEKasQrjyzYPnR1tZT7fTPu5HP/vTKfs9lzdGA==",
"requires": { "requires": {
"node-forge": "^0.6.41" "node-forge": "^0.7.6",
}, "ursa-optional": "^0.9.10"
"dependencies": {
"node-forge": {
"version": "0.6.49",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.49.tgz",
"integrity": "sha1-8e6V1ddGI5OP4Z1piqWibVTS9g8="
}
} }
}, },
"safe-buffer": { "safe-buffer": {
@ -650,9 +521,9 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}, },
"safe-replace": { "safe-replace": {
"version": "1.0.2", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-replace/-/safe-replace-1.0.2.tgz", "resolved": "https://registry.npmjs.org/safe-replace/-/safe-replace-1.1.0.tgz",
"integrity": "sha1-sYGrQJWs32qwqPhAUXSRyoqZIro=" "integrity": "sha512-9/V2E0CDsKs9DWOOwJH7jYpSl9S3N05uyevNjvsnDauBqRowBPOyot1fIvV5N2IuZAbYyvrTXrYFVG0RZInfFw=="
}, },
"sclient": { "sclient": {
"version": "1.4.1", "version": "1.4.1",
@ -795,22 +666,6 @@
} }
} }
}, },
"thenify": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
"integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
"requires": {
"any-promise": "^1.0.0"
}
},
"thenify-all": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
"requires": {
"thenify": ">= 3.1.0 < 4"
}
},
"through2": { "through2": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
@ -825,19 +680,21 @@
"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="
}, },
"topo": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
"integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
"requires": {
"hoek": "2.x.x"
}
},
"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",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
}, },
"ursa-optional": {
"version": "0.9.10",
"resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.9.10.tgz",
"integrity": "sha512-RvEbhnxlggX4MXon7KQulTFiJQtLJZpSb9ZSa7ZTkOW0AzqiVTaLjI4vxaSzJBDH9dwZ3ltZadFiBaZslp6haA==",
"optional": true,
"requires": {
"bindings": "^1.3.0",
"nan": "^2.11.1"
}
},
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"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",

View File

@ -55,9 +55,8 @@
"dependencies": { "dependencies": {
"@coolaj86/urequest": "^1.3.5", "@coolaj86/urequest": "^1.3.5",
"finalhandler": "^1.1.1", "finalhandler": "^1.1.1",
"greenlock": "^2.3.1", "greenlock": "^2.6.7",
"js-yaml": "^3.11.0", "js-yaml": "^3.11.0",
"jsonwebtoken": "^7.1.9",
"keypairs": "^1.0.1", "keypairs": "^1.0.1",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"proxy-packer": "^2.0.2", "proxy-packer": "^2.0.2",