diff --git a/.gitignore b/.gitignore
index 6563db0..783a55a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/node_modules
/.vscode
+access.log
diff --git a/ac.js b/ac.js
index 891d592..4e7ff41 100644
--- a/ac.js
+++ b/ac.js
@@ -88,6 +88,7 @@ function GetState()
{
return state.toString('hex').toUpperCase();
}
+
function GenerateTimingString()
{
var arr = [AcTimes.HdrMark, AcTimes.HdrSpace, AcTimes.BitMark];
diff --git a/dht.js b/dht.js
index 0f954ed..5031852 100644
--- a/dht.js
+++ b/dht.js
@@ -4,156 +4,64 @@
const util = require('util');
const express = require('express');
const bodyParser = require('body-parser');
+
+const request = require('request');
+const got = require('got');
+const WebSocket = require('ws');
+
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const cron = require('node-cron');
-const request = require('request');
-const got = require('got');
-
-const WebSocket = require('ws');
-
-//auth ++
-var session = require('express-session')
-var passport = require('passport')
-var Strategy = require('passport-local').Strategy;
-var db = require('./db');
-var ensureLoggedIn = require("connect-ensure-login").ensureLoggedIn("/n/login");
-
-//! Configure the local strategy for use by Passport.
-//
-// The local strategy require a `verify` function which receives the credentials
-// (`username` and `password`) submitted by the user. The function must verify
-// that the password is correct and then invoke `cb` with a user object, which
-// will be set at `req.user` in route handlers after authentication.
-passport.use(new Strategy(
- function(username, password, cb) {
- console.log('requesting authentication for user '+ username);
- db.users.findByUsername(username, function(err, user) {
- if (err) {console.log('err:'+ util.inspect(err)); return cb(err); }
- if (!user) { console.log('user is null:'); return cb(null, false); }
- if (user.password != password) { console.log('wrong pass '); return cb(null, false); }
- console.log('authenticated!');
- return cb(null, user);
- });
- }));
-
-// Configure Passport authenticated session persistence.
-//
-// In order to restore authentication state across HTTP requests, Passport needs
-// to serialize users into and deserialize users out of the session. The
-// typical implementation of this is as simple as supplying the user ID when
-// serializing, and querying the user record by ID from the database when
-// deserializing.
-passport.serializeUser(function(user, cb) {
- cb(null, user.id);
-});
-
-passport.deserializeUser(function(id, cb) {
- console.log("user deser:"+ id );
- db.users.findById(id, function (err, user) {
- if (err) { return cb(err); }
- cb(null, user);
- });
-});
-
-// auth --
//!https endpoint
var fs = require("fs");
var http = require('http');
var https = require('https');
try{
-var _privateKey = fs.readFileSync('/etc/letsencrypt/live/iot.d-popov.com/privkey.pem', 'utf8');
-var _certificate = fs.readFileSync('/etc/letsencrypt/live/iot.d-popov.com/cert.pem', 'utf8');
-var credentials = {key: _privateKey, cert: _certificate};
+ var SECURE_KEY = "/etc/letsencrypt/live/iot.d-popov.com/privkey.pem"; //__dirname + '/../../test/secure/tls-key.pem';
+ var SECURE_CERT = "/etc/letsencrypt/live/iot.d-popov.com/cert.pem";
+ var _privateKey = fs.readFileSync(SECURE_KEY, 'utf8');
+ var _certificate = fs.readFileSync(SECURE_CERT, 'utf8');
+ var credentials = {key: _privateKey, cert: _certificate};
}catch(ex){console.log("can't load certificates.");}
-//!database
-var mysql = require('mysql');
-var con = mysql.createConnection({
- host : 'localhost',
- user : 'iot',
- password : '!iot_popovi',
- database : 'iot'
-});
-
-
-
-
// defining the Express app
const app = express();
-
-// adding Helmet to enhance your API's security
app.use(helmet());
-
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static('public'));
-
-// enabling CORS for all requests
app.use(cors());
-
-//Authentication ++
-app.use(session({
- key: 'user_sid',
- secret: 'че първият ще генерира грешка',
- resave: true,
- saveUninitialized: false,
- cookie: {
- expires: 600000
- },
-}));
-app.use(passport.initialize());
-app.use(passport.session());
-//Authentication --
-// app.use(function (req, res, next) {
-// res.status(404).send("Can't find that!")
-// });
-
-//app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(require('express-ejs-layouts'));//https://www.npmjs.com/package/express-ejs-layouts
-
// adding morgan to log HTTP requests
app.use(morgan('combined'));
//defining endpoints
//!UI
-
-app.get('/', function(req, res){
- res.redirect('/n/login');
-});
-//Authentication ++
-app.get('/login', function(req, res) {
- res.render('login', { user: req.user });
-});
-
-app.post('/login',
- passport.authenticate('local', {
- successRedirect: '/n/accontrol',
- failureRedirect: '/n/login' }),
- // authenticated user.
- function(req, res) {
-
- console.log("logged in. session:" + req.session);
- res.redirect(req.session);
- }
- );
-app.get('/logout', function(req, res){
- req.logout();
- res.redirect('/n/login');
-});
-
+var auth = require('./src/auth.js');
var ac = require('./ac.js');
+var db = require('./src/db');
+var ir = require('./src/devices/ir');
+var u = require('./src/utils');
-app.get('/accontrol', ensureLoggedIn, function(req, res){
+
+
+app.use(auth.init());
+app.get('/', function(req, res){ res.redirect('/n/login');});
+
+app.get('/accontrol', auth.ensureLoggedIn_Orig,
+ function(req, res){
res.render('accontrol',{model:{data:req.body, user:req.user, command:"", info:""}});
});
-app.post('/accontrol', ensureLoggedIn, function(req, res){
+app.post('/accontrol',
+//ensureLoggedIn,
+function(req, res){
+ console.log("POST accontrol");
var sess=req.session;
var model = { model: {user: req.user, data: req.body} };
console.log("power:" + req.body.power); console.log("heat:" + req.body.heat); console.log("temp:" + req.body.temp);
@@ -167,14 +75,17 @@ app.post('/accontrol', ensureLoggedIn, function(req, res){
ac.Tlc112.SetFan(ac.FanSpeed.Med);
var code = ac.Tlc112.GetCommand();
+
+ mqtt_client.publish('cmnd/', 'controller')
//break it
//code = code.substring(150);
//console.log("RAW: " + code);
- if(SendIRCommand(code))
+ // if(ir.SendCmd("http://192.168.1.126/irraw", code))
+ if(ir.SendCmd("http://192.168.1.126", code))
{
console.log("OK. Temp: " + req.body.temp);
BroadcastWS(ac.Tlc112.GetState());
- }else{
+ } else {
model.info = "Error executing command. Server resturned:" + req.statusCode;
BroadcastWS("Error sending IR command");
}
@@ -183,23 +94,7 @@ app.post('/accontrol', ensureLoggedIn, function(req, res){
// res.render('accontrol',{model: {data: req.body, user: req.user, command: "", info: model.info}});
});
- function SendIRCommand(code){
- console.log("RAW:" + code);
- request.post(
- 'http://192.168.1.126/irraw', { form: { cmd: code } },
- function (error, response, body) {
- if (!error && response.statusCode == 200) {
- console.log("GOT '" + body + "'");
- return true;
- }else{
- console.log("ERROR on SendIRCommand:" + util.inspect(error));
- return false;
- }
- }
- );
- }
-
- app.get('/chart', ensureLoggedIn,
+ app.get('/chart', auth.ensureLoggedIn_Orig,
function(req, res){
res.render('chart', { user: req.user });
});
@@ -207,92 +102,13 @@ app.post('/accontrol', ensureLoggedIn, function(req, res){
//Authentication --
//! ESP HANDLERS
-function GetDht() {
- var ret;
- (async () => {
- try {
- ret = await got('http://192.168.1.126/json');
- } catch (error) {
- console.log(error.response.body);
- }
- })();
- while(ret === undefined) {
- require('deasync').runLoopOnce();
- }
- return ret;
-}
+
const { parse } = require('querystring');
var moment = require('moment');
-var Sync = require('sync');
+// var Sync = require('sync');
-app.use('/dht', (req, res) => {
- try {
- console.log("body:"+util.inspect(req.body));
- var cmd = req.param('e');
- console.log("cmd:" + cmd);
- //console.log("HEADERS:" + util.inspect(req.headers));
- switch(cmd)
- {
- //if(rq.method =="GET")
- case 'setup':
- console.log("/setup> Device is online: " + req.headers.mac);
- break;
-
- case 'ping':
- var t = moment.duration(parseInt(req.param('uptime')), 'milliseconds');
- var _message = req.param('ip') + " uptime " + t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s";
- // var t = moment.duration(parseInt(rq.params.uptime), 'milliseconds');
- // var _message = rq.params.ip + " uptime " + t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s";
- console.log("ping from " + _message);
- //rs.send("pong=ok");
- res.send(t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s");
- break;
-
- case "now":
- console.log("getting current conditions");
- try {
- const response = GetDht();
- console.log(response.body);
- res.send(response.body);
- } catch (error) {
- console.log("DHT Error:" + error);
- }
- console.log("got current conditions??");
- break;
-
- case 'ir':
- console.log("got IR message!");
- console.log(body);
- try{
- ob = JSON.parse(body);
- if(ob.times)
- {
- console.log("GOT TIMING INFO:");
- if(!ob.ir){
- if(SendIRCommand(ob.times)) { res.sendStatus(200);}
- else { res.sendStatus(500); }
- } else {
- console.log("It is from the IR reader. Ignoring...");
- }
- }
- BroadcastWS(ob.info.replaceAll('\n','
') + "
" + ob.descr.replaceAll(',', '
') );
- }catch(ex){
- }
- if(req.param('info') && req.param('descr') )
- {
- console.log("Got Url encoded IR message");
- BroadcastWS(req.param('info').replaceAll('\n','
') + "
" + req.param('descr').replaceAll(',', '
'));
- }
- break;
- }
- res.sendStatus(200);
- } catch (error) {
- console.log("ESP Error:" + error);
- //res.end();
- //res.send(error);
- }
-});
+app.use('/dht', ir.html_handle_dht);
function BroadcastWS(msg){
wss.clients.forEach(function each(client) {
@@ -302,88 +118,42 @@ function BroadcastWS(msg){
});
}
-String.prototype.replaceAll = function(search, replacement) {
- var target = this;
- return target.replace(new RegExp(search, 'g'), replacement);
-};
-app.get("/device/:field_name", (req, res) => {
- dht = con.query("SELECT * FROM devicemessages WHERE field_name=? OR ? IS NULL",
- [req.params.field_name, req.params.field_name], (err, data) => {
- //dht = con.query("SELECT * FROM devicemessages", (err, data) => {
- if (!err) {
- res.send(data);
- } else {
- console.log("error: ", err);
- }
- });
-});
-
-app.put('/device/:device_id/:field_name/:field_value', (req, res) => {
- var params = [req.params.device_id,req.params.field_name,req.params.field_value];
- let sql = `INSERT INTO devicemessages(device_id,field_name,field_value,timestamp)
- VALUES (?,?,?,NOW());`;
- con.query(sql,params, (err, r) => {
- if (err) {
- console.log("error: ", err);
- res.send( err);
- return;
- }
- if (r.affectedRows == 0) {
- // not found Customer with the id
- res.send({ kind: "not_found" });
- return;
- }
- console.log("inserted record: ", { id: r.insertId, ...params });
- res.send( { id: r.insertId, ...params });
+app.get("/device/:field_name", function (req, res) {
+ db.devicemessages.findByName(req.params.field_name, function (err, data) {
+ if (!err) { res.send(data); }
+ else { console.log("error: ", err); }
});
});
+app.put('/device/:device_id/:field_name/:field_value', (req, res) => {
+ db.devicemessages.insert( req.params.device_id, req.params.field_name, req.params.field_value,
+ function (err, data) {
+ if (!err) { res.send(data); }
+ else { console.log("error: ", err); }
+ });
+});
//!Startup
-var httpServer = http.createServer(app);
+var wws;
if(credentials){
var httpsServer = https.createServer(credentials, app);
httpsServer.listen(8443, () => {
console.log('HTTPS server listening on port 8443');
});
+ wss = new WebSocket.Server({ server: httpsServer });
+}
+else
+{
+ var httpServer = http.createServer(app);
+ httpServer.listen(82, () => {
+ console.log('HTTP server listening on port 82');
+ });
+ wss = new WebSocket.Server({ port: 8080 });//not secure
}
-httpServer.listen(81, () => {
- console.log('HTTP server listening on port 81');
-});
-// store a reference to the original request function
-// const originalRequest = httpsServer.request;
-// // override the function
-// httpsServer.request = function wrapMethodRequest(req) {
-// console.log(req.host, req.body);
-// // do something with the req here
-// // ...
-// // call the original 'request' function
-// return originalRequest.apply(this, arguments);
-// }
-
-
-const wss = new WebSocket.Server({ server: httpsServer })//{ port: 8080 })
-
-// //!database
-// var data = require('./database.js');
-// //require('./database.js')();
-// //data.init();
-
-// var device = data.Device.build({
-// name: 'A23',
-// url: "http://192.168.1.126/"
-// });
-
-// device.save().then().catch(
-// err => {console.log(err);}
-// )
-//.success(function(savedTask) {
-// console.log('device saved with id' + savedTask.id);
- // });
// # ┌────────────── second (optional)
// # │ ┌──────────── minute
@@ -396,9 +166,12 @@ const wss = new WebSocket.Server({ server: httpsServer })//{ port: 8080 })
// # * * * * * *
cron.schedule(' */30 * * * *', () => {//cron.schedule('*/5 * * * * *', () => {
console.log(new Date().toISOString() + ' running a task every 30 minutes');
- StoreSensorReadingsAsync();
+ //StoreSensorReadings();
+ db.devicemessages.getFromDht('http://192.168.1.126/json');
}).start();
+//db.devicemessages.getFromDht('http://192.168.1.126/json');
+
wss.on('connection', ws => {
ws.on('message', message => {
console.log(`Received message => ${message}`)
@@ -406,48 +179,64 @@ wss.on('connection', ws => {
ws.send('ho!')
})
-//StoreSensorReadings();
-async function StoreSensorReadingsAsync()
-{
- console.log("StoreSensorReadingsAsync");
- try {
- await new Promise(function(resolve, reject) {
- request('http://192.168.1.126/json', { json: true }, (err, res, body) => {
- if(err) { return reject(err); }
- else {
- SaveSensorReading(JSON.stringify(body))
- resolve(body);
- }
- });
- });
- } catch(error) {
- console.error(error);
+var mosca = require('mosca')
+var mqtt_settings = {
+ port:1884,
+ secure : {
+ port: 8444,
+ keyPath: SECURE_KEY,
+ certPath: SECURE_CERT,
}
}
+var mqtt = new mosca.Server(mqtt_settings);
+mqtt.on('ready', function(){
+ console.log("MQTT ready on port " + mqtt_settings.port);
+})
+mqtt.on('clientConnected', function(){
+ console.log("MQTT client connected !");
+});
-function SaveSensorReading(data)
-{
- var params = [0, "A23_DHT", data];
- let sql = `INSERT INTO devicemessages(device_id,field_name,field_value,timestamp)
- VALUES (?,?,?,NOW());`;
- con.query(sql,params,(err, r) => {
- if (err) {
- console.log("SQL: ", err);
- }else{
- console.log("inserted record: ", { id: r.insertId, ...params });
+var mqtt = require('mqtt')
+var mqtt_client = mqtt.connect('mqtt://192.168.1.131')
+mqtt_client.on('connect', function () {
+ console.log("MQTT connected. subscribing to topics");
+ mqtt_client.subscribe('tele/tasmota/STATE');
+ mqtt_client.subscribe('tele/tasmota/RESULT');//IR
+ mqtt_client.subscribe('tele/tasmota/INFO2');
+ mqtt_client.subscribe('tele/tasmota/SENSOR');//DHT
+
+ mqtt_client.subscribe('tasmota_3FD92D');
+ mqtt_client.subscribe('tele');
+ mqtt_client.subscribe('dht');
+ mqtt_client.subscribe('ir');
+ mqtt_client.publish('tasmota', 'controller')
+});
+// https://github.com/pauloromeira/Sonoff-Tasmota/wiki/Commands
+//https://stevessmarthomeguide.com/setting-up-the-sonoff-tasmota-mqtt-switch/
+mqtt_client.on('message', function (topic, message) {
+ var context = message.toString();
+ console.log("MMQT> " + topic + " : " + context);
+ if(topic === "tele/tasmota/SENSOR")
+ {
+ var j = JSON.parse(message);
+ console.log("JSON> " + util.inspect(j));
+ if(j.DHT11 && j.DHT11.Humidity !== null)
+ {
+ var msg = {
+ dht:{
+ hum: j.DHT11.Humidity,
+ temp: j.DHT11.Temperature,
+ dew: j.DHT11.DewPoint
+ }
+ };
+
+ db.devicemessages.insert( 0, "A23_DHT", JSON.stringify(msg), function (err, data) {
+ if (!err) { console.log("success: "+ data);}
+ else { console.log("error: " + err); }
+ });
+ }else {
+ console.log("got wrong DHT data: " + message );
}
- });
-}
-
-function StoreSensorReadings()
-{
- console.log("StoreSensorReadings");
- (async () => {
- try {
- const dht = await got('http://192.168.1.126/json')
- SaveSensorReading(dht.body);
- } catch (error) { console.log("DHT Error:" + error); //..response.body);
- }
- })();
-}
+ }
+});
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 6439518..e3036bb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -59,6 +59,14 @@
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
+ "abstract-leveldown": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz",
+ "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=",
+ "requires": {
+ "xtend": "~3.0.0"
+ }
+ },
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -78,6 +86,17 @@
}
}
},
+ "acorn": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
+ "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="
+ },
+ "after": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+ "optional": true
+ },
"ajv": {
"version": "6.12.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
@@ -89,6 +108,59 @@
"uri-js": "^4.2.2"
}
},
+ "amqp": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/amqp/-/amqp-0.2.7.tgz",
+ "integrity": "sha1-c4z8Rf2cmSYLRdX6/DLtAAhB4bE=",
+ "optional": true,
+ "requires": {
+ "lodash": "^4.0.0"
+ }
+ },
+ "amqplib": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.4.2.tgz",
+ "integrity": "sha1-XkoqkUzLMSX5y5H22gfJeqTLE6Y=",
+ "optional": true,
+ "requires": {
+ "bitsyntax": "~0.0.4",
+ "buffer-more-ints": "0.0.2",
+ "readable-stream": "1.x >=1.1.9",
+ "when": "~3.6.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ }
+ }
+ },
+ "ansi": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=",
+ "optional": true
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -112,16 +184,128 @@
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
},
+ "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"
+ }
+ },
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
+ "array-from": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
+ "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU="
+ },
+ "array-index": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz",
+ "integrity": "sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k=",
+ "optional": true,
+ "requires": {
+ "debug": "^2.2.0",
+ "es6-symbol": "^3.0.2"
+ }
+ },
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
+ "ascoltatori": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ascoltatori/-/ascoltatori-3.2.0.tgz",
+ "integrity": "sha1-FoO9h+MIpzyRjjuZqyaDsCU8iWc=",
+ "requires": {
+ "amqp": "~0.2.4",
+ "amqplib": "~0.4.1",
+ "debug": "^2.2.0",
+ "eventemitter2": "^2.1.3",
+ "ioredis": "^2.3.0",
+ "kafka-node": "~0.5.8",
+ "kerberos": "~0.0",
+ "mongodb": "^2.1.18",
+ "mqtt": "^1.10.0",
+ "msgpack-lite": "^0.1.20",
+ "node-uuid": "~1.4.3",
+ "qlobber": "~0.7.0",
+ "qlobber-fsq": "~3.2.4",
+ "steed": "^1.1.3",
+ "zmq": "^2.14.0"
+ },
+ "dependencies": {
+ "ioredis": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-2.5.0.tgz",
+ "integrity": "sha1-+2/fChp+CXRhTGe25eETCKjPlbk=",
+ "optional": true,
+ "requires": {
+ "bluebird": "^3.3.4",
+ "cluster-key-slot": "^1.0.6",
+ "debug": "^2.2.0",
+ "double-ended-queue": "^2.1.0-0",
+ "flexbuffer": "0.0.6",
+ "lodash": "^4.8.2",
+ "redis-commands": "^1.2.0",
+ "redis-parser": "^1.3.0"
+ }
+ },
+ "mongodb": {
+ "version": "2.2.36",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz",
+ "integrity": "sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA==",
+ "optional": true,
+ "requires": {
+ "es6-promise": "3.2.1",
+ "mongodb-core": "2.1.20",
+ "readable-stream": "2.2.7"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
+ "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
+ "optional": true,
+ "requires": {
+ "buffer-shims": "~1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~1.0.0",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
@@ -135,6 +319,36 @@
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "optional": true
+ },
+ "async-cache": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz",
+ "integrity": "sha1-SppaidBl7F2OUlS9nulrp2xTK1o=",
+ "requires": {
+ "lru-cache": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ }
+ },
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -181,6 +395,16 @@
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
"integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
},
+ "binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
+ "optional": true,
+ "requires": {
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
+ }
+ },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
@@ -189,6 +413,15 @@
"file-uri-to-path": "1.0.0"
}
},
+ "bitsyntax": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz",
+ "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=",
+ "optional": true,
+ "requires": {
+ "buffer-more-ints": "0.0.2"
+ }
+ },
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
@@ -198,6 +431,15 @@
"safe-buffer": "^5.1.1"
}
},
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "optional": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
@@ -234,21 +476,117 @@
"concat-map": "0.0.1"
}
},
+ "brfs": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.4.4.tgz",
+ "integrity": "sha512-rX2qc9hkpLPiwdu1HkLY642rwwo3X6N+ZPyEPdNn3OUKV/B2BRP7dHdnkhGantOJLVoTluNYBi4VecHb2Kq2hw==",
+ "requires": {
+ "quote-stream": "^1.0.1",
+ "resolve": "^1.1.5",
+ "static-module": "^2.1.1",
+ "through2": "^2.0.0"
+ }
+ },
"bson": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz",
"integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q=="
},
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "optional": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "optional": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "optional": true
+ },
+ "buffer-equal": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
+ "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs="
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "optional": true
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
+ "buffer-more-ints": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
+ "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=",
+ "optional": true
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+ "optional": true
+ },
+ "buffermaker": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/buffermaker/-/buffermaker-1.2.1.tgz",
+ "integrity": "sha512-IdnyU2jDHU65U63JuVQNTHiWjPRH0CS3aYd/WPaEwyX84rFdukhOduAVb1jwUScmb5X0JWPw8NZOrhoLMiyAHQ==",
+ "optional": true,
+ "requires": {
+ "long": "1.1.2"
+ },
+ "dependencies": {
+ "long": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/long/-/long-1.1.2.tgz",
+ "integrity": "sha1-6u9ZUcp1UdlpJrgtokLbnWso+1M=",
+ "optional": true
+ }
+ }
+ },
+ "buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
+ "optional": true
+ },
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
+ "bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=",
+ "requires": {
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
+ }
+ },
+ "bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=",
+ "requires": {
+ "typewise-core": "^1.2"
+ }
+ },
"cacheable-lookup": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz",
@@ -272,6 +610,15 @@
"responselike": "^2.0.0"
}
},
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -296,6 +643,48 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
},
+ "chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
+ "optional": true,
+ "requires": {
+ "traverse": ">=0.3.0 <0.4"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "optional": true
+ },
"cli-color": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
@@ -319,6 +708,11 @@
"wrap-ansi": "^5.1.0"
}
},
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
+ },
"clone-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
@@ -343,6 +737,18 @@
"shimmer": "^1.1.0"
}
},
+ "cluster-key-slot": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
+ "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==",
+ "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
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -374,6 +780,15 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ }
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -404,6 +819,12 @@
"resolved": "https://registry.npmjs.org/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz",
"integrity": "sha1-F03MUSQ7nqwj+NmCFa62aU4uihI="
},
+ "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
+ },
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
@@ -422,11 +843,43 @@
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
"cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
},
+ "cookie-auth": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/cookie-auth/-/cookie-auth-2.4.2.tgz",
+ "integrity": "sha1-hq4c8Sj7vugdM5WqpLA6pnX4Rwk=",
+ "requires": {
+ "cookie-cutter": "^0.1.1",
+ "debug": "^2.1.0",
+ "memdb": "^0.2.0"
+ }
+ },
+ "cookie-cutter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/cookie-cutter/-/cookie-cutter-0.1.1.tgz",
+ "integrity": "sha1-RQP9ndNexwAM6UXvnMox11/pzOo="
+ },
+ "cookie-parser": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
+ "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
+ "requires": {
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6"
+ }
+ },
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
@@ -498,16 +951,54 @@
"mimic-response": "^2.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
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "deepcopy": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-0.6.3.tgz",
+ "integrity": "sha1-Y0eA8vhlardxr4+oQx7RzO5Vx7A="
+ },
"defer-to-connect": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz",
"integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="
},
+ "deferred-leveldown": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz",
+ "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=",
+ "requires": {
+ "abstract-leveldown": "~0.12.1"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true
+ },
"denque": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
@@ -523,11 +1014,6 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"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="
- },
"dns-prefetch-control": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz",
@@ -543,11 +1029,36 @@
"resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
"integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg=="
},
+ "double-ended-queue": {
+ "version": "2.1.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+ "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=",
+ "optional": true
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
"duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -612,6 +1123,21 @@
"once": "^1.4.0"
}
},
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "requires": {
+ "prr": "~1.0.1"
+ },
+ "dependencies": {
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+ }
+ }
+ },
"es5-ext": {
"version": "0.10.53",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
@@ -632,6 +1158,12 @@
"es6-symbol": "^3.1.1"
}
},
+ "es6-promise": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
+ "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=",
+ "optional": true
+ },
"es6-symbol": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
@@ -657,11 +1189,45 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escodegen": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
+ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
+ "requires": {
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+ }
+ }
+ },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
@@ -676,6 +1242,33 @@
"es5-ext": "~0.10.14"
}
},
+ "event-lite": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz",
+ "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==",
+ "optional": true
+ },
+ "eventemitter2": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-2.2.2.tgz",
+ "integrity": "sha1-QH6nHCAgzVdTggOrfnpr3Pt2ktU=",
+ "optional": true
+ },
+ "execspawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/execspawn/-/execspawn-1.0.1.tgz",
+ "integrity": "sha1-gob53efOzeeQX73ATiTzaPI/jaY=",
+ "optional": true,
+ "requires": {
+ "util-extend": "^1.0.1"
+ }
+ },
+ "expand-template": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
+ "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==",
+ "optional": true
+ },
"expect-ct": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz",
@@ -878,29 +1471,113 @@
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
+ "falafel": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz",
+ "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==",
+ "requires": {
+ "acorn": "^7.1.1",
+ "foreach": "^2.0.5",
+ "isarray": "^2.0.1",
+ "object-keys": "^1.0.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ }
+ }
+ },
"fast-deep-equal": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
"integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
},
+ "fast-future": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz",
+ "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=",
+ "optional": true
+ },
+ "fast-json-parse": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz",
+ "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw=="
+ },
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "fast-safe-stringify": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-1.2.3.tgz",
+ "integrity": "sha512-QJYT/i0QYoiZBQ71ivxdyTqkwKkQ0oxACXHYxH2zYHJEgzi2LsbjgvtzTbLi1SZcF190Db2YP7I7eTsU2egOlw=="
+ },
+ "fastfall": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/fastfall/-/fastfall-1.5.1.tgz",
+ "integrity": "sha1-P+4DMxpJ0dObPN96XpzWb0dee5Q=",
+ "requires": {
+ "reusify": "^1.0.0"
+ }
+ },
+ "fastparallel": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fastparallel/-/fastparallel-2.3.0.tgz",
+ "integrity": "sha1-HnCb+2oDmT84V+POfwExHOdgJhM=",
+ "requires": {
+ "reusify": "^1.0.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "fastq": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz",
+ "integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fastseries": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/fastseries/-/fastseries-1.7.2.tgz",
+ "integrity": "sha1-0izhO5Qz3/M4jZHb1ri9qbIaD0s=",
+ "requires": {
+ "reusify": "^1.0.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "fd": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz",
+ "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA=="
+ },
"feature-policy": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz",
"integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ=="
},
- "fibers": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.0.tgz",
- "integrity": "sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg==",
- "requires": {
- "detect-libc": "^1.0.3"
- }
- },
"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",
@@ -943,6 +1620,22 @@
"locate-path": "^3.0.0"
}
},
+ "flatstr": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
+ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
+ },
+ "flexbuffer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/flexbuffer/-/flexbuffer-0.0.6.tgz",
+ "integrity": "sha1-A5/fI/iCPkQMOPMnfm/vEXQhWzA=",
+ "optional": true
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -973,6 +1666,21 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
+ "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
+ },
+ "fs-ext": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/fs-ext/-/fs-ext-0.5.0.tgz",
+ "integrity": "sha1-nB+aILjn4BLgqRS14ZEyck9E9p4=",
+ "optional": true,
+ "requires": {
+ "nan": "^2.0"
+ }
+ },
"fs-extra": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
@@ -988,6 +1696,87 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
+ "fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ },
+ "gauge": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz",
+ "integrity": "sha1-01MBrRjpaQK0dR3LvkD0IYuUKkY=",
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-color": "^0.1.7",
+ "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"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
"generate-function": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
@@ -1022,6 +1811,61 @@
"assert-plus": "^1.0.0"
}
},
+ "ghreleases": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/ghreleases/-/ghreleases-1.0.7.tgz",
+ "integrity": "sha512-1lFGyLLF38Q6cFCDyebN5vzQ2P9DEaAgxPIDLmQwQDVDmUe2Wgv+6dhAIoHeA+My4HLpaJ+dKF73xtuykN2cbQ==",
+ "optional": true,
+ "requires": {
+ "after": "~0.8.1",
+ "ghrepos": "~2.1.0",
+ "ghutils": "~3.2.0",
+ "simple-mime": "~0.1.0",
+ "url-template": "~2.0.6",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "ghrepos": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ghrepos/-/ghrepos-2.1.0.tgz",
+ "integrity": "sha512-6GM0ohSDTAv7xD6GsKfxJiV/CajoofRyUwu0E8l29d1o6lFAUxmmyMP/FH33afA20ZrXzxxcTtN6TsYvudMoAg==",
+ "optional": true,
+ "requires": {
+ "ghutils": "~3.2.0"
+ }
+ },
+ "ghutils": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/ghutils/-/ghutils-3.2.6.tgz",
+ "integrity": "sha512-WpYHgLQkqU7Cv147wKUEThyj6qKHCdnAG2CL9RRsRQImVdLGdVqblJ3JUnj3ToQwgm1ALPS+FXgR0448AgGPUg==",
+ "optional": true,
+ "requires": {
+ "jsonist": "~2.1.0",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "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
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -1035,6 +1879,32 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ }
+ },
"got": {
"version": "10.7.0",
"resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz",
@@ -1062,6 +1932,11 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -1076,6 +1951,39 @@
"har-schema": "^2.0.0"
}
},
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-color": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
+ "optional": true
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+ },
+ "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
+ },
"helmet": {
"version": "3.21.3",
"resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.3.tgz",
@@ -1121,6 +2029,24 @@
"dasherize": "2.0.0"
}
},
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
"hide-powered-by": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz",
@@ -1195,6 +2121,88 @@
"sshpk": "^1.7.0"
}
},
+ "hyperquest": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/hyperquest/-/hyperquest-2.1.3.tgz",
+ "integrity": "sha512-fUuDOrB47PqNK/BAMOS13v41UoaqIxqSLHX6CAbOD7OfT+/GCWO1/vPLfTNutOeXrv1ikuaZ3yux+33Z9vh+rw==",
+ "optional": true,
+ "requires": {
+ "buffer-from": "^0.1.1",
+ "duplexer2": "~0.0.2",
+ "through2": "~0.6.3"
+ },
+ "dependencies": {
+ "buffer-from": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz",
+ "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==",
+ "optional": true
+ },
+ "duplexer2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+ "optional": true,
+ "requires": {
+ "readable-stream": "~1.1.9"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "optional": true,
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -1203,6 +2211,12 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "optional": true
+ },
"ienoopen": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz",
@@ -1232,21 +2246,81 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
+ "int64-buffer": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz",
+ "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=",
+ "optional": true
+ },
+ "ioredis": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-1.15.1.tgz",
+ "integrity": "sha1-UlJVzM1Ve904oO00ZhmfWesLnRw=",
+ "optional": true,
+ "requires": {
+ "bluebird": "^2.9.34",
+ "debug": "^2.2.0",
+ "double-ended-queue": "^2.1.0-0",
+ "flexbuffer": "0.0.6",
+ "lodash": "^3.6.0"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=",
+ "optional": true
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "optional": true
+ }
+ }
+ },
"ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
"is-bluebird": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
"integrity": "sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI="
},
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+ },
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -1257,16 +2331,43 @@
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
},
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "optional": true
+ },
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -1304,6 +2405,11 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -1317,6 +2423,51 @@
"graceful-fs": "^4.1.6"
}
},
+ "jsonist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/jsonist/-/jsonist-2.1.2.tgz",
+ "integrity": "sha512-8yqmWJAC2VaYoSKQAbsfgCpGY5o/1etWzx6ZxaZrC4iGaHrHUZEo+a2MyF8w+2uTavTlHdLWaZUoR19UfBstxQ==",
+ "optional": true,
+ "requires": {
+ "bl": "~3.0.0",
+ "hyperquest": "~2.1.3",
+ "json-stringify-safe": "~5.0.1",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz",
+ "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==",
+ "optional": true,
+ "requires": {
+ "readable-stream": "^3.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "jsonschema": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz",
+ "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA=="
+ },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -1328,11 +2479,57 @@
"verror": "1.10.0"
}
},
+ "kafka-node": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/kafka-node/-/kafka-node-0.5.9.tgz",
+ "integrity": "sha1-mpwp0JI37okrb1ZkDg0yqAORohI=",
+ "optional": true,
+ "requires": {
+ "async": ">0.9 <2.0",
+ "binary": "~0.3.0",
+ "buffer-crc32": "~0.2.5",
+ "buffermaker": "~1.2.0",
+ "debug": "^2.1.3",
+ "lodash": ">3.0 <4.0",
+ "minimatch": "^3.0.2",
+ "nested-error-stacks": "^1.0.2",
+ "node-uuid": "~1.4.3",
+ "node-zookeeper-client": "~0.2.2",
+ "optional": "^0.1.3",
+ "retry": "~0.6.1",
+ "snappy": "^5.0.5"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "optional": true
+ }
+ }
+ },
"kareem": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
"integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw=="
},
+ "kerberos": {
+ "version": "0.0.24",
+ "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-0.0.24.tgz",
+ "integrity": "sha512-QO6bFq9eETHB5zcA0OJiQtw137TH45OuUcGtI+QGg2ZJQIPCvwXL2kjCqZZMColcIdbPhj4X40EY5f3oOiBfiw==",
+ "optional": true,
+ "requires": {
+ "nan": "~2.10.0"
+ },
+ "dependencies": {
+ "nan": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "optional": true
+ }
+ }
+ },
"keyv": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.0.tgz",
@@ -1341,6 +2538,243 @@
"json-buffer": "3.0.1"
}
},
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ=="
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "level-post": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz",
+ "integrity": "sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==",
+ "requires": {
+ "ltgt": "^2.1.2"
+ }
+ },
+ "level-sublevel": {
+ "version": "6.6.5",
+ "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.5.tgz",
+ "integrity": "sha512-SBSR60x+dghhwGUxPKS+BvV1xNqnwsEUBKmnFepPaHJ6VkBXyPK9SImGc3K2BkwBfpxlt7GKkBNlCnrdufsejA==",
+ "requires": {
+ "bytewise": "~1.1.0",
+ "levelup": "~0.19.0",
+ "ltgt": "~2.1.1",
+ "pull-defer": "^0.2.2",
+ "pull-level": "^2.0.3",
+ "pull-stream": "^3.6.8",
+ "typewiselite": "~1.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz",
+ "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=",
+ "requires": {
+ "readable-stream": "~1.0.26"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "levelup": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz",
+ "integrity": "sha1-86anIFJyxLXzXkEv8ASgOgrt9Qs=",
+ "requires": {
+ "bl": "~0.8.1",
+ "deferred-leveldown": "~0.2.0",
+ "errno": "~0.1.1",
+ "prr": "~0.0.0",
+ "readable-stream": "~1.0.26",
+ "semver": "~5.1.0",
+ "xtend": "~3.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
+ "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo="
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "semver": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz",
+ "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "leveldown": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-1.4.6.tgz",
+ "integrity": "sha1-xie6pMZ2X9Pr+U87MKeu/bnIk/s=",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~2.4.0",
+ "bindings": "~1.2.1",
+ "fast-future": "~1.0.0",
+ "nan": "~2.3.0",
+ "prebuild": "^4.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz",
+ "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=",
+ "optional": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "bindings": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
+ "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=",
+ "optional": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "levelup": {
+ "version": "0.18.6",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz",
+ "integrity": "sha1-5qAcsIlhbI7MApHCqb0/DETj5es=",
+ "requires": {
+ "bl": "~0.8.1",
+ "deferred-leveldown": "~0.2.0",
+ "errno": "~0.1.1",
+ "prr": "~0.0.0",
+ "readable-stream": "~1.0.26",
+ "semver": "~2.3.1",
+ "xtend": "~3.0.0"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz",
+ "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=",
+ "requires": {
+ "readable-stream": "~1.0.26"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "semver": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz",
+ "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -1355,11 +2789,34 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
+ "lodash.pad": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
+ "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=",
+ "optional": true
+ },
+ "lodash.padend": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=",
+ "optional": true
+ },
+ "lodash.padstart": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
+ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=",
+ "optional": true
+ },
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
+ "looper": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz",
+ "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew="
+ },
"lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
@@ -1381,11 +2838,41 @@
"es5-ext": "~0.10.2"
}
},
+ "ltgt": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz",
+ "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ="
+ },
+ "magic-string": {
+ "version": "0.22.5",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
+ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
+ "requires": {
+ "vlq": "^0.2.2"
+ }
+ },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
+ "memdb": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memdb/-/memdb-0.2.0.tgz",
+ "integrity": "sha1-T0KU5ma8ZaGz4VObu/nm/zR54u4=",
+ "requires": {
+ "levelup": "~0.18.3",
+ "memdown": "~0.8.0"
+ }
+ },
+ "memdown": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-0.8.0.tgz",
+ "integrity": "sha1-JcWWwZkVmMPMOOgFUG5tANHmlxI=",
+ "requires": {
+ "abstract-leveldown": "~0.12.0"
+ }
+ },
"memoizee": {
"version": "0.4.14",
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
@@ -1412,6 +2899,21 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
+ "merge-source-map": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
+ "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=",
+ "requires": {
+ "source-map": "^0.5.6"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
+ }
+ },
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -1448,6 +2950,11 @@
"brace-expansion": "^1.1.7"
}
},
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -1479,6 +2986,24 @@
"saslprep": "^1.0.0"
}
},
+ "mongodb-core": {
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz",
+ "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==",
+ "optional": true,
+ "requires": {
+ "bson": "~1.0.4",
+ "require_optional": "~1.0.0"
+ },
+ "dependencies": {
+ "bson": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz",
+ "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==",
+ "optional": true
+ }
+ }
+ },
"mongoose": {
"version": "5.9.7",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.7.tgz",
@@ -1528,11 +3053,328 @@
}
}
},
+ "mosca": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/mosca/-/mosca-2.8.3.tgz",
+ "integrity": "sha512-jjhbk7DZjSRq8JaGhcdQQVReMXlgcIzKvlfxTZfZksnvhiZH0EEy4hNYefQokaa9f6zqdkc09u2dbUJ/ZTFlag==",
+ "requires": {
+ "amqp": "~0.2.4",
+ "array-from": "^2.1.1",
+ "ascoltatori": "^3.0.0",
+ "brfs": "~1.4.2",
+ "clone": "^1.0.2",
+ "commander": "~2.9.0",
+ "deepcopy": "^0.6.1",
+ "escape-string-regexp": "^1.0.5",
+ "extend": "^3.0.0",
+ "ioredis": "^1.15.1",
+ "json-buffer": "~2.0.11",
+ "jsonschema": "^1.0.3",
+ "level-sublevel": "^6.5.2",
+ "leveldown": "~1.4.3",
+ "levelup": "^1.3.8",
+ "lru-cache": "~4.0.0",
+ "memdown": "~1.1.1",
+ "minimatch": "~3.0.0",
+ "mongodb": "~2.1.4",
+ "moving-average": "0.1.1",
+ "mqtt": "^1.6.3",
+ "mqtt-connection": "^2.1.1",
+ "msgpack5": "^3.3.0",
+ "nanoid": "^0.2.2",
+ "pbkdf2-password": "^1.1.0",
+ "pino": "^2.4.2",
+ "qlobber": "~0.7.0",
+ "retimer": "^1.0.1",
+ "st": "^1.1.0",
+ "steed": "^1.0.0",
+ "uuid": "^2.0.1",
+ "websocket-stream": "~3.1.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "bson": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-0.4.23.tgz",
+ "integrity": "sha1-5louPHUH/63kEJvHV1p25Q+NqRU=",
+ "optional": true
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "es6-promise": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
+ "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=",
+ "optional": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "optional": true
+ },
+ "json-buffer": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-2.0.11.tgz",
+ "integrity": "sha1-PkQf2jCYvo0eMXGtWRvGKjPi1V8="
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
+ "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
+ "requires": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-1.0.2.tgz",
+ "integrity": "sha1-5oF+sprSBPwMnpbviw/umO9rmqM="
+ },
+ "memdown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.1.2.tgz",
+ "integrity": "sha1-O4wkWA2yPkezxnLyzPCxkxh4RMs=",
+ "requires": {
+ "abstract-leveldown": "^2.0.3",
+ "functional-red-black-tree": "^1.0.1",
+ "inherits": "~2.0.1",
+ "ltgt": "~1.0.2"
+ }
+ },
+ "mongodb": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.1.21.tgz",
+ "integrity": "sha1-dkcJ28zrWCW06zH5U5X5Zf1EInI=",
+ "optional": true,
+ "requires": {
+ "es6-promise": "3.0.2",
+ "mongodb-core": "1.3.21",
+ "readable-stream": "1.0.31"
+ }
+ },
+ "mongodb-core": {
+ "version": "1.3.21",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.21.tgz",
+ "integrity": "sha1-/hKee+4rOybBQJ3gKrYNA/YpHMo=",
+ "optional": true,
+ "requires": {
+ "bson": "~0.4.23",
+ "require_optional": "~1.0.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+ },
+ "readable-stream": {
+ "version": "1.0.31",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz",
+ "integrity": "sha1-jyUC4LyeOw2huUUgqrtOJgPsr64=",
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ }
+ },
+ "moving-average": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/moving-average/-/moving-average-0.1.1.tgz",
+ "integrity": "sha1-mxnDdpeOIblF7Xd2eO2VTUt7VHU="
+ },
"mpath": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz",
"integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
},
+ "mqtt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-1.14.1.tgz",
+ "integrity": "sha1-fjdphxU9AXk+lG0m1GEi6/DANVQ=",
+ "requires": {
+ "commist": "^1.0.0",
+ "concat-stream": "^1.4.7",
+ "end-of-stream": "^1.1.0",
+ "help-me": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimist": "^1.1.0",
+ "mqtt-connection": "^2.0.0",
+ "mqtt-packet": "^3.4.7",
+ "pump": "^1.0.1",
+ "readable-stream": "~1.0.2",
+ "reinterval": "^1.0.1",
+ "split2": "^2.0.1",
+ "websocket-stream": "^3.0.1",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "pump": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "mqtt-connection": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mqtt-connection/-/mqtt-connection-2.1.1.tgz",
+ "integrity": "sha1-ey6YWnThlmGUML69NdoWLDTE5Wo=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "mqtt-packet": "^3.0.0",
+ "reduplexer": "^1.1.0",
+ "through2": "^0.6.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "mqtt-packet": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-3.5.1.tgz",
+ "integrity": "sha512-9mHaa4MltqT/VEzeO/3iAqduao/aCzx4qcC3SyXi0FPd3AFJ7lDeBUMsKaTQw0wWX7rLCQbClKOsuCURaii+ww==",
+ "requires": {
+ "bl": "^1.0.0",
+ "inherits": "^2.0.1"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
"mquery": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz",
@@ -1560,6 +3402,40 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
+ "msgpack-lite": {
+ "version": "0.1.26",
+ "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz",
+ "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=",
+ "optional": true,
+ "requires": {
+ "event-lite": "^0.1.1",
+ "ieee754": "^1.1.8",
+ "int64-buffer": "^0.1.9",
+ "isarray": "^1.0.0"
+ }
+ },
+ "msgpack5": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.0.tgz",
+ "integrity": "sha512-6HuCZHA57WtNUzrKIvjJ8OMxigzveJ6D5i13y6TsgGu3X3zxABpuBvChpppOoGdB9SyWZcmqUs1fwUV/PpSQ7Q==",
+ "requires": {
+ "bl": "^1.2.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
"mysql": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
@@ -1621,11 +3497,31 @@
}
}
},
+ "nan": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz",
+ "integrity": "sha1-gioNwmYpDOTNOhIoLKPn42Rmigg=",
+ "optional": true
+ },
+ "nanoid": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-0.2.2.tgz",
+ "integrity": "sha512-GHoRrvNEKiwdkwQ/enKL8AhQkkrBC/2KxMZkDvQzp8OtkpX8ZAmoYJWFVl7l8F2+HcEJUfdg21Ab2wXXfrvACQ=="
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
+ "nested-error-stacks": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
+ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
+ "optional": true,
+ "requires": {
+ "inherits": "~2.0.1"
+ }
+ },
"next-tick": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
@@ -1650,11 +3546,143 @@
"tz-offset": "0.0.1"
}
},
+ "node-gyp": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.4.0.tgz",
+ "integrity": "sha1-3aVYOTs+y74kyea4cDxxGUxj+jY=",
+ "optional": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3",
+ "osenv": "0",
+ "path-array": "^1.0.0",
+ "request": "2",
+ "rimraf": "2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "optional": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ }
+ }
+ },
+ "node-ninja": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/node-ninja/-/node-ninja-1.0.2.tgz",
+ "integrity": "sha1-IKCeV7kuLfWRmT1L8JisPnJwYrY=",
+ "optional": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "glob": "3 || 4 || 5 || 6 || 7",
+ "graceful-fs": "^4.1.2",
+ "minimatch": "3",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2",
+ "osenv": "0",
+ "path-array": "^1.0.0",
+ "request": "2",
+ "rimraf": "2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "dependencies": {
+ "gauge": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
+ "optional": true,
+ "requires": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "optional": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "npmlog": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
+ "optional": true,
+ "requires": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ }
+ }
+ }
+ },
"node-uuid": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
"integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
},
+ "node-zookeeper-client": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/node-zookeeper-client/-/node-zookeeper-client-0.2.3.tgz",
+ "integrity": "sha512-V4gVHxzQ42iwhkANpPryzfjmqi3Ql3xeO9E/px7W5Yi774WplU3YtqUpnvcL/eJit4UqcfuLOgZLkpf0BPhHmg==",
+ "optional": true,
+ "requires": {
+ "async": "~0.2.7",
+ "underscore": "~1.4.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "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
+ },
"nopt": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
@@ -1669,6 +3697,24 @@
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
},
+ "npmlog": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-3.1.2.tgz",
+ "integrity": "sha1-LUb6h0M3r5SYovErtD2NC+SjaHM=",
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.6.0",
+ "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
+ },
"oauth": {
"version": "0.9.15",
"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
@@ -1684,6 +3730,27 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
+ "object-inspect": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
+ "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -1710,6 +3777,38 @@
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz",
"integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw=="
},
+ "optional": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
+ "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==",
+ "optional": true
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "options": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
+ "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -1800,6 +3899,14 @@
"request": "^2.88.0"
}
},
+ "passport-cookie": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/passport-cookie/-/passport-cookie-1.0.6.tgz",
+ "integrity": "sha512-WgTC2OYk1fGT4nj9U9qD1/nZ155Fmpjrogkfdpv2iEhGP5QZXy7Di/dJhdEo/6xGgUGbAg3y3TtUJrnyJ8w3Ew==",
+ "requires": {
+ "passport-strategy": "^1.0.0"
+ }
+ },
"passport-local": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
@@ -1844,6 +3951,20 @@
"resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
"integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
},
+ "path-array": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz",
+ "integrity": "sha1-fi8PNfB6IBUSK4aLfqwOssT+wnE=",
+ "optional": true,
+ "requires": {
+ "array-index": "^1.0.0"
+ }
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -1869,16 +3990,121 @@
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
"integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
},
+ "pbkdf2-password": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/pbkdf2-password/-/pbkdf2-password-1.2.1.tgz",
+ "integrity": "sha1-n3RROhVf041Na1yEFNOVXdJspu4=",
+ "requires": {
+ "fastfall": "^1.2.3"
+ }
+ },
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "pino": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-2.16.0.tgz",
+ "integrity": "sha1-UauDG5tFkzDn//Xtt1sglzypRwM=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "fast-json-parse": "^1.0.0",
+ "fast-safe-stringify": "^1.1.3",
+ "flatstr": "^1.0.4",
+ "object.assign": "^4.0.4",
+ "once": "^1.3.3",
+ "quick-format-unescaped": "^1.0.0",
+ "split2": "^2.0.1"
+ }
+ },
"plaintextparser": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/plaintextparser/-/plaintextparser-1.0.3.tgz",
"integrity": "sha1-jM2WuanEUWsffd2Tsbi5xdivRjk="
},
+ "prebuild": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/prebuild/-/prebuild-4.5.0.tgz",
+ "integrity": "sha1-KqoN8gY7/4FKgDvU3JT/m2Tl3wA=",
+ "optional": true,
+ "requires": {
+ "async": "^1.4.0",
+ "execspawn": "^1.0.1",
+ "expand-template": "^1.0.0",
+ "ghreleases": "^1.0.2",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.1.2",
+ "mkdirp": "^0.5.1",
+ "node-gyp": "^3.0.3",
+ "node-ninja": "^1.0.1",
+ "noop-logger": "^0.1.0",
+ "npmlog": "^2.0.0",
+ "os-homedir": "^1.0.1",
+ "pump": "^1.0.0",
+ "rc": "^1.0.3",
+ "simple-get": "^1.4.2",
+ "tar-fs": "^1.7.0",
+ "tar-stream": "^1.2.1",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "gauge": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
+ "optional": true,
+ "requires": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "npmlog": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
+ "optional": true,
+ "requires": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ }
+ },
+ "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"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -1906,6 +4132,11 @@
"ipaddr.js": "1.9.1"
}
},
+ "prr": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo="
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -1916,6 +4147,57 @@
"resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
"integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
},
+ "pull-cat": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz",
+ "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs="
+ },
+ "pull-defer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz",
+ "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA=="
+ },
+ "pull-level": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz",
+ "integrity": "sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==",
+ "requires": {
+ "level-post": "^1.0.7",
+ "pull-cat": "^1.1.9",
+ "pull-live": "^1.0.1",
+ "pull-pushable": "^2.0.0",
+ "pull-stream": "^3.4.0",
+ "pull-window": "^2.1.4",
+ "stream-to-pull-stream": "^1.7.1"
+ }
+ },
+ "pull-live": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz",
+ "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=",
+ "requires": {
+ "pull-cat": "^1.1.9",
+ "pull-stream": "^3.4.0"
+ }
+ },
+ "pull-pushable": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz",
+ "integrity": "sha1-Xy867UethpGfAbEqLpnW8b13ZYE="
+ },
+ "pull-stream": {
+ "version": "3.6.14",
+ "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz",
+ "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew=="
+ },
+ "pull-window": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz",
+ "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=",
+ "requires": {
+ "looper": "^2.0.0"
+ }
+ },
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -1925,16 +4207,80 @@
"once": "^1.3.1"
}
},
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
+ "qlobber": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/qlobber/-/qlobber-0.7.0.tgz",
+ "integrity": "sha1-Aim2Nc19IK17Os8pjabSuU8ONM8="
+ },
+ "qlobber-fsq": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/qlobber-fsq/-/qlobber-fsq-3.2.4.tgz",
+ "integrity": "sha1-++CF2o9GJiiOzCDHEHKT4OrPTbI=",
+ "optional": true,
+ "requires": {
+ "async": "~1.5.2",
+ "fs-ext": "~0.5.0",
+ "graceful-fs": "~4.1.3",
+ "qlobber": "~0.7.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "optional": true
+ }
+ }
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
+ "quick-format-unescaped": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-1.1.2.tgz",
+ "integrity": "sha1-DKWB3jF0vs7yWsPC6JVjQjgdtpg=",
+ "requires": {
+ "fast-safe-stringify": "^1.0.8"
+ }
+ },
+ "quote-stream": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz",
+ "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=",
+ "requires": {
+ "buffer-equal": "0.0.1",
+ "minimist": "^1.1.3",
+ "through2": "^2.0.0"
+ }
+ },
"random-bytes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
@@ -1956,6 +4302,18 @@
"unpipe": "1.0.0"
}
},
+ "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"
+ }
+ },
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -1978,6 +4336,50 @@
"esprima": "~4.0.0"
}
},
+ "redis-commands": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz",
+ "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==",
+ "optional": true
+ },
+ "redis-parser": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-1.3.0.tgz",
+ "integrity": "sha1-gG6+e7+3005NfB6e8oLvz60EEmo=",
+ "optional": true
+ },
+ "reduplexer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reduplexer/-/reduplexer-1.1.0.tgz",
+ "integrity": "sha1-ff7RimeedJwdetNt4BrLUV8I4UA=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "~1.0.26-2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
"referrer-policy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz",
@@ -1988,6 +4390,16 @@
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
"integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
},
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc="
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
"request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@@ -2072,6 +4484,17 @@
"lowercase-keys": "^2.0.0"
}
},
+ "retimer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-1.1.0.tgz",
+ "integrity": "sha512-+Tjoa47XqpO+cmNObvmK6UPFmUTzQPtr4MqMS7ZJKPKYAnryCxG2FXT8/SEgPsEghQQgXFPZEdILNxJkvXtjUw=="
+ },
+ "retry": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz",
+ "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg=",
+ "optional": true
+ },
"retry-as-promised": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz",
@@ -2080,6 +4503,20 @@
"any-promise": "^1.3.0"
}
},
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -2249,6 +4686,11 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
+ "shallow-copy": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
+ "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA="
+ },
"shimmer": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
@@ -2264,11 +4706,61 @@
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
},
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "optional": true
+ },
+ "simple-get": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz",
+ "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=",
+ "optional": true,
+ "requires": {
+ "once": "^1.3.1",
+ "unzip-response": "^1.0.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
+ "simple-mime": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/simple-mime/-/simple-mime-0.1.0.tgz",
+ "integrity": "sha1-lfUXxPRm18/1YacfydqyWW6p7y4=",
+ "optional": true
+ },
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
+ "snappy": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/snappy/-/snappy-5.0.5.tgz",
+ "integrity": "sha1-7BiTI0aVRq7d5DWS94CICP0HO0U=",
+ "optional": true,
+ "requires": {
+ "bindings": "1.2.1",
+ "nan": "2.3.5",
+ "node-gyp": "3.4.0"
+ },
+ "dependencies": {
+ "bindings": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
+ "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=",
+ "optional": true
+ }
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -2283,6 +4775,14 @@
"memory-pager": "^1.0.2"
}
},
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "requires": {
+ "through2": "^2.0.2"
+ }
+ },
"sqlstring": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
@@ -2304,11 +4804,122 @@
"tweetnacl": "~0.14.0"
}
},
+ "st": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/st/-/st-1.2.2.tgz",
+ "integrity": "sha512-goKkumvz0BMLs6KjjPf5Fub/3T34tRVQxInUI5lqtbaKD+s4HcRlJYP2GPJ8RgAmrsnYOPGmOFEP6ho0KJ+E8g==",
+ "requires": {
+ "async-cache": "~1.1.0",
+ "bl": "~1.2.1",
+ "fd": "~0.0.2",
+ "graceful-fs": "~4.1.11",
+ "mime": "~1.4.1",
+ "negotiator": "~0.6.1"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "optional": true
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
+ }
+ }
+ },
+ "static-eval": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz",
+ "integrity": "sha512-nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==",
+ "requires": {
+ "escodegen": "^1.11.1"
+ },
+ "dependencies": {
+ "escodegen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
+ "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ }
+ }
+ }
+ },
+ "static-module": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz",
+ "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==",
+ "requires": {
+ "concat-stream": "~1.6.0",
+ "convert-source-map": "^1.5.1",
+ "duplexer2": "~0.1.4",
+ "escodegen": "~1.9.0",
+ "falafel": "^2.1.0",
+ "has": "^1.0.1",
+ "magic-string": "^0.22.4",
+ "merge-source-map": "1.0.4",
+ "object-inspect": "~1.4.0",
+ "quote-stream": "~1.0.2",
+ "readable-stream": "~2.3.3",
+ "shallow-copy": "~0.0.1",
+ "static-eval": "^2.0.0",
+ "through2": "~2.0.3"
+ }
+ },
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
+ "steed": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/steed/-/steed-1.1.3.tgz",
+ "integrity": "sha1-8VJd1a2xLrIb90dJU3Zo1iW5q8U=",
+ "requires": {
+ "fastfall": "^1.5.0",
+ "fastparallel": "^2.2.0",
+ "fastq": "^1.3.0",
+ "fastseries": "^1.7.0",
+ "reusify": "^1.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "stream-to-pull-stream": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz",
+ "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==",
+ "requires": {
+ "looper": "^3.0.0",
+ "pull-stream": "^3.2.3"
+ },
+ "dependencies": {
+ "looper": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz",
+ "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k="
+ }
+ }
+ },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -2342,19 +4953,22 @@
}
}
},
+ "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
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
"swagger-ui-express": {
"version": "2.0.15",
"resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-2.0.15.tgz",
"integrity": "sha1-+6haNXtAwNYp6UJTcZmYe4CFWH0="
},
- "sync": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz",
- "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=",
- "requires": {
- "fibers": ">=0.6"
- }
- },
"sync-request": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/sync-request/-/sync-request-4.1.0.tgz",
@@ -2367,6 +4981,83 @@
"then-request": "^2.2.0"
}
},
+ "tar": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+ "optional": true,
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.12",
+ "inherits": "2"
+ }
+ },
+ "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": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ }
+ }
+ },
"then-request": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/then-request/-/then-request-2.2.0.tgz",
@@ -2387,6 +5078,38 @@
}
}
},
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
"timers-ext": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
@@ -2396,6 +5119,21 @@
"next-tick": "1"
}
},
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "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
+ },
"to-readable-stream": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz",
@@ -2420,6 +5158,12 @@
"punycode": "^2.1.1"
}
},
+ "traverse": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
+ "optional": true
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -2438,6 +5182,14 @@
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
"type-fest": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz",
@@ -2457,6 +5209,24 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
+ "typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=",
+ "requires": {
+ "typewise-core": "^1.2.0"
+ }
+ },
+ "typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU="
+ },
+ "typewiselite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz",
+ "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4="
+ },
"tz-offset": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tz-offset/-/tz-offset-0.0.1.tgz",
@@ -2484,6 +5254,11 @@
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
"integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
},
+ "ultron": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
+ "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
+ },
"umzug": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz",
@@ -2499,6 +5274,26 @@
}
}
},
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "underscore": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
+ "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
+ "optional": true
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -2509,6 +5304,12 @@
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
+ "optional": true
+ },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -2517,16 +5318,33 @@
"punycode": "^2.1.0"
}
},
+ "url-template": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
+ "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=",
+ "optional": true
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
+ "util-extend": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz",
+ "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
+ "optional": true
+ },
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
+ },
"validator": {
"version": "10.11.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz",
@@ -2577,11 +5395,95 @@
"extsprintf": "^1.2.0"
}
},
+ "vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow=="
+ },
+ "websocket-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-3.1.0.tgz",
+ "integrity": "sha1-xtnRMjC3fkdMS2c2wpW7p3zdf4c=",
+ "requires": {
+ "duplexify": "^3.2.0",
+ "inherits": "^2.0.1",
+ "through2": "^2.0.0",
+ "ws": "^1.0.1",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
+ "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
+ "requires": {
+ "options": ">=0.0.5",
+ "ultron": "1.0.x"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+ },
+ "when": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
+ "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
+ "optional": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "optional": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
+ "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"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "optional": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "optional": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
"wkx": {
"version": "0.4.8",
"resolved": "https://registry.npmjs.org/wkx/-/wkx-0.4.8.tgz",
@@ -2590,6 +5492,11 @@
"@types/node": "*"
}
},
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
"wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
@@ -2615,6 +5522,11 @@
"resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz",
"integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg=="
},
+ "xtend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
+ "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo="
+ },
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
@@ -2650,6 +5562,24 @@
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
+ },
+ "zmq": {
+ "version": "2.15.3",
+ "resolved": "https://registry.npmjs.org/zmq/-/zmq-2.15.3.tgz",
+ "integrity": "sha1-Zsbegsw2sJc0uCBwN3ZJCm+75iQ=",
+ "optional": true,
+ "requires": {
+ "bindings": "~1.2.1",
+ "nan": "~2.3.0"
+ },
+ "dependencies": {
+ "bindings": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
+ "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=",
+ "optional": true
+ }
+ }
}
}
}
diff --git a/package.json b/package.json
index 8a3a16b..b26dbba 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,8 @@
"dependencies": {
"body-parser": "^1.19.0",
"connect-ensure-login": "^0.1.1",
+ "cookie-auth": "^2.4.2",
+ "cookie-parser": "^1.4.5",
"cors": "2.8.5",
"deasync": "^0.1.19",
"ejs": "^3.0.2",
@@ -32,19 +34,20 @@
"moment-timezone": "^0.5.13",
"mongoose": "^5.9.7",
"morgan": "^1.10.0",
+ "mosca": "^2.8.3",
"mysql": "^2.18.1",
"mysql2": "^2.1.0",
"node-cron": "^2.0.3",
"node-uuid": "^1.4.8",
"passport": "^0.4.1",
"passport-auth0": "^1.3.2",
+ "passport-cookie": "^1.0.6",
"passport-local": "^1.0.0",
"plaintextparser": "^1.0.3",
"request": "^2.88.2",
"sequelize": "^5.21.6",
"sequelize-cli": "^5.5.1",
"swagger-ui-express": "^2.0.13",
- "sync": "^0.2.5",
"sync-request": "^4.0.2",
"vash": "^0.13.0",
"ws": "^7.2.3"
diff --git a/src/auth.js b/src/auth.js
new file mode 100644
index 0000000..7f8356a
--- /dev/null
+++ b/src/auth.js
@@ -0,0 +1,141 @@
+
+// module.exports = function ensureLoggedIn(req, res, next) {
+// if (req.isAuthenticated()) { return next(null); }
+// res.redirect('/login');
+// };
+const util = require('util');
+var app = require('express')();
+
+var db = require('./db');
+var passport = require('passport');
+var Strategy = require('passport-local').Strategy;
+var CookieStrategy = require('passport-cookie').Strategy;
+
+var session = require('express-session');
+const cookierParser = require('cookie-parser');
+
+var ensureLoggedIn = require("connect-ensure-login").ensureLoggedIn("/n/login");
+
+module.exports = {
+ ensureLoggedIn_Orig: ensureLoggedIn,
+ ensureLoggedIn_P: function (req, res, next){passport.authenticate('local', {
+ successRedirect: '/n/accontrol',
+ failureRedirect: '/n/login' })},
+ passport: passport,
+ ensureLoggedIn_New: function (req, res, next) {
+ if (req.isAuthenticated()) {
+ console.log("auth OK");
+ return next(null);
+ }
+
+ console.log("auth redirect");
+ res.redirect('/login');
+ },
+ ensureLoggedIn: function (options) {
+ if (typeof options == 'string') {
+ options = { redirectTo: options }
+ }
+ options = options || {};
+
+ var url = options.redirectTo || '/login';
+ var setReturnTo = (options.setReturnTo === undefined) ? true : options.setReturnTo;
+ return function(req, res, next) {
+ console.log("auth:" + req.isAuthenticated);
+ if (!req.isAuthenticated || !req.isAuthenticated()) {
+ if (setReturnTo && req.session) {
+ req.session.returnTo = req.originalUrl || req.url;
+ }
+ return res.redirect(url);
+ }
+ next();
+ }
+ },
+
+ init: function () {
+
+ //! Configure the local strategy for use by Passport.
+ //
+ // The local strategy require a `verify` function which receives the credentials
+ // (`username` and `password`) submitted by the user. The function must verify
+ // that the password is correct and then invoke `cb` with a user object, which
+ // will be set at `req.user` in route handlers after authentication.
+ passport.use(new Strategy(
+ function(username, password, cb) {
+ console.log('requesting authentication for user '+ username);
+ db.users.findByUsername(username, function(err, user) {
+ if (err) {console.log('err:'+ util.inspect(err)); return cb(err); }
+ if (!user) { console.log('user is null:'); return cb(null, false); }
+ if (user.password != password) { console.log('wrong pass '); return cb(null, false); }
+ console.log('authenticated!');
+ return cb(null, user);
+ });
+ }));
+
+ // passport.use(new CookieStrategy(
+ // function(token, done) {
+ // User.findByToken({ token: token }, function(err, user) {
+ // if (err) { return done(err); }
+ // if (!user) { return done(null, false); }
+ // return done(null, user);
+ // });
+ // }
+ // ));
+
+ // Configure Passport authenticated session persistence.
+ //
+ // In order to restore authentication state across HTTP requests, Passport needs
+ // to serialize users into and deserialize users out of the session. The
+ // typical implementation of this is as simple as supplying the user ID when
+ // serializing, and querying the user record by ID from the database when
+ // deserializing.
+ passport.serializeUser(function(user, cb) {
+ console.log("serializeUser:"+ util.inspect(user) );
+ cb(null, user.id);
+ });
+
+ passport.deserializeUser(function(id, cb) {
+ console.log("deserializeUser:"+ id );
+ db.users.findById(id, function (err, user) {
+ if (err) { return cb(err); }
+ cb(null, user);
+ });
+ });
+
+
+ app.use(session({
+ key: 'user_sid',
+ secret: 'че_първият_ще генерира-грешка',
+ resave: true,
+ saveUninitialized: false,
+ cookie: {
+ expires: 600000
+ },
+ }));
+ app.use(cookierParser('abcdef-12345'))
+
+ app.use(passport.initialize());
+ app.use(passport.session());
+
+ app.get('/login', function(req, res) {
+ res.render('login', { user: req.user });
+ });
+
+ app.post('/login',
+ passport.authenticate('local', {
+ successRedirect: '/n/accontrol',
+ failureRedirect: '/n/login' }),
+ // authenticated user.
+ function(req, res) {
+ console.log("logged in. session:" + req.session);
+ res.redirect(req.session);
+ }
+ );
+
+ app.get('/logout', function(req, res){
+ req.logout();
+ res.redirect('/n/login');
+ });
+
+ return app;
+ }
+};
\ No newline at end of file
diff --git a/src/db/database.js b/src/db/database.js
new file mode 100644
index 0000000..4830ae8
--- /dev/null
+++ b/src/db/database.js
@@ -0,0 +1,69 @@
+
+const Sequelize = require("sequelize")
+const mongoose = require('mongoose');
+const Schema = mongoose.Schema;
+
+let DeviceMessageSchema = new Schema({
+ _id: {type: Number, required: true},
+ device_id: {type: String, required: true, max: 100}
+});
+
+let DevicesSchema = new Schema({
+ id: {type: Number, required: true},
+ url: {type: String, required: true, max: 100}
+});
+
+
+var sqlz = new Sequelize('iot', 'iot', '!iot_popovi',{dialect: 'mysql'})
+var Device = sqlz.define('device', {
+ id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true },
+ name: Sequelize.STRING,
+ baseurl: Sequelize.TEXT,
+ apikey: Sequelize.TEXT,
+ //config: Sequelize.JSON,
+ lastseen: Sequelize.DATE
+});
+
+var DeviceMessage = sqlz.define('devicemessage', {
+ id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true },
+ device_id: { type: Sequelize.INTEGER, allowNull: false},
+ //id,"device_id","field_name","field_value","timestamp"
+ field_name: { type: Sequelize.STRING(120), allowNull: false},
+ field_value: { type: Sequelize.TEXT, allowNull: false},
+ timestamp: { type: Sequelize.DATE, allowNull: false},
+});
+
+var DeviceCommand = sqlz.define("command", {
+ device: { type: Sequelize.STRING},
+ command: {type: Sequelize.TEXT},
+ info: {type: Sequelize.STRING},
+ ac_power: Sequelize.BOOLEAN,
+ ac_mode: Sequelize.ENUM('Auto', 'Heat', 'Cool', "Fan"),
+ ac_fan: Sequelize.ENUM('Auto', 'Low', 'Med', "Hi"),
+ ac_temp: Sequelize.FLOAT,
+ ac_turbo: Sequelize.BOOLEAN,
+ ac_swing: Sequelize.BOOLEAN,
+ ac_display: Sequelize.BOOLEAN,
+ ac_econo: Sequelize.BOOLEAN,
+ ac_health: Sequelize.BOOLEAN,
+
+});
+
+sqlz.sync(
+ //{ force: true }
+ )
+ .then(() => {
+ console.log(`Database & tables created!`)
+ })
+
+module.exports = {
+ init: function() {
+ //console.log(DeviceCommand.rawAttributes.states.values);
+ sqlz.sync();
+ },
+ sqlz,
+ Device,
+ DeviceCommand,
+ DeviceMessage
+ //etc
+}
\ No newline at end of file
diff --git a/src/db/devicemessages.js b/src/db/devicemessages.js
new file mode 100644
index 0000000..ca6b6c2
--- /dev/null
+++ b/src/db/devicemessages.js
@@ -0,0 +1,56 @@
+//devicemessages
+var mysql = require('mysql');
+var con = mysql.createConnection({
+ host : 'localhost',
+ user : 'iot',
+ password : '!iot_popovi',
+ database : 'iot'
+});
+
+const got = require('got');
+
+exports.findByName = function(fieldName, cb) {
+ process.nextTick(function() {
+ con.query("SELECT * FROM devicemessages WHERE field_name=? OR ? IS NULL",
+ [fieldName, fieldName], (err, data) => {
+ if (!err) {
+ cb(null, data);
+ } else {
+ cb(new Error('SQL Error: ' + err));
+ }
+ });
+ });
+}
+
+exports.insert = function(device_id, field_name, value, cb){
+ var params = [device_id, field_name,value];
+ let sql = `INSERT INTO devicemessages(device_id,field_name,field_value,timestamp)
+ VALUES (?,?,?,NOW());`;
+ con.query(sql,params,(err, r) => {
+ //if(!cb) {return;}
+ if (err) {
+ console.log("error: ", err);
+ cb && cb(new Error('SQL Error: ' + err));
+ }else{
+ console.log("inserted record: ", { id: r.insertId});
+ cb && cb(null, { id: r.insertId, ...params });
+ }
+ });
+}
+exports.getFromDht = function(url, cb)
+{
+ (async () => {
+ try {
+ const dht = await got('http://192.168.1.126/json')
+ var j = JSON.parse(body);
+ if(j.dht && j.dht.hum <= 100 && j.dht.hum >= 0){
+ exports.insert(0, "A23_DHT", dht.body, cb);
+ }else {
+ console.log("Skip! Got invalid data from DHT: " + dht);
+ }
+ } catch (ex) {
+ console.log("DHT exception:" + ex);
+ cb && cb(new Error('SQL Error: ' + ex));
+ }
+ })();
+}
\ No newline at end of file
diff --git a/src/db/index.js b/src/db/index.js
new file mode 100644
index 0000000..e88654c
--- /dev/null
+++ b/src/db/index.js
@@ -0,0 +1,23 @@
+
+
+
+// //!database
+var data = require('./database.js');
+data.init();
+
+// var device = data.Device.build({
+// name: 'A23',
+// url: "http://192.168.1.126/"
+// });
+
+// device.save().then().catch(
+// err => {console.log(err);}
+// )
+//.success(function(savedTask) {
+// console.log('device saved with id' + savedTask.id);
+ // });
+
+
+
+exports.devicemessages = require('./devicemessages');
+exports.users = require('./users');
diff --git a/src/db/users.js b/src/db/users.js
new file mode 100644
index 0000000..1f436db
--- /dev/null
+++ b/src/db/users.js
@@ -0,0 +1,28 @@
+var records = [
+ { id: 1, username: 'me', password: 'A23', displayName: 'admin', emails: [ { value: 'jack@example.com' } ] }
+ , { id: 2, username: 'db', password: 'doby', displayName: 'DB', emails: [ { value: 'jill@example.com' } ] }
+ , { id: 3, username: 'popov', password: 'Zelenakrav@', displayName: 'Doby', emails: [ { value: 'db@example.com' } ] }
+];
+
+exports.findById = function(id, cb) {
+ process.nextTick(function() {
+ var idx = id - 1;
+ if (records[idx]) {
+ cb(null, records[idx]);
+ } else {
+ cb(new Error('User ' + id + ' does not exist'));
+ }
+ });
+}
+
+exports.findByUsername = function(username, cb) {
+ process.nextTick(function() {
+ for (var i = 0, len = records.length; i < len; i++) {
+ var record = records[i];
+ if (record.username === username) {
+ return cb(null, record);
+ }
+ }
+ return cb(null, null);
+ });
+}
diff --git a/src/devices/ir.js b/src/devices/ir.js
new file mode 100644
index 0000000..0fd7932
--- /dev/null
+++ b/src/devices/ir.js
@@ -0,0 +1,139 @@
+
+const util = require('util');
+const { parse } = require('querystring');
+var moment = require('moment');
+const got = require('got');
+const request = require('request');
+
+function GetDht() {
+ var result;
+ (async () => {
+ try {
+ var ret = await got('http://192.168.1.126/cm?cmnd=status%2010');
+ console.log("DHT: "+ util.inspect(ret.body));
+ var j = JSON.parse(ret.body);
+ console.log("JSON> " + util.inspect(j));
+ if(j.StatusSNS && j.StatusSNS.DHT11 && j.StatusSNS.DHT11.Humidity !== null)
+ {
+ result = {
+ dht:{
+ hum: j.StatusSNS.DHT11.Humidity,
+ temp: j.StatusSNS.DHT11.Temperature,
+ dew: j.StatusSNS.DHT11.DewPoint
+ }};
+ }
+ } catch (error) {
+ console.log(error);
+ }
+ })();
+ while(result === undefined) {
+ require('deasync').runLoopOnce();
+ }
+ return result;
+ }
+
+
+ exports.SendCmd = function (url, cmd)
+ {
+ url = url +"/cm?cmnd=irsend%200,"+cmd;
+ console.log("IR_SEND_RAW:" + url);
+ (async () => {
+ try {
+ ret = await got(url);
+ } catch (error) {
+ console.log(error);
+ }
+ })();
+ // request.get(url,
+ // function (error, response, body) {
+ // if (!error && response.statusCode == 200) {
+ // console.log("GOT '" + util.inspect(body) + "'");
+ // return true;
+ // }else{
+ // console.log("ERROR on SendIRCommand:" + util.inspect(error));
+ // return false;
+ // }
+ // }
+ // );
+
+ // request.post(url, { form: { cmd: cmd } },
+ // function (error, response, body) {
+ // if (!error && response.statusCode == 200) {
+ // console.log("GOT '" + util.inspect(body) + "'");
+ // return true;
+ // }else{
+ // console.log("ERROR on SendIRCommand:" + util.inspect(error));
+ // return false;
+ // }
+ // }
+ // );
+ }
+ module.exports.html_handle_dht = function (req, res){
+ try {
+ console.log("body:"+util.inspect(req.body));
+ var cmd = req.param('e');
+ console.log("cmd:" + cmd);
+ //console.log("HEADERS:" + util.inspect(req.headers));
+ switch(cmd)
+ {
+ //if(req.method =="GET")
+ case 'setup':
+ console.log("/setup> Device is online: " + req.headers.mac);
+ break;
+
+ case 'ping':
+ var t = moment.duration(parseInt(req.param('uptime')), 'milliseconds');
+ var _message = req.param('ip') + " uptime " + t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s";
+ // var t = moment.duration(parseInt(req.params.uptime), 'milliseconds');
+ // var _message = req.params.ip + " uptime " + t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s";
+ console.log("ping from " + _message);
+ //rs.send("pong=ok");
+ res.send(t.hours() + "h " + t.minutes() + "m " + t.seconds() +"s");
+ break;
+
+ case "now":
+ console.log("getting current conditions");
+ try {
+ const response = GetDht();
+ console.log(response);
+ res.send(response);
+ } catch (error) {
+ console.log("DHT Error:" + error);
+ }
+ console.log("got current conditions??");
+ break;
+
+ case 'ir':
+ console.log("got IR message!");
+ console.log(req.body);
+ console.log(util.inspect(req.params));
+ try{
+ ob = JSON.parse(body);
+ if(ob.times)
+ {
+ console.log("GOT TIMING INFO:");
+ if(!ob.ir){
+ if(SendIRCommand(ob.times)) { res.sendStatus(200);}
+ else { res.sendStatus(500); }
+ } else {
+ console.log("It is from the IR reader. Ignoring...");
+ }
+ }
+ BroadcastWS(ob.info.replaceAll('\n','
') + "
" + ob.descr.replaceAll(',', '
') );
+ }catch(ex){
+ }
+ if(req.param('info') && req.param('descr') )
+ {
+ console.log("Got Url encoded IR message");
+ BroadcastWS(req.param('info').replaceAll('\n','
') + "
" + req.param('descr').replaceAll(',', '
'));
+ }
+ break;
+ }
+ res.sendStatus(200);
+ } catch (error) {
+ console.log("ESP Error:" + error);
+ //res.end();
+ //res.send(error);
+ }
+
+}
\ No newline at end of file
diff --git a/src/utils.js b/src/utils.js
new file mode 100644
index 0000000..663d9b4
--- /dev/null
+++ b/src/utils.js
@@ -0,0 +1,4 @@
+String.prototype.replaceAll = function(search, replacement) {
+ var target = this;
+ return target.replace(new RegExp(search, 'g'), replacement);
+ };
\ No newline at end of file
diff --git a/views/accontrol.ejs b/views/accontrol.ejs
index dfac0e3..089c273 100644
--- a/views/accontrol.ejs
+++ b/views/accontrol.ejs
@@ -1,4 +1,4 @@
-