Updated packages, new agent rights enforcement

Ylian Saint-Hilaire committed Nov 27, 2018 at 17:13 UTC d968fd8f0f2518b00b2dac2bf75d4817003bae33
4 files changed +1549 -15
agents/meshcore.js
+52 -7
@@ -21,6 +21,17 @@ process.on('uncaughtException', function (ex) {
21
22 //attachDebugger({ webport: 9999, wait: 1 }).then(function (prt) { console.log('Point Browser for Debug to port: ' + prt); });
23
24 +// Mesh Rights
25 +const MESHRIGHT_EDITMESH = 1;
26 +const MESHRIGHT_MANAGEUSERS = 2;
27 +const MESHRIGHT_MANAGECOMPUTERS = 4;
28 +const MESHRIGHT_REMOTECONTROL = 8;
29 +const MESHRIGHT_AGENTCONSOLE = 16;
30 +const MESHRIGHT_SERVERFILES = 32;
31 +const MESHRIGHT_WAKEDEVICE = 64;
32 +const MESHRIGHT_SETNOTES = 128;
33 +const MESHRIGHT_REMOTEVIEW = 256;
34 +
35 function createMeshCore(agent) {
36 var obj = {};
37
@@ -414,11 +425,11 @@ function createMeshCore(agent) {
425 tunnel.tcpport = data.tcpport;
426 tunnel.end();
427 // Put the tunnel in the tunnels list
417 - var index = nextTunnelIndex++;;
428 + var index = nextTunnelIndex++;
429 tunnel.index = index;
430 tunnels[index] = tunnel;
431
421 - sendConsoleText('New tunnel connection #' + index + ': ' + tunnel.url + ', rights: ' + tunnel.rights, data.sessionid);
432 + //sendConsoleText('New tunnel connection #' + index + ': ' + tunnel.url + ', rights: ' + tunnel.rights, data.sessionid);
433 }
434 }
435 break;
@@ -554,7 +565,7 @@ function createMeshCore(agent) {
565
566 function onTunnelClosed() {
567 if (tunnels[this.httprequest.index] == null) return; // Stop duplicate calls.
557 - sendConsoleText("Tunnel #" + this.httprequest.index + " closed.", this.httprequest.sessionid);
568 + //sendConsoleText("Tunnel #" + this.httprequest.index + " closed.", this.httprequest.sessionid);
569 delete tunnels[this.httprequest.index];
570
571 /*
@@ -584,7 +595,7 @@ function createMeshCore(agent) {
595 // Clean up WebSocket
596 this.removeAllListeners('data');
597 }
587 - function onTunnelSendOk() { sendConsoleText("Tunnel #" + this.index + " SendOK.", this.sessionid); }
598 + function onTunnelSendOk() { /*sendConsoleText("Tunnel #" + this.index + " SendOK.", this.sessionid);*/ }
599 function onTunnelData(data) {
600 //console.log("OnTunnelData");
601 //sendConsoleText('OnTunnelData, ' + data.length + ', ' + typeof data + ', ' + data);
@@ -608,7 +619,7 @@ function createMeshCore(agent) {
619
620 if (this.httprequest.state == 0) {
621 // Check if this is a relay connection
611 - if (data == 'c') { this.httprequest.state = 1; sendConsoleText("Tunnel #" + this.httprequest.index + " now active", this.httprequest.sessionid); }
622 + if (data == 'c') { this.httprequest.state = 1; /*sendConsoleText("Tunnel #" + this.httprequest.index + " now active", this.httprequest.sessionid);*/ }
623 } else {
624 // Handle tunnel data
625 if (this.httprequest.protocol == 0) { // 1 = SOL, 2 = KVM, 3 = IDER, 4 = Files, 5 = FileTransfer
@@ -616,12 +627,21 @@ function createMeshCore(agent) {
627 this.httprequest.protocol = parseInt(data);
628 if (typeof this.httprequest.protocol != 'number') { this.httprequest.protocol = 0; }
629 if (this.httprequest.protocol == 1) {
630 + // Check user access rights
631 + if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) {
632 + // Disengage this tunnel, user does not have the rights to do this!!
633 + this.httprequest.protocol = 999999;
634 + sendConsoleText('Error: No Remote Control Rights.');
635 + return;
636 + }
637 +
638 // Remote terminal using native pipes
639 if (process.platform == "win32") {
640 this.httprequest.process = childProcess.execFile("%windir%\\system32\\cmd.exe");
641 } else {
642 this.httprequest.process = childProcess.execFile("/bin/sh", ["sh"], { type: childProcess.SpawnTypes.TERM });
643 }
644 +
645 this.httprequest.process.tunnel = this;
646 this.httprequest.process.on('exit', function (ecode, sig) { this.tunnel.end(); });
647 this.httprequest.process.stderr.on('data', function (chunk) { this.parent.tunnel.write(chunk); });
@@ -634,6 +654,14 @@ function createMeshCore(agent) {
654 if (process.platform == 'linux') { this.httprequest.process.stdin.write("stty erase ^H\nalias ls='ls --color=auto'\nclear\n"); }
655 } else if (this.httprequest.protocol == 2)
656 {
657 + // Check user access rights
658 + if (((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) && ((this.httprequest.rights & MESHRIGHT_REMOTEVIEW) == 0)) {
659 + // Disengage this tunnel, user does not have the rights to do this!!
660 + this.httprequest.protocol = 999999;
661 + sendConsoleText('Error: No Remote Control Rights.');
662 + return;
663 + }
664 +
665 // Remote desktop using native pipes
666 this.httprequest.desktop = { state: 0, kvm: mesh.getRemoteDesktopStream(), tunnel: this };
667 this.httprequest.desktop.kvm.parent = this.httprequest.desktop;
@@ -653,12 +681,29 @@ function createMeshCore(agent) {
681 }
682 };
683 if (this.httprequest.desktop.kvm.hasOwnProperty("connectionCount")) { this.httprequest.desktop.kvm.connectionCount++; } else { this.httprequest.desktop.kvm.connectionCount = 1; }
656 - this.pipe(this.httprequest.desktop.kvm, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text.
657 - this.httprequest.desktop.kvm.pipe(this, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text.
684 +
685 + //sendConsoleText('KVM Rights: ' + this.httprequest.rights);
686 + if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) != 0) {
687 + // If we have remote control rights, pipe the KVM input
688 + this.pipe(this.httprequest.desktop.kvm, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text. Pipe the Browser --> KVM input.
689 + } else {
690 + // We need to only pipe non-mouse & non-keyboard inputs.
691 + // TODO!!!
692 + }
693 +
694 + this.httprequest.desktop.kvm.pipe(this, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text. Pipe the KVM --> Browser images.
695 this.removeAllListeners('data');
696 this.on('data', onTunnelControlData);
697 //this.write('MeshCore KVM Hello!1');
698 } else if (this.httprequest.protocol == 5) {
699 + // Check user access rights
700 + if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) {
701 + // Disengage this tunnel, user does not have the rights to do this!!
702 + this.httprequest.protocol = 999999;
703 + sendConsoleText('Error: No Remote Control Rights.');
704 + return;
705 + }
706 +
707 // Setup files
708 // NOP
709 }
meshrelay.js
+1
@@ -35,6 +35,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
35 const MESHRIGHT_SERVERFILES = 32;
36 const MESHRIGHT_WAKEDEVICE = 64;
37 const MESHRIGHT_SETNOTES = 128;
38 + const MESHRIGHT_REMOTEVIEW = 256;
39
40 // Site rights
41 const SITERIGHT_SERVERBACKUP = 1;
package-lock.json new
+1487
@@ -0,0 +1,1487 @@
1 +{
2 + "name": "meshcentral",
3 + "version": "0.2.3-g",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "accepts": {
8 + "version": "1.3.4",
9 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
10 + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
11 + "requires": {
12 + "mime-types": "2.1.17",
13 + "negotiator": "0.6.1"
14 + }
15 + },
16 + "align-text": {
17 + "version": "0.1.4",
18 + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
19 + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
20 + "requires": {
21 + "kind-of": "3.2.2",
22 + "longest": "1.0.1",
23 + "repeat-string": "1.6.1"
24 + }
25 + },
26 + "amdefine": {
27 + "version": "1.0.1",
28 + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
29 + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
30 + },
31 + "archiver": {
32 + "version": "1.3.0",
33 + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
34 + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
35 + "requires": {
36 + "archiver-utils": "1.3.0",
37 + "async": "2.6.0",
38 + "buffer-crc32": "0.2.13",
39 + "glob": "7.1.2",
40 + "lodash": "4.17.4",
41 + "readable-stream": "2.3.3",
42 + "tar-stream": "1.5.5",
43 + "walkdir": "0.0.11",
44 + "zip-stream": "1.2.0"
45 + },
46 + "dependencies": {
47 + "async": {
48 + "version": "2.6.0",
49 + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
50 + "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=",
51 + "requires": {
52 + "lodash": "4.17.4"
53 + }
54 + },
55 + "isarray": {
56 + "version": "1.0.0",
57 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
58 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
59 + },
60 + "readable-stream": {
61 + "version": "2.3.3",
62 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
63 + "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
64 + "requires": {
65 + "core-util-is": "1.0.2",
66 + "inherits": "2.0.3",
67 + "isarray": "1.0.0",
68 + "process-nextick-args": "1.0.7",
69 + "safe-buffer": "5.1.1",
70 + "string_decoder": "1.0.3",
71 + "util-deprecate": "1.0.2"
72 + }
73 + },
74 + "string_decoder": {
75 + "version": "1.0.3",
76 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
77 + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
78 + "requires": {
79 + "safe-buffer": "5.1.1"
80 + }
81 + }
82 + }
83 + },
84 + "archiver-utils": {
85 + "version": "1.3.0",
86 + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
87 + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
88 + "requires": {
89 + "glob": "7.1.2",
90 + "graceful-fs": "4.1.11",
91 + "lazystream": "1.0.0",
92 + "lodash": "4.17.4",
93 + "normalize-path": "2.1.1",
94 + "readable-stream": "2.3.6"
95 + },
96 + "dependencies": {
97 + "graceful-fs": {
98 + "version": "4.1.11",
99 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
100 + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
101 + },
102 + "isarray": {
103 + "version": "1.0.0",
104 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
105 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
106 + },
107 + "readable-stream": {
108 + "version": "2.3.6",
109 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
110 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
111 + "requires": {
112 + "core-util-is": "1.0.2",
113 + "inherits": "2.0.3",
114 + "isarray": "1.0.0",
115 + "process-nextick-args": "2.0.0",
116 + "safe-buffer": "5.1.1",
117 + "string_decoder": "1.1.1",
118 + "util-deprecate": "1.0.2"
119 + },
120 + "dependencies": {
121 + "process-nextick-args": {
122 + "version": "2.0.0",
123 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
124 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
125 + }
126 + }
127 + },
128 + "string_decoder": {
129 + "version": "1.1.1",
130 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
131 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
132 + "requires": {
133 + "safe-buffer": "5.1.1"
134 + }
135 + }
136 + }
137 + },
138 + "array-flatten": {
139 + "version": "1.1.1",
140 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
141 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
142 + },
143 + "asap": {
144 + "version": "2.0.6",
145 + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
146 + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
147 + },
148 + "async": {
149 + "version": "0.2.10",
150 + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
151 + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
152 + },
153 + "async-limiter": {
154 + "version": "1.0.0",
155 + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
156 + "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg="
157 + },
158 + "balanced-match": {
159 + "version": "1.0.0",
160 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
161 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
162 + },
163 + "binary-search-tree": {
164 + "version": "0.2.5",
165 + "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
166 + "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=",
167 + "requires": {
168 + "underscore": "1.4.4"
169 + }
170 + },
171 + "bl": {
172 + "version": "1.2.1",
173 + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
174 + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
175 + "requires": {
176 + "readable-stream": "2.3.6"
177 + },
178 + "dependencies": {
179 + "isarray": {
180 + "version": "1.0.0",
181 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
182 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
183 + },
184 + "readable-stream": {
185 + "version": "2.3.6",
186 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
187 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
188 + "requires": {
189 + "core-util-is": "1.0.2",
190 + "inherits": "2.0.3",
191 + "isarray": "1.0.0",
192 + "process-nextick-args": "2.0.0",
193 + "safe-buffer": "5.1.1",
194 + "string_decoder": "1.1.1",
195 + "util-deprecate": "1.0.2"
196 + },
197 + "dependencies": {
198 + "process-nextick-args": {
199 + "version": "2.0.0",
200 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
201 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
202 + }
203 + }
204 + },
205 + "string_decoder": {
206 + "version": "1.1.1",
207 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
208 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
209 + "requires": {
210 + "safe-buffer": "5.1.1"
211 + }
212 + }
213 + }
214 + },
215 + "body-parser": {
216 + "version": "1.18.2",
217 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
218 + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
219 + "requires": {
220 + "bytes": "3.0.0",
221 + "content-type": "1.0.4",
222 + "debug": "2.6.9",
223 + "depd": "1.1.2",
224 + "http-errors": "1.6.2",
225 + "iconv-lite": "0.4.19",
226 + "on-finished": "2.3.0",
227 + "qs": "6.5.1",
228 + "raw-body": "2.3.2",
229 + "type-is": "1.6.15"
230 + }
231 + },
232 + "brace-expansion": {
233 + "version": "1.1.8",
234 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
235 + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
236 + "requires": {
237 + "balanced-match": "1.0.0",
238 + "concat-map": "0.0.1"
239 + }
240 + },
241 + "buffer-crc32": {
242 + "version": "0.2.13",
243 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
244 + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
245 + },
246 + "bytes": {
247 + "version": "3.0.0",
248 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
249 + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
250 + },
251 + "camelcase": {
252 + "version": "1.2.1",
253 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
254 + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
255 + "optional": true
256 + },
257 + "center-align": {
258 + "version": "0.1.3",
259 + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
260 + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
261 + "optional": true,
262 + "requires": {
263 + "align-text": "0.1.4",
264 + "lazy-cache": "1.0.4"
265 + }
266 + },
267 + "cliui": {
268 + "version": "2.1.0",
269 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
270 + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
271 + "optional": true,
272 + "requires": {
273 + "center-align": "0.1.3",
274 + "right-align": "0.1.3",
275 + "wordwrap": "0.0.2"
276 + },
277 + "dependencies": {
278 + "wordwrap": {
279 + "version": "0.0.2",
280 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
281 + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
282 + "optional": true
283 + }
284 + }
285 + },
286 + "compress-commons": {
287 + "version": "1.2.2",
288 + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
289 + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
290 + "requires": {
291 + "buffer-crc32": "0.2.13",
292 + "crc32-stream": "2.0.0",
293 + "normalize-path": "2.1.1",
294 + "readable-stream": "2.3.6"
295 + },
296 + "dependencies": {
297 + "isarray": {
298 + "version": "1.0.0",
299 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
300 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
301 + },
302 + "readable-stream": {
303 + "version": "2.3.6",
304 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
305 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
306 + "requires": {
307 + "core-util-is": "1.0.2",
308 + "inherits": "2.0.3",
309 + "isarray": "1.0.0",
310 + "process-nextick-args": "2.0.0",
311 + "safe-buffer": "5.1.1",
312 + "string_decoder": "1.1.1",
313 + "util-deprecate": "1.0.2"
314 + },
315 + "dependencies": {
316 + "process-nextick-args": {
317 + "version": "2.0.0",
318 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
319 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
320 + }
321 + }
322 + },
323 + "string_decoder": {
324 + "version": "1.1.1",
325 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
326 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
327 + "requires": {
328 + "safe-buffer": "5.1.1"
329 + }
330 + }
331 + }
332 + },
333 + "compressible": {
334 + "version": "2.0.12",
335 + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
336 + "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
337 + "requires": {
338 + "mime-db": "1.30.0"
339 + }
340 + },
341 + "compression": {
342 + "version": "1.7.1",
343 + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz",
344 + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
345 + "requires": {
346 + "accepts": "1.3.4",
347 + "bytes": "3.0.0",
348 + "compressible": "2.0.12",
349 + "debug": "2.6.9",
350 + "on-headers": "1.0.1",
351 + "safe-buffer": "5.1.1",
352 + "vary": "1.1.2"
353 + }
354 + },
355 + "concat-map": {
356 + "version": "0.0.1",
357 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
358 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
359 + },
360 + "connect-redis": {
361 + "version": "3.3.3",
362 + "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-3.3.3.tgz",
363 + "integrity": "sha1-D7jzcBkvYtp17HqVB4B1mfvhWzc=",
364 + "requires": {
365 + "debug": "3.1.0",
366 + "redis": "2.8.0"
367 + },
368 + "dependencies": {
369 + "debug": {
370 + "version": "3.1.0",
371 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
372 + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
373 + "requires": {
374 + "ms": "2.0.0"
375 + }
376 + }
377 + }
378 + },
379 + "content-disposition": {
380 + "version": "0.5.2",
381 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
382 + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
383 + },
384 + "content-type": {
385 + "version": "1.0.4",
386 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
387 + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
388 + },
389 + "cookie": {
390 + "version": "0.3.1",
391 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
392 + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
393 + },
394 + "cookie-session": {
395 + "version": "2.0.0-beta.3",
396 + "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-beta.3.tgz",
397 + "integrity": "sha1-TkRr2fhb1+J9PiJvTpmvEgEaQ4Y=",
398 + "requires": {
399 + "cookies": "0.7.1",
400 + "debug": "3.1.0",
401 + "on-headers": "1.0.1",
402 + "safe-buffer": "5.1.1"
403 + },
404 + "dependencies": {
405 + "debug": {
406 + "version": "3.1.0",
407 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
408 + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
409 + "requires": {
410 + "ms": "2.0.0"
411 + }
412 + }
413 + }
414 + },
415 + "cookie-signature": {
416 + "version": "1.0.6",
417 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
418 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
419 + },
420 + "cookies": {
421 + "version": "0.7.1",
422 + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz",
423 + "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=",
424 + "requires": {
425 + "depd": "1.1.2",
426 + "keygrip": "1.0.2"
427 + }
428 + },
429 + "core-util-is": {
430 + "version": "1.0.2",
431 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
432 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
433 + },
434 + "crc": {
435 + "version": "3.5.0",
436 + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz",
437 + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ="
438 + },
439 + "crc32-stream": {
440 + "version": "2.0.0",
441 + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
442 + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
443 + "requires": {
444 + "crc": "3.5.0",
445 + "readable-stream": "2.3.6"
446 + },
447 + "dependencies": {
448 + "isarray": {
449 + "version": "1.0.0",
450 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
451 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
452 + },
453 + "readable-stream": {
454 + "version": "2.3.6",
455 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
456 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
457 + "requires": {
458 + "core-util-is": "1.0.2",
459 + "inherits": "2.0.3",
460 + "isarray": "1.0.0",
461 + "process-nextick-args": "2.0.0",
462 + "safe-buffer": "5.1.1",
463 + "string_decoder": "1.1.1",
464 + "util-deprecate": "1.0.2"
465 + },
466 + "dependencies": {
467 + "process-nextick-args": {
468 + "version": "2.0.0",
469 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
470 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
471 + }
472 + }
473 + },
474 + "string_decoder": {
475 + "version": "1.1.1",
476 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
477 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
478 + "requires": {
479 + "safe-buffer": "5.1.1"
480 + }
481 + }
482 + }
483 + },
484 + "debug": {
485 + "version": "2.6.9",
486 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
487 + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
488 + "requires": {
489 + "ms": "2.0.0"
490 + }
491 + },
492 + "decamelize": {
493 + "version": "1.2.0",
494 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
495 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
496 + "optional": true
497 + },
498 + "define-properties": {
499 + "version": "1.1.2",
500 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
501 + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
502 + "requires": {
503 + "foreach": "2.0.5",
504 + "object-keys": "1.0.11"
505 + }
506 + },
507 + "depd": {
508 + "version": "1.1.2",
509 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
510 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
511 + },
512 + "destroy": {
513 + "version": "1.0.4",
514 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
515 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
516 + },
517 + "double-ended-queue": {
518 + "version": "2.1.0-0",
519 + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
520 + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw="
521 + },
522 + "ee-first": {
523 + "version": "1.1.1",
524 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
525 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
526 + },
527 + "encodeurl": {
528 + "version": "1.0.2",
529 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
530 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
531 + },
532 + "end-of-stream": {
533 + "version": "1.4.1",
534 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
535 + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
536 + "requires": {
537 + "once": "1.4.0"
538 + }
539 + },
540 + "escape-html": {
541 + "version": "1.0.3",
542 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
543 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
544 + },
545 + "etag": {
546 + "version": "1.8.1",
547 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
548 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
549 + },
550 + "express": {
551 + "version": "4.16.2",
552 + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
553 + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
554 + "requires": {
555 + "accepts": "1.3.4",
556 + "array-flatten": "1.1.1",
557 + "body-parser": "1.18.2",
558 + "content-disposition": "0.5.2",
559 + "content-type": "1.0.4",
560 + "cookie": "0.3.1",
561 + "cookie-signature": "1.0.6",
562 + "debug": "2.6.9",
563 + "depd": "1.1.2",
564 + "encodeurl": "1.0.2",
565 + "escape-html": "1.0.3",
566 + "etag": "1.8.1",
567 + "finalhandler": "1.1.0",
568 + "fresh": "0.5.2",
569 + "merge-descriptors": "1.0.1",
570 + "methods": "1.1.2",
571 + "on-finished": "2.3.0",
572 + "parseurl": "1.3.2",
573 + "path-to-regexp": "0.1.7",
574 + "proxy-addr": "2.0.2",
575 + "qs": "6.5.1",
576 + "range-parser": "1.2.0",
577 + "safe-buffer": "5.1.1",
578 + "send": "0.16.1",
579 + "serve-static": "1.13.1",
580 + "setprototypeof": "1.1.0",
581 + "statuses": "1.3.1",
582 + "type-is": "1.6.15",
583 + "utils-merge": "1.0.1",
584 + "vary": "1.1.2"
585 + },
586 + "dependencies": {
587 + "body-parser": {
588 + "version": "1.18.2",
589 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
590 + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
591 + "requires": {
592 + "bytes": "3.0.0",
593 + "content-type": "1.0.4",
594 + "debug": "2.6.9",
595 + "depd": "1.1.2",
596 + "http-errors": "1.6.2",
597 + "iconv-lite": "0.4.19",
598 + "on-finished": "2.3.0",
599 + "qs": "6.5.1",
600 + "raw-body": "2.3.2",
601 + "type-is": "1.6.15"
602 + }
603 + }
604 + }
605 + },
606 + "express-handlebars": {
607 + "version": "3.0.0",
608 + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.0.0.tgz",
609 + "integrity": "sha1-gKBwu4GbCeSvLKbQeA91zgXnXC8=",
610 + "requires": {
611 + "glob": "6.0.4",
612 + "graceful-fs": "4.1.11",
613 + "handlebars": "4.0.11",
614 + "object.assign": "4.1.0",
615 + "promise": "7.3.1"
616 + },
617 + "dependencies": {
618 + "glob": {
619 + "version": "6.0.4",
620 + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
621 + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
622 + "requires": {
623 + "inflight": "1.0.6",
624 + "inherits": "2.0.3",
625 + "minimatch": "3.0.4",
626 + "once": "1.4.0",
627 + "path-is-absolute": "1.0.1"
628 + }
629 + },
630 + "graceful-fs": {
631 + "version": "4.1.11",
632 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
633 + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
634 + }
635 + }
636 + },
637 + "express-session": {
638 + "version": "1.15.6",
639 + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz",
640 + "integrity": "sha1-R7QWDIj0KrcP6KUI4xy/92dXqwo=",
641 + "requires": {
642 + "cookie": "0.3.1",
643 + "cookie-signature": "1.0.6",
644 + "crc": "3.4.4",
645 + "debug": "2.6.9",
646 + "depd": "1.1.2",
647 + "on-headers": "1.0.1",
648 + "parseurl": "1.3.2",
649 + "uid-safe": "2.1.5",
650 + "utils-merge": "1.0.1"
651 + },
652 + "dependencies": {
653 + "crc": {
654 + "version": "3.4.4",
655 + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
656 + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms="
657 + }
658 + }
659 + },
660 + "express-ws": {
661 + "version": "2.0.0",
662 + "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-2.0.0.tgz",
663 + "integrity": "sha1-ltE/pByN6Ppdy/otrKzm9ZQnKIg=",
664 + "requires": {
665 + "ws": "1.1.5"
666 + },
667 + "dependencies": {
668 + "ultron": {
669 + "version": "1.0.2",
670 + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
671 + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
672 + },
673 + "ws": {
674 + "version": "1.1.5",
675 + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
676 + "integrity": "sha1-y9nm514J/F0skAFfIfDECHXg3VE=",
677 + "requires": {
678 + "options": "0.0.6",
679 + "ultron": "1.0.2"
680 + }
681 + }
682 + }
683 + },
684 + "fd-slicer": {
685 + "version": "1.0.1",
686 + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
687 + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
688 + "requires": {
689 + "pend": "1.2.0"
690 + }
691 + },
692 + "finalhandler": {
693 + "version": "1.1.0",
694 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
695 + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
696 + "requires": {
697 + "debug": "2.6.9",
698 + "encodeurl": "1.0.2",
699 + "escape-html": "1.0.3",
700 + "on-finished": "2.3.0",
701 + "parseurl": "1.3.2",
702 + "statuses": "1.3.1",
703 + "unpipe": "1.0.0"
704 + }
705 + },
706 + "foreach": {
707 + "version": "2.0.5",
708 + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
709 + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
710 + },
711 + "forwarded": {
712 + "version": "0.1.2",
713 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
714 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
715 + },
716 + "fresh": {
717 + "version": "0.5.2",
718 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
719 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
720 + },
721 + "fs.realpath": {
722 + "version": "1.0.0",
723 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
724 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
725 + },
726 + "function-bind": {
727 + "version": "1.1.1",
728 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
729 + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
730 + },
731 + "glob": {
732 + "version": "7.1.2",
733 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
734 + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
735 + "requires": {
736 + "fs.realpath": "1.0.0",
737 + "inflight": "1.0.6",
738 + "inherits": "2.0.3",
739 + "minimatch": "3.0.4",
740 + "once": "1.4.0",
741 + "path-is-absolute": "1.0.1"
742 + }
743 + },
744 + "handlebars": {
745 + "version": "4.0.11",
746 + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
747 + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
748 + "requires": {
749 + "async": "1.5.2",
750 + "optimist": "0.6.1",
751 + "source-map": "0.4.4",
752 + "uglify-js": "2.8.29"
753 + },
754 + "dependencies": {
755 + "async": {
756 + "version": "1.5.2",
757 + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
758 + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
759 + }
760 + }
761 + },
762 + "has-symbols": {
763 + "version": "1.0.0",
764 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
765 + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
766 + },
767 + "http-errors": {
768 + "version": "1.6.2",
769 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
770 + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
771 + "requires": {
772 + "depd": "1.1.1",
773 + "inherits": "2.0.3",
774 + "setprototypeof": "1.0.3",
775 + "statuses": "1.3.1"
776 + },
777 + "dependencies": {
778 + "depd": {
779 + "version": "1.1.1",
780 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
781 + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
782 + },
783 + "setprototypeof": {
784 + "version": "1.0.3",
785 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
786 + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
787 + }
788 + }
789 + },
790 + "iconv-lite": {
791 + "version": "0.4.19",
792 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
793 + "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs="
794 + },
795 + "immediate": {
796 + "version": "3.0.6",
797 + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
798 + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
799 + },
800 + "inflight": {
801 + "version": "1.0.6",
802 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
803 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
804 + "requires": {
805 + "once": "1.4.0",
806 + "wrappy": "1.0.2"
807 + }
808 + },
809 + "inherits": {
810 + "version": "2.0.3",
811 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
812 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
813 + },
814 + "ipaddr.js": {
815 + "version": "1.5.2",
816 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
817 + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
818 + },
819 + "is-buffer": {
820 + "version": "1.1.6",
821 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
822 + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
823 + },
824 + "keygrip": {
825 + "version": "1.0.2",
826 + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz",
827 + "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E="
828 + },
829 + "kind-of": {
830 + "version": "3.2.2",
831 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
832 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
833 + "requires": {
834 + "is-buffer": "1.1.6"
835 + }
836 + },
837 + "lazy-cache": {
838 + "version": "1.0.4",
839 + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
840 + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
841 + "optional": true
842 + },
843 + "lazystream": {
844 + "version": "1.0.0",
845 + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
846 + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
847 + "requires": {
848 + "readable-stream": "2.3.6"
849 + },
850 + "dependencies": {
851 + "isarray": {
852 + "version": "1.0.0",
853 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
854 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
855 + },
856 + "readable-stream": {
857 + "version": "2.3.6",
858 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
859 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
860 + "requires": {
861 + "core-util-is": "1.0.2",
862 + "inherits": "2.0.3",
863 + "isarray": "1.0.0",
864 + "process-nextick-args": "2.0.0",
865 + "safe-buffer": "5.1.1",
866 + "string_decoder": "1.1.1",
867 + "util-deprecate": "1.0.2"
868 + },
869 + "dependencies": {
870 + "process-nextick-args": {
871 + "version": "2.0.0",
872 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
873 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
874 + },
875 + "string_decoder": {
876 + "version": "1.1.1",
877 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
878 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
879 + "requires": {
880 + "safe-buffer": "5.1.1"
881 + }
882 + }
883 + }
884 + },
885 + "string_decoder": {
886 + "version": "1.0.3",
887 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
888 + "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
889 + "requires": {
890 + "safe-buffer": "5.1.1"
891 + }
892 + }
893 + }
894 + },
895 + "lie": {
896 + "version": "3.1.1",
897 + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
898 + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
899 + "requires": {
900 + "immediate": "3.0.6"
901 + }
902 + },
903 + "localforage": {
904 + "version": "1.5.6",
905 + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.5.6.tgz",
906 + "integrity": "sha1-0DTRXlNy7pfGQXPpqa65aBX13QY=",
907 + "requires": {
908 + "lie": "3.1.1"
909 + }
910 + },
911 + "lodash": {
912 + "version": "4.17.4",
913 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
914 + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
915 + },
916 + "longest": {
917 + "version": "1.0.1",
918 + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
919 + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
920 + },
921 + "media-typer": {
922 + "version": "0.3.0",
923 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
924 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
925 + },
926 + "merge-descriptors": {
927 + "version": "1.0.1",
928 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
929 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
930 + },
931 + "methods": {
932 + "version": "1.1.2",
933 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
934 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
935 + },
936 + "mime": {
937 + "version": "1.4.1",
938 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
939 + "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY="
940 + },
941 + "mime-db": {
942 + "version": "1.30.0",
943 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
944 + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
945 + },
946 + "mime-types": {
947 + "version": "2.1.17",
948 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
949 + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
950 + "requires": {
951 + "mime-db": "1.30.0"
952 + }
953 + },
954 + "minimatch": {
955 + "version": "3.0.4",
956 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
957 + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
958 + "requires": {
959 + "brace-expansion": "1.1.8"
960 + }
961 + },
962 + "minimist": {
963 + "version": "1.2.0",
964 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
965 + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
966 + },
967 + "mkdirp": {
968 + "version": "0.5.1",
969 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
970 + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
971 + "requires": {
972 + "minimist": "0.0.8"
973 + },
974 + "dependencies": {
975 + "minimist": {
976 + "version": "0.0.8",
977 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
978 + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
979 + }
980 + }
981 + },
982 + "ms": {
983 + "version": "2.0.0",
984 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
985 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
986 + },
987 + "multiparty": {
988 + "version": "4.1.3",
989 + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.1.3.tgz",
990 + "integrity": "sha1-PEPH/LGJbhdGBDap3Qtu8WaOT5Q=",
991 + "requires": {
992 + "fd-slicer": "1.0.1"
993 + }
994 + },
995 + "nedb": {
996 + "version": "1.8.0",
997 + "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz",
998 + "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=",
999 + "requires": {
1000 + "async": "0.2.10",
1001 + "binary-search-tree": "0.2.5",
1002 + "localforage": "1.5.6",
1003 + "mkdirp": "0.5.1",
1004 + "underscore": "1.4.4"
1005 + }
1006 + },
1007 + "negotiator": {
1008 + "version": "0.6.1",
1009 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
1010 + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
1011 + },
1012 + "node-forge": {
1013 + "version": "0.7.6",
1014 + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz",
1015 + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw=="
1016 + },
1017 + "node-windows": {
1018 + "version": "0.1.14",
1019 + "resolved": "https://registry.npmjs.org/node-windows/-/node-windows-0.1.14.tgz",
1020 + "integrity": "sha1-MbsFA9o7xjfyv6qLJmZAouktiR8=",
1021 + "requires": {
1022 + "optimist": "0.6.1",
1023 + "xml": "0.0.12"
1024 + }
1025 + },
1026 + "normalize-path": {
1027 + "version": "2.1.1",
1028 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1029 + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1030 + "requires": {
1031 + "remove-trailing-separator": "1.1.0"
1032 + }
1033 + },
1034 + "object-keys": {
1035 + "version": "1.0.11",
1036 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
1037 + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
1038 + },
1039 + "object.assign": {
1040 + "version": "4.1.0",
1041 + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1042 + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=",
1043 + "requires": {
1044 + "define-properties": "1.1.2",
1045 + "function-bind": "1.1.1",
1046 + "has-symbols": "1.0.0",
1047 + "object-keys": "1.0.11"
1048 + }
1049 + },
1050 + "on-finished": {
1051 + "version": "2.3.0",
1052 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1053 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1054 + "requires": {
1055 + "ee-first": "1.1.1"
1056 + }
1057 + },
1058 + "on-headers": {
1059 + "version": "1.0.1",
1060 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
1061 + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
1062 + },
1063 + "once": {
1064 + "version": "1.4.0",
1065 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1066 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1067 + "requires": {
1068 + "wrappy": "1.0.2"
1069 + }
1070 + },
1071 + "optimist": {
1072 + "version": "0.6.1",
1073 + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
1074 + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
1075 + "requires": {
1076 + "minimist": "0.0.10",
1077 + "wordwrap": "0.0.3"
1078 + },
1079 + "dependencies": {
1080 + "minimist": {
1081 + "version": "0.0.10",
1082 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
1083 + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
1084 + }
1085 + }
1086 + },
1087 + "options": {
1088 + "version": "0.0.6",
1089 + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
1090 + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
1091 + },
1092 + "parseurl": {
1093 + "version": "1.3.2",
1094 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
1095 + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
1096 + },
1097 + "path-is-absolute": {
1098 + "version": "1.0.1",
1099 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1100 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1101 + },
1102 + "path-to-regexp": {
1103 + "version": "0.1.7",
1104 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1105 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1106 + },
1107 + "pend": {
1108 + "version": "1.2.0",
1109 + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1110 + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
1111 + },
1112 + "process-nextick-args": {
1113 + "version": "1.0.7",
1114 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
1115 + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
1116 + },
1117 + "promise": {
1118 + "version": "7.3.1",
1119 + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
1120 + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
1121 + "requires": {
1122 + "asap": "2.0.6"
1123 + }
1124 + },
1125 + "proxy-addr": {
1126 + "version": "2.0.2",
1127 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
1128 + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
1129 + "requires": {
1130 + "forwarded": "0.1.2",
1131 + "ipaddr.js": "1.5.2"
1132 + }
1133 + },
1134 + "qs": {
1135 + "version": "6.5.1",
1136 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
1137 + "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
1138 + },
1139 + "random-bytes": {
1140 + "version": "1.0.0",
1141 + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
1142 + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
1143 + },
1144 + "range-parser": {
1145 + "version": "1.2.0",
1146 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
1147 + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
1148 + },
1149 + "raw-body": {
1150 + "version": "2.3.2",
1151 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
1152 + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
1153 + "requires": {
1154 + "bytes": "3.0.0",
1155 + "http-errors": "1.6.2",
1156 + "iconv-lite": "0.4.19",
1157 + "unpipe": "1.0.0"
1158 + }
1159 + },
1160 + "redis": {
1161 + "version": "2.8.0",
1162 + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
1163 + "integrity": "sha1-ICKI4/WMSfYHnZevehDhMDrhSwI=",
1164 + "requires": {
1165 + "double-ended-queue": "2.1.0-0",
1166 + "redis-commands": "1.3.1",
1167 + "redis-parser": "2.6.0"
1168 + }
1169 + },
1170 + "redis-commands": {
1171 + "version": "1.3.1",
1172 + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz",
1173 + "integrity": "sha1-gdgm9F+pyLIBH0zXoP5ZfSQdRCs="
1174 + },
1175 + "redis-parser": {
1176 + "version": "2.6.0",
1177 + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
1178 + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
1179 + },
1180 + "remove-trailing-separator": {
1181 + "version": "1.1.0",
1182 + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1183 + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
1184 + },
1185 + "repeat-string": {
1186 + "version": "1.6.1",
1187 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1188 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
1189 + },
1190 + "right-align": {
1191 + "version": "0.1.3",
1192 + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
1193 + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
1194 + "optional": true,
1195 + "requires": {
1196 + "align-text": "0.1.4"
1197 + }
1198 + },
1199 + "safe-buffer": {
1200 + "version": "5.1.1",
1201 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1202 + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
1203 + },
1204 + "send": {
1205 + "version": "0.16.1",
1206 + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
1207 + "integrity": "sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM=",
1208 + "requires": {
1209 + "debug": "2.6.9",
1210 + "depd": "1.1.2",
1211 + "destroy": "1.0.4",
1212 + "encodeurl": "1.0.2",
1213 + "escape-html": "1.0.3",
1214 + "etag": "1.8.1",
1215 + "fresh": "0.5.2",
1216 + "http-errors": "1.6.2",
1217 + "mime": "1.4.1",
1218 + "ms": "2.0.0",
1219 + "on-finished": "2.3.0",
1220 + "range-parser": "1.2.0",
1221 + "statuses": "1.3.1"
1222 + }
1223 + },
1224 + "serve-static": {
1225 + "version": "1.13.1",
1226 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
1227 + "integrity": "sha1-TFfVNASnYdjy58HooYpH2/J4pxk=",
1228 + "requires": {
1229 + "encodeurl": "1.0.2",
1230 + "escape-html": "1.0.3",
1231 + "parseurl": "1.3.2",
1232 + "send": "0.16.1"
1233 + }
1234 + },
1235 + "setprototypeof": {
1236 + "version": "1.1.0",
1237 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
1238 + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY="
1239 + },
1240 + "source-map": {
1241 + "version": "0.4.4",
1242 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
1243 + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
1244 + "requires": {
1245 + "amdefine": "1.0.1"
1246 + }
1247 + },
1248 + "statuses": {
1249 + "version": "1.3.1",
1250 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
1251 + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
1252 + },
1253 + "tar-stream": {
1254 + "version": "1.5.5",
1255 + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz",
1256 + "integrity": "sha1-XK2Ed59FyDsfJQjZawnYjHIYr1U=",
1257 + "requires": {
1258 + "bl": "1.2.1",
1259 + "end-of-stream": "1.4.1",
1260 + "readable-stream": "2.3.6",
1261 + "xtend": "4.0.1"
1262 + },
1263 + "dependencies": {
1264 + "isarray": {
1265 + "version": "1.0.0",
1266 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1267 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1268 + },
1269 + "readable-stream": {
1270 + "version": "2.3.6",
1271 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1272 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1273 + "requires": {
1274 + "core-util-is": "1.0.2",
1275 + "inherits": "2.0.3",
1276 + "isarray": "1.0.0",
1277 + "process-nextick-args": "2.0.0",
1278 + "safe-buffer": "5.1.1",
1279 + "string_decoder": "1.1.1",
1280 + "util-deprecate": "1.0.2"
1281 + },
1282 + "dependencies": {
1283 + "process-nextick-args": {
1284 + "version": "2.0.0",
1285 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1286 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
1287 + }
1288 + }
1289 + },
1290 + "string_decoder": {
1291 + "version": "1.1.1",
1292 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1293 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1294 + "requires": {
1295 + "safe-buffer": "5.1.1"
1296 + }
1297 + }
1298 + }
1299 + },
1300 + "type-is": {
1301 + "version": "1.6.15",
1302 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
1303 + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
1304 + "requires": {
1305 + "media-typer": "0.3.0",
1306 + "mime-types": "2.1.17"
1307 + }
1308 + },
1309 + "uglify-js": {
1310 + "version": "2.8.29",
1311 + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
1312 + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
1313 + "optional": true,
1314 + "requires": {
1315 + "source-map": "0.5.7",
1316 + "uglify-to-browserify": "1.0.2",
1317 + "yargs": "3.10.0"
1318 + },
1319 + "dependencies": {
1320 + "source-map": {
1321 + "version": "0.5.7",
1322 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1323 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1324 + "optional": true
1325 + }
1326 + }
1327 + },
1328 + "uglify-to-browserify": {
1329 + "version": "1.0.2",
1330 + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
1331 + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
1332 + "optional": true
1333 + },
1334 + "uid-safe": {
1335 + "version": "2.1.5",
1336 + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
1337 + "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=",
1338 + "requires": {
1339 + "random-bytes": "1.0.0"
1340 + }
1341 + },
1342 + "ultron": {
1343 + "version": "1.1.1",
1344 + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
1345 + "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw="
1346 + },
1347 + "underscore": {
1348 + "version": "1.4.4",
1349 + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
1350 + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
1351 + },
1352 + "unpipe": {
1353 + "version": "1.0.0",
1354 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1355 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1356 + },
1357 + "util-deprecate": {
1358 + "version": "1.0.2",
1359 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1360 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1361 + },
1362 + "utils-merge": {
1363 + "version": "1.0.1",
1364 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1365 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1366 + },
1367 + "vary": {
1368 + "version": "1.1.2",
1369 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1370 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1371 + },
1372 + "walkdir": {
1373 + "version": "0.0.11",
1374 + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
1375 + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI="
1376 + },
1377 + "window-size": {
1378 + "version": "0.1.0",
1379 + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
1380 + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
1381 + "optional": true
1382 + },
1383 + "wordwrap": {
1384 + "version": "0.0.3",
1385 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
1386 + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
1387 + },
1388 + "wrappy": {
1389 + "version": "1.0.2",
1390 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1391 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1392 + },
1393 + "ws": {
1394 + "version": "3.3.3",
1395 + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
1396 + "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=",
1397 + "requires": {
1398 + "async-limiter": "1.0.0",
1399 + "safe-buffer": "5.1.1",
1400 + "ultron": "1.1.1"
1401 + }
1402 + },
1403 + "xml": {
1404 + "version": "0.0.12",
1405 + "resolved": "https://registry.npmjs.org/xml/-/xml-0.0.12.tgz",
1406 + "integrity": "sha1-8Is0cQmRK+AChXhfRvFa2OUKX2c="
1407 + },
1408 + "xmldom": {
1409 + "version": "0.1.27",
1410 + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
1411 + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
1412 + },
1413 + "xtend": {
1414 + "version": "4.0.1",
1415 + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
1416 + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
1417 + },
1418 + "yargs": {
1419 + "version": "3.10.0",
1420 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
1421 + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
1422 + "optional": true,
1423 + "requires": {
1424 + "camelcase": "1.2.1",
1425 + "cliui": "2.1.0",
1426 + "decamelize": "1.2.0",
1427 + "window-size": "0.1.0"
1428 + }
1429 + },
1430 + "yauzl": {
1431 + "version": "2.9.1",
1432 + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz",
1433 + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=",
1434 + "requires": {
1435 + "buffer-crc32": "0.2.13",
1436 + "fd-slicer": "1.0.1"
1437 + }
1438 + },
1439 + "zip-stream": {
1440 + "version": "1.2.0",
1441 + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
1442 + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
1443 + "requires": {
1444 + "archiver-utils": "1.3.0",
1445 + "compress-commons": "1.2.2",
1446 + "lodash": "4.17.4",
1447 + "readable-stream": "2.3.6"
1448 + },
1449 + "dependencies": {
1450 + "isarray": {
1451 + "version": "1.0.0",
1452 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1453 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1454 + },
1455 + "readable-stream": {
1456 + "version": "2.3.6",
1457 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1458 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1459 + "requires": {
1460 + "core-util-is": "1.0.2",
1461 + "inherits": "2.0.3",
1462 + "isarray": "1.0.0",
1463 + "process-nextick-args": "2.0.0",
1464 + "safe-buffer": "5.1.1",
1465 + "string_decoder": "1.1.1",
1466 + "util-deprecate": "1.0.2"
1467 + },
1468 + "dependencies": {
1469 + "process-nextick-args": {
1470 + "version": "2.0.0",
1471 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1472 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
1473 + }
1474 + }
1475 + },
1476 + "string_decoder": {
1477 + "version": "1.1.1",
1478 + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1479 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1480 + "requires": {
1481 + "safe-buffer": "5.1.1"
1482 + }
1483 + }
1484 + }
1485 + }
1486 + }
1487 +}
package.json
+9 -8
@@ -1,6 +1,6 @@
1 {
2 "name": "meshcentral",
3 - "version": "0.2.3-g",
3 + "version": "0.2.3-h",
4 "keywords": [
5 "Remote Management",
6 "Intel AMT",
@@ -28,19 +28,20 @@
28 "dependencies": {
29 "archiver": "^1.3.0",
30 "body-parser": "^1.18.2",
31 - "compression": "^1.7.1",
32 - "connect-redis": "^3.3.3",
31 + "compression": "^1.7.3",
32 + "connect-redis": "^3.4.0",
33 "cookie-session": "^2.0.0-beta.3",
34 - "express": "^4.16.2",
34 + "express": "^4.16.4",
35 "express-handlebars": "^3.0.0",
36 "express-session": "^1.15.6",
37 - "express-ws": "^2.0.0",
37 + "express-ws": "^3.0.0",
38 "meshcentral": "*",
39 "minimist": "^1.2.0",
40 - "multiparty": "^4.1.3",
40 + "multiparty": "^4.2.1",
41 "nedb": "^1.8.0",
42 - "node-forge": "^0.6.49",
43 - "ws": "^3.3.3",
42 + "node-forge": "^0.7.6",
43 + "node-windows": "^0.1.14",
44 + "ws": "^6.1.2",
45 "xmldom": "^0.1.27",
46 "yauzl": "^2.9.1"
47 },