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
},