From f2dd7f6767a08622cb3c4417288c41021ceb0817 Mon Sep 17 00:00:00 2001 From: lucsoft Date: Sat, 29 Jun 2019 23:15:08 +0200 Subject: [PATCH] Update 0.2.5 Added Wifi Scanning Added Socket Connection Added Autologin Added NOtifybox Added configManager (realtime config) --- Mainframe/lib/config.js | 18 - Mainframe/lib/config.json | 32 ++ Mainframe/lib/configManager.js | 19 + Mainframe/lib/modulemanager.js | 7 +- Mainframe/lib/web/index.html | 118 +++-- Mainframe/lib/web/welcome.html | 56 +++ Mainframe/modules/lucsoft.HAPWrapper.js | 7 +- Mainframe/modules/lucsoft.Mainframe.js | 8 +- Mainframe/modules/lucsoft.commandManager.js | 36 +- Mainframe/modules/lucsoft.deviceManager.js | 5 +- Mainframe/modules/lucsoft.eventManager.js | 16 +- Mainframe/modules/lucsoft.homeSYSWeb.js | 5 +- Mainframe/modules/lucsoft.webServer.js | 78 +++- Mainframe/package-lock.json | 469 +++++++++++++------- Mainframe/package.json | 7 +- 15 files changed, 614 insertions(+), 267 deletions(-) delete mode 100644 Mainframe/lib/config.js create mode 100644 Mainframe/lib/config.json create mode 100644 Mainframe/lib/configManager.js create mode 100644 Mainframe/lib/web/welcome.html diff --git a/Mainframe/lib/config.js b/Mainframe/lib/config.js deleted file mode 100644 index f676156..0000000 --- a/Mainframe/lib/config.js +++ /dev/null @@ -1,18 +0,0 @@ -var config = module.exports = {}; -config.mainframeVersion = "0.2.3"; -config.moduleManagerVersion = "0.2.0"; -config.command = {}; -config.homekit = {}; -config.web = {}; -config.store = {}; -config.store.hostname = "homesys.lucsoft.de"; -config.store.trending = "/v1/store.php?type=trending"; - -config.discordtoken = ""; -config.web.loginPassword = "Mqjz8Zy4LcY348KB"; -config.web.apiKey = ""; - -config.homekit.username = "C1:23:4D:E3:CA:FA"; -config.homekit.pincode = "131-31-313"; -config.command.enableLED = "echo default-on > /sys/class/leds/led1/trigger"; -config.command.disableLED = "echo none > /sys/class/leds/led1/trigger"; \ No newline at end of file diff --git a/Mainframe/lib/config.json b/Mainframe/lib/config.json new file mode 100644 index 0000000..6748b48 --- /dev/null +++ b/Mainframe/lib/config.json @@ -0,0 +1,32 @@ +{ + "infos": { + "mainframe":"0.2.5", + "moduleManager": "0.2" + }, + "modules": { + "lucsoft.homeSYSWeb": { + "token": "" + }, + "lucsoft.eventManager": { + "important": 250, + "high": 1000, + "mid": 2500, + "low": 10000 + }, + "lucsoft.webServer": { + "loginPassword": "Mqjz8Zy4LcY348KB", + "trending": "/v1/store.php?type=trending", + "token": "", + "hostname":"homesys.lucsoft.de", + "theme":"white" + }, + "lucsoft.commandManager": { + "enableLED":"echo default-on > /sys/class/leds/led1/trigger", + "disableLED": "echo none > /sys/class/leds/led1/trigger" + }, + "lucsoft.HAPWrapper": { + "username": "C1:23:4D:E3:CA:FA", + "pincode": "131-31-313" + } + } +} \ No newline at end of file diff --git a/Mainframe/lib/configManager.js b/Mainframe/lib/configManager.js new file mode 100644 index 0000000..daef790 --- /dev/null +++ b/Mainframe/lib/configManager.js @@ -0,0 +1,19 @@ +var fs = require("fs"); +var config = module.exports = {}; +config.config = {}; +config.load = () => { + config.config = require("./config.json"); +}; +config.get = (id) => { + return config.config.modules[id]; +}; +config.infos = () => { + return config.config.infos; +}; +config.set = (id,name) => { + config.config.modules[id][name]; +}; +config.push = (id,name) => { + config.config.modules[id][name]; + fs.writeFileSync(process.cwd() + "/lib/config.json",JSON.stringify(config.config)); +}; diff --git a/Mainframe/lib/modulemanager.js b/Mainframe/lib/modulemanager.js index 74017c1..b114c00 100644 --- a/Mainframe/lib/modulemanager.js +++ b/Mainframe/lib/modulemanager.js @@ -1,6 +1,6 @@ var fs = require('fs'); var tc = require("../lib/tools"); -var config = require("../lib/config"); +var config = require("../lib/configManager"); var mmang = module.exports = {}; mmang.onReady = (e) => {}; @@ -84,7 +84,12 @@ mmang.autoLoad = () => { modulee.log = (msg) => mmang.logConsole(element.slice(0,element.length - 3),msg,0); modulee.error = (msg) => mmang.logConsole(element.slice(0,element.length - 3),msg,1); modulee.getModule = (e) => mmang.getModule(e); + modulee.config = {}; + modulee.config.get = () => config.get(element.slice(0,element.length - 3)); + modulee.config.set = (e) => config.set(element.slice(0,element.length - 3),e); + modulee.config.push = (e) => config.push(element.slice(0,element.length - 3),e); modulee.getModules = () => mmang.getModules(); + if(modulee.preinitModule != undefined) {modulee.preinitModule();} mmang.modules.push({name: element.slice(0,element.length - 3),disabled:false,id: index, data: modulee}); mmang.onModuleInitializing({name: element.slice(0,element.length - 3),id: index,data: modulee}); } catch (errorr) { diff --git a/Mainframe/lib/web/index.html b/Mainframe/lib/web/index.html index c7e43d0..b079e5e 100644 --- a/Mainframe/lib/web/index.html +++ b/Mainframe/lib/web/index.html @@ -6,19 +6,20 @@ HomeSYS + + Reconnected
+ + + + + + + +
+
+ + + \ No newline at end of file diff --git a/Mainframe/modules/lucsoft.HAPWrapper.js b/Mainframe/modules/lucsoft.HAPWrapper.js index 9100954..bb97b8e 100644 --- a/Mainframe/modules/lucsoft.HAPWrapper.js +++ b/Mainframe/modules/lucsoft.HAPWrapper.js @@ -1,11 +1,10 @@ var ed = module.exports = {}; ed.version = "0.1.0"; -ed.name = "HAPWrapper"; +ed.name = "HAP Wrapper"; ed.icon = false; var fs = require('fs'); var path = require('path'); -var config = require("../lib/config"); try { var storage = require('node-persist'); var uuid = require('hap-nodejs').uuid; @@ -367,9 +366,9 @@ ed.loadModule = () => { callback(); }); bridge.publish({ - username: config.homekit.username, + username: ed.config.get().username, port: 51826, - pincode: config.homekit.pincode, + pincode: ed.config.get().pincode, category: Accessory.Categories.BRIDGE }); ed.cnsl.sendMessage("HomeKit Server is running..."); diff --git a/Mainframe/modules/lucsoft.Mainframe.js b/Mainframe/modules/lucsoft.Mainframe.js index 94c98cd..d26fe24 100644 --- a/Mainframe/modules/lucsoft.Mainframe.js +++ b/Mainframe/modules/lucsoft.Mainframe.js @@ -3,8 +3,8 @@ */ var fs = require("fs"); fs.writeFileSync(process.cwd() + "/lib/log.txt", ""); - -var config = require("../lib/config"); +var config = require("../lib/configManager"); +config.load(); var tc = require("../lib/tools"); tc.log(` @@ -17,7 +17,7 @@ tc.log(` ## ## ## ## ## ## ## ██ ██ ██ ██ ██ ## ## ####### ## ## ######## ██████ ██ ██████ - Loading Mainframe ${config.mainframeVersion} + Loading Mainframe ${config.infos().mainframe} Written by lucsoft 2019 `); try { @@ -42,7 +42,7 @@ try { if(e.name == "lucsoft.webServer") { e.data.loadDefaultPages(); function requireAuth(req, res,callback) { - if(req.headers['token'] == tc.SHA256(config.web.loginPassword)) { + if(req.headers['token'] == tc.SHA256(config.get("lucsoft.webServer").loginPassword)) { callback(); } else { res.status(403); diff --git a/Mainframe/modules/lucsoft.commandManager.js b/Mainframe/modules/lucsoft.commandManager.js index b384000..229cede 100644 --- a/Mainframe/modules/lucsoft.commandManager.js +++ b/Mainframe/modules/lucsoft.commandManager.js @@ -1,16 +1,15 @@ var ed = module.exports = {}; -ed.version = "0.1.0"; +ed.version = "0.2.0"; ed.name = "commandManager"; ed.icon = false; const { exec,spawn } = require('child_process'); -var config = require("../lib/config"); var tc = require("../lib/tools"); ed.control = {}; ed.control.enableLED = () => { ed.control.active = true; - exec(config.command.enableLED); + exec(ed.config.get().enableLED); return ed.control.active; }; ed.control.active = true; @@ -60,11 +59,13 @@ ed.control.scanWifi = () => { ed.error("Failed to Scan wifi: " + stderr); } else { parseOutput(stdout, (error,wifis) => { - ed.control.wifiList = wifis; - ed.control.wifiList.forEach(element => { - ed.control.onWifi(element); - }); - ed.control.onWifiScanned(wifis); + if(ed.control.wifiList != wifis) { + ed.control.wifiList = wifis; + ed.control.wifiList.forEach(element => { + ed.control.onWifi(element); + }); + ed.control.onWifiScanned(wifis); + } }); } }); @@ -80,21 +81,30 @@ ed.control.toggleLED = () => { }; ed.control.disableLED = () => { ed.control.active = false; - exec(config.command.disableLED); + exec(ed.config.get().disableLED); return ed.control.active; }; -ed.control.eval = (command,args,stdout,stderr,exit) => { + +function evalH(command,args,stdout,stderr,exit) { var ls = spawn(command,args); ls.stdout.on('data', (e) => {stdout(e)}); ls.stderr.on('data', (e) => {stderr(e)}); ls.on('exit', (e) => {exit(e)}); }; -ed.control.evalO = (msg) => { - exec(msg); +ed.system = {}; +ed.system.restart = () => { + exec("systemctl restart homesys.service"); +} +ed.npm = {}; +ed.npm.installAuto = (package) => { + ed.npm.install(package, ed.log, ed.error,() => {}); +}; +ed.npm.install = (package,out,error,exit) => { + evalH("npm", ["install", package],out,error,exit) }; ed.loadModule = () => { ed.control.enableLED(); ed.events = ed.getModule("lucsoft.eventManager").data; - ed.events.registerEvent("UpdateWifi", ed.control.scanWifi(), ed.events.level.low); + ed.events.registerEvent("UpdateWifi", ed.control.scanWifi, ed.events.level.low); }; \ No newline at end of file diff --git a/Mainframe/modules/lucsoft.deviceManager.js b/Mainframe/modules/lucsoft.deviceManager.js index 6a757cb..bf097f1 100644 --- a/Mainframe/modules/lucsoft.deviceManager.js +++ b/Mainframe/modules/lucsoft.deviceManager.js @@ -1,10 +1,7 @@ var ed = module.exports = {}; ed.version = "0.1.0"; -ed.name = "DeviceManager"; +ed.name = "Device Manager"; ed.icon = false; - -var req = require('request'); -var config = require("../lib/config"); var tc = require("../lib/tools"); ed.loadModule = () => { ed.loadedConfig = require('../configs/lucsoft.deviceManager/config.json'); diff --git a/Mainframe/modules/lucsoft.eventManager.js b/Mainframe/modules/lucsoft.eventManager.js index c649fa2..4986364 100644 --- a/Mainframe/modules/lucsoft.eventManager.js +++ b/Mainframe/modules/lucsoft.eventManager.js @@ -4,13 +4,13 @@ var ed = module.exports = {}; ed.version = "0.1.0"; ed.name = "Event Manager"; ed.icon = false; -ed.level = {important: 250, high: 1000, mid: 3000, low: 8000} ed.events = {}; ed.events.low = []; ed.events.mid = []; ed.events.high = []; ed.events.important = []; ed.events.list = []; + ed.registerEvent = (name,command,level) => { switch (level) { case ed.level.important: @@ -37,7 +37,14 @@ ed.registerEvent = (name,command,level) => { return false; } }; - +ed.unRegisterEvent = (name) => { + ed.events.low = ed.events.low.filter(x => x.name != name) + ed.events.mid = ed.events.mid.filter(x => x.name != name) + ed.events.high = ed.events.high.filter(x => x.name != name) + ed.events.important = ed.events.important.filter(x => x.name != name) + ed.events.list = ed.events.list.filter(x => x.name != name) + return false; +}; ed.startEvents = () => { ed.log("Starting Events..."); @@ -84,9 +91,12 @@ ed.startEvents = () => { ed.getEvents = () => { return ed.events.list; }; - +ed.preinitModule = () => { + ed.level = ed.config.get(); +}; ed.loadModule = () => { ed.cmdm = ed.getModule("lucsoft.commandManager").data; + }; } catch (error) { diff --git a/Mainframe/modules/lucsoft.homeSYSWeb.js b/Mainframe/modules/lucsoft.homeSYSWeb.js index 472b19a..d839eeb 100644 --- a/Mainframe/modules/lucsoft.homeSYSWeb.js +++ b/Mainframe/modules/lucsoft.homeSYSWeb.js @@ -4,7 +4,6 @@ ed.name = "HomeSYSWeb"; ed.icon = false; var req = require('request'); -var config = require("../lib/config"); ed.loadModule = () => { }; @@ -15,7 +14,7 @@ ed.checkIfServiceIsAvailable = () => { var options = { url: 'https://homesys.lucsoft.de/v1', headers: { - 'token': config.web.apiKey + 'token': ed.config.get().token } }; @@ -29,7 +28,7 @@ ed.service.getModule = (name,cb) => { var options = { url: 'https://homesys.lucsoft.de/v1/store.php?name=' + name, headers: { - 'token': config.web.apiKey + 'token': ed.config.get().token } }; diff --git a/Mainframe/modules/lucsoft.webServer.js b/Mainframe/modules/lucsoft.webServer.js index 1db8e4e..64bdf6d 100644 --- a/Mainframe/modules/lucsoft.webServer.js +++ b/Mainframe/modules/lucsoft.webServer.js @@ -2,16 +2,15 @@ var ed = module.exports = {}; ed.version = "0.1.0"; ed.name = "webServer"; ed.icon = false; - - var msg; var express = require('express'); var app = express(); var https = require('https'); +var http = require('http').createServer(app); var tc = require("../lib/tools"); -var config = require("../lib/config"); var path = require("path"); var fs = require('fs'); +var io = require('socket.io')(http); const request = require('request'); const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); @@ -53,7 +52,7 @@ ed.downloadFile = function(url, path,cb) { req.on('end', cb); } function requireAuth(req, res,callback) { - if(req.headers['token'] == tc.SHA256(config.web.loginPassword)) { + if(req.headers['token'] == tc.SHA256(ed.config.web.loginPassword)) { callback(); } else { res.status(403).send(''); @@ -63,9 +62,16 @@ ed.loadDefaultPages = function () { app.get('/', function (req, res) { res.status(200).sendFile(process.cwd() + '/lib/web/index.html'); }); + app.get('/setup', function (req, res) { + res.status(200).sendFile(process.cwd() + '/lib/web/welcome.html'); + }); + app.get('/imgs/homesys.png', function (req, res) { res.status(200).sendFile(process.cwd() + '/lib/web/imgs/HomeSYS2_csh_compressed.png'); }); + app.get('/lib/socket.io.js', function (req, res) { + res.status(200).sendFile(process.cwd() + '/node_modules/socket.io-client/dist/socket.io.js'); + }); app.get('/imgs/noicon.png', function (req, res) { res.status(200).sendFile(process.cwd() + '/lib/web/imgs/noicon.png'); }); @@ -73,18 +79,16 @@ ed.loadDefaultPages = function () { app.get('/Mainframe/restart', function (req, res) { requireAuth(req,res,() => { res.status(200).send("Restarting HomeSYS now..."); - ed.cmdmanager.control.evalO("systemctl restart homesys.service", (x,y,z) => { - - }); + ed.cmdmanager.system.restart(); }); }); app.get('/Mainframe/store/trending', function (req, res) { requireAuth(req,res,() => { https.get({ - hostname: config.store.hostname, - path: config.store.trending, + hostname: ed.config.get().hostname, + path: ed.config.get().trending, headers: { - token: config.web.apiKey + token: ed.config.get().token } }, function (res2) { var body = ""; @@ -111,7 +115,7 @@ ed.loadDefaultPages = function () { }); app.post('/database.php',function (req, res) { - if(req.body.password == tc.SHA256(config.web.loginPassword)) { + if(req.body.password == tc.SHA256(ed.config.get().loginPassword)) { res.send(JSON.stringify({login:true, user: {theme: "white"}})); }else if(req.query.type != null ) { res.send(JSON.stringify(req.body)); @@ -156,10 +160,60 @@ ed.deleteFiles = function(files, callback){ ed.loadModule = () => { ed.cmdmanager = ed.getModule("lucsoft.commandManager").data; + ed.events = ed.getModule("lucsoft.eventManager").data; + }; ed.port = 80; +ed.socket = {}; +ed.socket.users = []; +ed.socket.actions = [{ + id: "debug", + command: (e,socket) => { + ed.cmdmanager.control.toggleLED(); + socket.emit("system", "trigger debug"); + + } +},{ + id: "event", + command: (e,socket) => { + if(e.startsWith("event list")){ + socket.emit("system",tc.getJson(ed.events.events.list)); + } + } +}, { + id: "time", + command: (e,socket) => { + socket.emit("system",tc.getTimestamp(new Date())); + } +}]; + +ed.socket.addCommands = (name,command) => { + +}; ed.startWebserver = () => { - app.listen(80, function () { + io.on('connection', function(socket){ + ed.socket.users.push({id: socket.id,loggedin: false}); + socket.on('system', function(msg){ + if(msg == undefined) return; + if(msg.startsWith("login")) { + if(tc.SHA256(ed.config.get().loginPassword) == msg.slice("login ".length)) { + ed.socket.users.filter(x => x.id == socket.id)[0].loggedin = true; + socket.emit("system","logged in"); + return; + } + } + if(ed.socket.users.filter(x => x.id == socket.id)[0].loggedin == false) { + socket.emit("system", "loginRequired"); + } else { + try { + ed.socket.actions.filter(x => msg.startsWith(x.id))[0].command(msg,socket); + } catch (error) { + socket.emit("system", "Unknow Command"); + } + } + }); + }); + http.listen(80, function () { }) }; \ No newline at end of file diff --git a/Mainframe/package-lock.json b/Mainframe/package-lock.json index ce16777..b372a18 100644 --- a/Mainframe/package-lock.json +++ b/Mainframe/package-lock.json @@ -28,10 +28,15 @@ } } }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -39,16 +44,16 @@ "uri-js": "^4.2.2" } }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -62,6 +67,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -77,6 +87,21 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -85,6 +110,19 @@ "tweetnacl": "^0.14.3" } }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -151,11 +189,6 @@ } } }, - "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-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", @@ -166,72 +199,43 @@ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, "content-disposition": { "version": "0.5.3", @@ -302,15 +306,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -352,6 +347,74 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "engine.io": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", + "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~6.1.0" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz", + "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -501,9 +564,9 @@ } }, "hap-nodejs": { - "version": "0.4.51", - "resolved": "https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.4.51.tgz", - "integrity": "sha512-d+b0KsakGRC5IgYBBCuqkAFzj8iKAHVw0bKreT8vmhK4b43FTVWiSwi5MWXApoYQUkbPux+xnVYqwMo+Zviieg==", + "version": "0.4.52", + "resolved": "https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.4.52.tgz", + "integrity": "sha512-KUw8JmO8wkVrF1Y56Vj/ttohdhpCKk9C784X5HwhJ1ffDcBYdfzBYUBnEADMYQjwaqGhlxYBz3poLpPPI5EYfw==", "requires": { "bonjour-hap": "^3.5.1", "buffer-shims": "^1.0.0", @@ -536,6 +599,26 @@ "har-schema": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -571,6 +654,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -591,11 +679,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -653,16 +736,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "~1.38.0" + "mime-db": "1.40.0" } }, "minimist": { @@ -683,21 +766,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "multer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.1.tgz", - "integrity": "sha512-zzOLNRxzszwd+61JFuAo0fxdQfvku12aNJgnla0AQ+hHxFmfc/B7jBVuPr5Rmvu46Jze/iJrFpSOsD7afO8SDw==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, "multicast-dns": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.0.tgz", @@ -731,10 +799,10 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, "on-finished": { "version": "2.3.0", @@ -744,6 +812,22 @@ "ee-first": "1.1.1" } }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -759,11 +843,6 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -774,9 +853,9 @@ } }, "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", + "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==" }, "punycode": { "version": "2.1.1", @@ -788,11 +867,6 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", "integrity": "sha1-Y1fikSBnAdmfGXq4TlforRlvKok=" }, - "qrcode-terminal": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -814,17 +888,6 @@ "unpipe": "1.0.0" } }, - "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" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -905,6 +968,95 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "socket.io": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", + "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.3.1", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.2.0", + "socket.io-parser": "~3.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" + }, + "socket.io-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", + "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.3.1", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -926,21 +1078,16 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "thunky": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==" }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -975,20 +1122,6 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -1002,11 +1135,6 @@ "punycode": "^2.1.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -1032,10 +1160,23 @@ "extsprintf": "^1.2.0" } }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/Mainframe/package.json b/Mainframe/package.json index 567c33c..3268801 100644 --- a/Mainframe/package.json +++ b/Mainframe/package.json @@ -9,11 +9,10 @@ "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", - "hap-nodejs": "^0.4.51", + "hap-nodejs": "^0.4.52", "https": "^1.0.0", - "multer": "^1.4.1", - "qrcode-terminal": "^0.12.0", - "request": "^2.88.0" + "request": "^2.88.0", + "socket.io": "^2.2.0" }, "devDependencies": {}, "scripts": {