Fix package installs and set node 20 for docker (#5692)
* fix install packages and set docker to node 20 Signed-off-by: si458 <simonsmith5521@gmail.com> * missed a few no-package-lock and no-save Signed-off-by: si458 <simonsmith5521@gmail.com> * use --save-exact and only install missing modules Signed-off-by: si458 <simonsmith5521@gmail.com> --------- Signed-off-by: si458 <simonsmith5521@gmail.com>
Simon Smith committed
Jan 13, 2024 at 18:52 UTC
ef6fd23a4fa7ec2176d275deff98808dc37097d3
6 files changed
+1713
-13
.gitignore
-1
@@ -16,7 +16,6 @@
16
meshcentral.db
17
meshcentral.db.json
18
mesherrors.txt
19
-package-lock.json
19
bob.json
20
.greenlockrc
21
docker/Dockerfile
+2
-2
@@ -1,4 +1,4 @@
1
-FROM --platform=$BUILDPLATFORM node:current-alpine AS builder
1
+FROM --platform=$BUILDPLATFORM node:20-alpine AS builder
2
3
RUN mkdir -p /opt/meshcentral/meshcentral
4
COPY ./ /opt/meshcentral/meshcentral/
@@ -34,7 +34,7 @@ RUN rm -rf /opt/meshcentral/meshcentral/docker
34
RUN rm -rf /opt/meshcentral/meshcentral/node_modules
35
36
37
-FROM --platform=$TARGETPLATFORM alpine:latest
37
+FROM --platform=$TARGETPLATFORM alpine:3.19
38
39
#Add non-root user, add installation directories and assign proper permissions
40
RUN mkdir -p /opt/meshcentral/meshcentral
meshcentral.js
+10
-9
@@ -471,7 +471,8 @@ function CreateMeshCentralServer(config, args) {
471
const npmproxy = ((typeof obj.args.npmproxy == 'string') ? (' --proxy ' + obj.args.npmproxy) : '');
472
const env = Object.assign({}, process.env); // Shallow clone
473
if (typeof obj.args.npmproxy == 'string') { env['HTTP_PROXY'] = env['HTTPS_PROXY'] = env['http_proxy'] = env['https_proxy'] = obj.args.npmproxy; }
474
- const xxprocess = child_process.exec(npmpath + ' install --no-audit --no-package-lock meshcentral' + version + npmproxy, { maxBuffer: Infinity, cwd: obj.parentpath, env: env }, function (error, stdout, stderr) {
474
+ // always use --save-exact - https://stackoverflow.com/a/64507176/1210734
475
+ const xxprocess = child_process.exec(npmpath + ' install --save-exact --no-audit meshcentral' + version + npmproxy, { maxBuffer: Infinity, cwd: obj.parentpath, env: env }, function (error, stdout, stderr) {
476
if ((error != null) && (error != '')) { console.log('Update failed: ' + error); }
477
});
478
xxprocess.data = '';
@@ -3857,7 +3858,7 @@ function InstallModules(modules, args, func) {
3858
}
3859
}
3860
3860
- if (missingModules.length > 0) { if (args.debug) { console.log('Missing Modules: ' + missingModules.join(', ')); } InstallModuleEx(modules, args, func); } else { func(); }
3861
+ if (missingModules.length > 0) { if (args.debug) { console.log('Missing Modules: ' + missingModules.join(', ')); } InstallModuleEx(missingModules, args, func); } else { func(); }
3862
}
3863
}
3864
@@ -3865,23 +3866,23 @@ function InstallModules(modules, args, func) {
3866
// this is to make sure NPM gives us exactly what we need. Also, we install the meshcentral with current version, so that NPM does not update it - which it will do if obmitted.
3867
function InstallModuleEx(modulenames, args, func) {
3868
var names = modulenames.join(' ');
3868
- console.log('Installing modules...');
3869
+ console.log('Installing modules', modulenames);
3870
const child_process = require('child_process');
3871
var parentpath = __dirname;
3872
function getCurrentVersion() { try { return JSON.parse(require('fs').readFileSync(require('path').join(__dirname, 'package.json'), 'utf8')).version; } catch (ex) { } return null; } // Fetch server version
3872
- const meshCentralVersion = getCurrentVersion();
3873
- if ((meshCentralVersion != null) && (args.dev == null)) { names = 'meshcentral@' + getCurrentVersion() + ' ' + names; }
3873
+ //const meshCentralVersion = getCurrentVersion();
3874
+ //if ((meshCentralVersion != null) && (args.dev == null)) { names = 'meshcentral@' + getCurrentVersion() + ' ' + names; }
3875
3876
// Get the working directory
3877
if ((__dirname.endsWith('/node_modules/meshcentral')) || (__dirname.endsWith('\\node_modules\\meshcentral')) || (__dirname.endsWith('/node_modules/meshcentral/')) || (__dirname.endsWith('\\node_modules\\meshcentral\\'))) { parentpath = require('path').join(__dirname, '../..'); }
3878
3878
- if (args.debug) { console.log('NPM Command Line: ' + npmpath + ` install --no-audit --no-package-lock --omit=optional --no-save --no-fund ${names}`); }
3879
-
3880
- child_process.exec(npmpath + ` install --no-audit --no-package-lock --no-optional --omit=optional --no-save ${names}`, { maxBuffer: 512000, timeout: 300000, cwd: parentpath }, function (error, stdout, stderr) {
3879
+ if (args.debug) { console.log('NPM Command Line: ' + npmpath + ` install --save-exact --no-audit --omit=optional --no-fund ${names}`); }
3880
+ // always use --save-exact - https://stackoverflow.com/a/64507176/1210734
3881
+ child_process.exec(npmpath + ` install --save-exact --no-audit --no-optional --omit=optional ${names}`, { maxBuffer: 512000, timeout: 300000, cwd: parentpath }, function (error, stdout, stderr) {
3882
if ((error != null) && (error != '')) {
3883
var mcpath = __dirname;
3884
if (mcpath.endsWith('\\node_modules\\meshcentral') || mcpath.endsWith('/node_modules/meshcentral')) { mcpath = require('path').join(mcpath, '..', '..'); }
3884
- console.log('ERROR: Unable to install required modules. MeshCentral may not have access to npm, or npm may not have suffisent rights to load the new module. To manualy install this module try:\r\n\r\n cd "' + mcpath + '"\r\n npm install --no-audit --no-package-lock --no-optional --omit=optional --no-save ' + names + '\r\n node node_modules' + ((require('os').platform() == 'win32') ? '\\' : '/') + 'meshcentral');
3885
+ console.log('ERROR: Unable to install required modules. MeshCentral may not have access to npm, or npm may not have suffisent rights to load the new module. To manualy install this module try:\r\n\r\n cd "' + mcpath + '"\r\n npm install --no-audit --no-optional --omit=optional ' + names + '\r\n node node_modules' + ((require('os').platform() == 'win32') ? '\\' : '/') + 'meshcentral');
3886
process.exit();
3887
return;
3888
}
package-lock.json
new
+1699
@@ -0,0 +1,1699 @@
1
+{
2
+ "name": "meshcentral",
3
+ "version": "1.1.16",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "meshcentral",
9
+ "version": "1.1.16",
10
+ "license": "Apache-2.0",
11
+ "dependencies": {
12
+ "@yetzt/nedb": "1.8.0",
13
+ "archiver": "5.3.2",
14
+ "body-parser": "1.20.2",
15
+ "cbor": "5.2.0",
16
+ "compression": "1.7.4",
17
+ "cookie-session": "2.0.0",
18
+ "express": "4.18.2",
19
+ "express-handlebars": "5.3.5",
20
+ "express-ws": "4.0.0",
21
+ "ipcheck": "0.1.0",
22
+ "minimist": "1.2.8",
23
+ "multiparty": "4.2.3",
24
+ "node-forge": "1.3.1",
25
+ "otplib": "10.2.3",
26
+ "ua-parser-js": "1.0.37",
27
+ "ws": "8.14.2",
28
+ "yauzl": "2.10.0"
29
+ },
30
+ "bin": {
31
+ "meshcentral": "bin/meshcentral"
32
+ },
33
+ "engines": {
34
+ "node": ">=11.0.0"
35
+ }
36
+ },
37
+ "node_modules/@yetzt/binary-search-tree": {
38
+ "version": "0.2.6",
39
+ "resolved": "https://registry.npmjs.org/@yetzt/binary-search-tree/-/binary-search-tree-0.2.6.tgz",
40
+ "integrity": "sha512-e/8wt8AAumI8VK5sv09b3IgWuRoblXJ5z0SQYfrL2nap89oKihvVaP1zy3FzD5NaeRi1X0gdXZA9lB3QAZILBg=="
41
+ },
42
+ "node_modules/@yetzt/nedb": {
43
+ "version": "1.8.0",
44
+ "resolved": "https://registry.npmjs.org/@yetzt/nedb/-/nedb-1.8.0.tgz",
45
+ "integrity": "sha512-1hUV/eIPSCRb4Vs9dgLekBCCawWNtf29immIF9kvzxnnnEoWgyFSDZgFvlFCiQ3Bzo8ifXn92HDS3l9fNvmtzA==",
46
+ "dependencies": {
47
+ "@yetzt/binary-search-tree": "^0.2.6",
48
+ "async": "^3.2.0",
49
+ "localforage": "^1.9.0",
50
+ "mkdirp": "^1.0.4",
51
+ "underscore": "^1.13.1"
52
+ }
53
+ },
54
+ "node_modules/accepts": {
55
+ "version": "1.3.8",
56
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
57
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
58
+ "dependencies": {
59
+ "mime-types": "~2.1.34",
60
+ "negotiator": "0.6.3"
61
+ },
62
+ "engines": {
63
+ "node": ">= 0.6"
64
+ }
65
+ },
66
+ "node_modules/archiver": {
67
+ "version": "5.3.2",
68
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz",
69
+ "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==",
70
+ "dependencies": {
71
+ "archiver-utils": "^2.1.0",
72
+ "async": "^3.2.4",
73
+ "buffer-crc32": "^0.2.1",
74
+ "readable-stream": "^3.6.0",
75
+ "readdir-glob": "^1.1.2",
76
+ "tar-stream": "^2.2.0",
77
+ "zip-stream": "^4.1.0"
78
+ },
79
+ "engines": {
80
+ "node": ">= 10"
81
+ }
82
+ },
83
+ "node_modules/archiver-utils": {
84
+ "version": "2.1.0",
85
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
86
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
87
+ "dependencies": {
88
+ "glob": "^7.1.4",
89
+ "graceful-fs": "^4.2.0",
90
+ "lazystream": "^1.0.0",
91
+ "lodash.defaults": "^4.2.0",
92
+ "lodash.difference": "^4.5.0",
93
+ "lodash.flatten": "^4.4.0",
94
+ "lodash.isplainobject": "^4.0.6",
95
+ "lodash.union": "^4.6.0",
96
+ "normalize-path": "^3.0.0",
97
+ "readable-stream": "^2.0.0"
98
+ },
99
+ "engines": {
100
+ "node": ">= 6"
101
+ }
102
+ },
103
+ "node_modules/archiver-utils/node_modules/readable-stream": {
104
+ "version": "2.3.8",
105
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
106
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
107
+ "dependencies": {
108
+ "core-util-is": "~1.0.0",
109
+ "inherits": "~2.0.3",
110
+ "isarray": "~1.0.0",
111
+ "process-nextick-args": "~2.0.0",
112
+ "safe-buffer": "~5.1.1",
113
+ "string_decoder": "~1.1.1",
114
+ "util-deprecate": "~1.0.1"
115
+ }
116
+ },
117
+ "node_modules/archiver-utils/node_modules/string_decoder": {
118
+ "version": "1.1.1",
119
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
120
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
121
+ "dependencies": {
122
+ "safe-buffer": "~5.1.0"
123
+ }
124
+ },
125
+ "node_modules/array-flatten": {
126
+ "version": "1.1.1",
127
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
128
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
129
+ },
130
+ "node_modules/async": {
131
+ "version": "3.2.5",
132
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
133
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
134
+ },
135
+ "node_modules/async-limiter": {
136
+ "version": "1.0.1",
137
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
138
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
139
+ },
140
+ "node_modules/balanced-match": {
141
+ "version": "1.0.2",
142
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
143
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
144
+ },
145
+ "node_modules/base64-js": {
146
+ "version": "1.5.1",
147
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
148
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
149
+ "funding": [
150
+ {
151
+ "type": "github",
152
+ "url": "https://github.com/sponsors/feross"
153
+ },
154
+ {
155
+ "type": "patreon",
156
+ "url": "https://www.patreon.com/feross"
157
+ },
158
+ {
159
+ "type": "consulting",
160
+ "url": "https://feross.org/support"
161
+ }
162
+ ]
163
+ },
164
+ "node_modules/bignumber.js": {
165
+ "version": "9.1.2",
166
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
167
+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
168
+ "engines": {
169
+ "node": "*"
170
+ }
171
+ },
172
+ "node_modules/bl": {
173
+ "version": "4.1.0",
174
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
175
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
176
+ "dependencies": {
177
+ "buffer": "^5.5.0",
178
+ "inherits": "^2.0.4",
179
+ "readable-stream": "^3.4.0"
180
+ }
181
+ },
182
+ "node_modules/body-parser": {
183
+ "version": "1.20.2",
184
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
185
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
186
+ "dependencies": {
187
+ "bytes": "3.1.2",
188
+ "content-type": "~1.0.5",
189
+ "debug": "2.6.9",
190
+ "depd": "2.0.0",
191
+ "destroy": "1.2.0",
192
+ "http-errors": "2.0.0",
193
+ "iconv-lite": "0.4.24",
194
+ "on-finished": "2.4.1",
195
+ "qs": "6.11.0",
196
+ "raw-body": "2.5.2",
197
+ "type-is": "~1.6.18",
198
+ "unpipe": "1.0.0"
199
+ },
200
+ "engines": {
201
+ "node": ">= 0.8",
202
+ "npm": "1.2.8000 || >= 1.4.16"
203
+ }
204
+ },
205
+ "node_modules/brace-expansion": {
206
+ "version": "1.1.11",
207
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
208
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
209
+ "dependencies": {
210
+ "balanced-match": "^1.0.0",
211
+ "concat-map": "0.0.1"
212
+ }
213
+ },
214
+ "node_modules/buffer": {
215
+ "version": "5.7.1",
216
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
217
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
218
+ "funding": [
219
+ {
220
+ "type": "github",
221
+ "url": "https://github.com/sponsors/feross"
222
+ },
223
+ {
224
+ "type": "patreon",
225
+ "url": "https://www.patreon.com/feross"
226
+ },
227
+ {
228
+ "type": "consulting",
229
+ "url": "https://feross.org/support"
230
+ }
231
+ ],
232
+ "dependencies": {
233
+ "base64-js": "^1.3.1",
234
+ "ieee754": "^1.1.13"
235
+ }
236
+ },
237
+ "node_modules/buffer-crc32": {
238
+ "version": "0.2.13",
239
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
240
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
241
+ "engines": {
242
+ "node": "*"
243
+ }
244
+ },
245
+ "node_modules/bytes": {
246
+ "version": "3.1.2",
247
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
248
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
249
+ "engines": {
250
+ "node": ">= 0.8"
251
+ }
252
+ },
253
+ "node_modules/call-bind": {
254
+ "version": "1.0.5",
255
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
256
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
257
+ "dependencies": {
258
+ "function-bind": "^1.1.2",
259
+ "get-intrinsic": "^1.2.1",
260
+ "set-function-length": "^1.1.1"
261
+ },
262
+ "funding": {
263
+ "url": "https://github.com/sponsors/ljharb"
264
+ }
265
+ },
266
+ "node_modules/cbor": {
267
+ "version": "5.2.0",
268
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz",
269
+ "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==",
270
+ "dependencies": {
271
+ "bignumber.js": "^9.0.1",
272
+ "nofilter": "^1.0.4"
273
+ },
274
+ "engines": {
275
+ "node": ">=6.0.0"
276
+ }
277
+ },
278
+ "node_modules/compress-commons": {
279
+ "version": "4.1.2",
280
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz",
281
+ "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==",
282
+ "dependencies": {
283
+ "buffer-crc32": "^0.2.13",
284
+ "crc32-stream": "^4.0.2",
285
+ "normalize-path": "^3.0.0",
286
+ "readable-stream": "^3.6.0"
287
+ },
288
+ "engines": {
289
+ "node": ">= 10"
290
+ }
291
+ },
292
+ "node_modules/compressible": {
293
+ "version": "2.0.18",
294
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
295
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
296
+ "dependencies": {
297
+ "mime-db": ">= 1.43.0 < 2"
298
+ },
299
+ "engines": {
300
+ "node": ">= 0.6"
301
+ }
302
+ },
303
+ "node_modules/compression": {
304
+ "version": "1.7.4",
305
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
306
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
307
+ "dependencies": {
308
+ "accepts": "~1.3.5",
309
+ "bytes": "3.0.0",
310
+ "compressible": "~2.0.16",
311
+ "debug": "2.6.9",
312
+ "on-headers": "~1.0.2",
313
+ "safe-buffer": "5.1.2",
314
+ "vary": "~1.1.2"
315
+ },
316
+ "engines": {
317
+ "node": ">= 0.8.0"
318
+ }
319
+ },
320
+ "node_modules/compression/node_modules/bytes": {
321
+ "version": "3.0.0",
322
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
323
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
324
+ "engines": {
325
+ "node": ">= 0.8"
326
+ }
327
+ },
328
+ "node_modules/concat-map": {
329
+ "version": "0.0.1",
330
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
331
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
332
+ },
333
+ "node_modules/content-disposition": {
334
+ "version": "0.5.4",
335
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
336
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
337
+ "dependencies": {
338
+ "safe-buffer": "5.2.1"
339
+ },
340
+ "engines": {
341
+ "node": ">= 0.6"
342
+ }
343
+ },
344
+ "node_modules/content-disposition/node_modules/safe-buffer": {
345
+ "version": "5.2.1",
346
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
347
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
348
+ "funding": [
349
+ {
350
+ "type": "github",
351
+ "url": "https://github.com/sponsors/feross"
352
+ },
353
+ {
354
+ "type": "patreon",
355
+ "url": "https://www.patreon.com/feross"
356
+ },
357
+ {
358
+ "type": "consulting",
359
+ "url": "https://feross.org/support"
360
+ }
361
+ ]
362
+ },
363
+ "node_modules/content-type": {
364
+ "version": "1.0.5",
365
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
366
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
367
+ "engines": {
368
+ "node": ">= 0.6"
369
+ }
370
+ },
371
+ "node_modules/cookie": {
372
+ "version": "0.5.0",
373
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
374
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
375
+ "engines": {
376
+ "node": ">= 0.6"
377
+ }
378
+ },
379
+ "node_modules/cookie-session": {
380
+ "version": "2.0.0",
381
+ "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz",
382
+ "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==",
383
+ "dependencies": {
384
+ "cookies": "0.8.0",
385
+ "debug": "3.2.7",
386
+ "on-headers": "~1.0.2",
387
+ "safe-buffer": "5.2.1"
388
+ },
389
+ "engines": {
390
+ "node": ">= 0.10"
391
+ }
392
+ },
393
+ "node_modules/cookie-session/node_modules/debug": {
394
+ "version": "3.2.7",
395
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
396
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
397
+ "dependencies": {
398
+ "ms": "^2.1.1"
399
+ }
400
+ },
401
+ "node_modules/cookie-session/node_modules/ms": {
402
+ "version": "2.1.3",
403
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
404
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
405
+ },
406
+ "node_modules/cookie-session/node_modules/safe-buffer": {
407
+ "version": "5.2.1",
408
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
409
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
410
+ "funding": [
411
+ {
412
+ "type": "github",
413
+ "url": "https://github.com/sponsors/feross"
414
+ },
415
+ {
416
+ "type": "patreon",
417
+ "url": "https://www.patreon.com/feross"
418
+ },
419
+ {
420
+ "type": "consulting",
421
+ "url": "https://feross.org/support"
422
+ }
423
+ ]
424
+ },
425
+ "node_modules/cookie-signature": {
426
+ "version": "1.0.6",
427
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
428
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
429
+ },
430
+ "node_modules/cookies": {
431
+ "version": "0.8.0",
432
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
433
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
434
+ "dependencies": {
435
+ "depd": "~2.0.0",
436
+ "keygrip": "~1.1.0"
437
+ },
438
+ "engines": {
439
+ "node": ">= 0.8"
440
+ }
441
+ },
442
+ "node_modules/core-util-is": {
443
+ "version": "1.0.3",
444
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
445
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
446
+ },
447
+ "node_modules/crc-32": {
448
+ "version": "1.2.2",
449
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
450
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
451
+ "bin": {
452
+ "crc32": "bin/crc32.njs"
453
+ },
454
+ "engines": {
455
+ "node": ">=0.8"
456
+ }
457
+ },
458
+ "node_modules/crc32-stream": {
459
+ "version": "4.0.3",
460
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz",
461
+ "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==",
462
+ "dependencies": {
463
+ "crc-32": "^1.2.0",
464
+ "readable-stream": "^3.4.0"
465
+ },
466
+ "engines": {
467
+ "node": ">= 10"
468
+ }
469
+ },
470
+ "node_modules/debug": {
471
+ "version": "2.6.9",
472
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
473
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
474
+ "dependencies": {
475
+ "ms": "2.0.0"
476
+ }
477
+ },
478
+ "node_modules/define-data-property": {
479
+ "version": "1.1.1",
480
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
481
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
482
+ "dependencies": {
483
+ "get-intrinsic": "^1.2.1",
484
+ "gopd": "^1.0.1",
485
+ "has-property-descriptors": "^1.0.0"
486
+ },
487
+ "engines": {
488
+ "node": ">= 0.4"
489
+ }
490
+ },
491
+ "node_modules/depd": {
492
+ "version": "2.0.0",
493
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
494
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
495
+ "engines": {
496
+ "node": ">= 0.8"
497
+ }
498
+ },
499
+ "node_modules/destroy": {
500
+ "version": "1.2.0",
501
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
502
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
503
+ "engines": {
504
+ "node": ">= 0.8",
505
+ "npm": "1.2.8000 || >= 1.4.16"
506
+ }
507
+ },
508
+ "node_modules/ee-first": {
509
+ "version": "1.1.1",
510
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
511
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
512
+ },
513
+ "node_modules/encodeurl": {
514
+ "version": "1.0.2",
515
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
516
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
517
+ "engines": {
518
+ "node": ">= 0.8"
519
+ }
520
+ },
521
+ "node_modules/end-of-stream": {
522
+ "version": "1.4.4",
523
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
524
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
525
+ "dependencies": {
526
+ "once": "^1.4.0"
527
+ }
528
+ },
529
+ "node_modules/escape-html": {
530
+ "version": "1.0.3",
531
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
532
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
533
+ },
534
+ "node_modules/etag": {
535
+ "version": "1.8.1",
536
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
537
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
538
+ "engines": {
539
+ "node": ">= 0.6"
540
+ }
541
+ },
542
+ "node_modules/express": {
543
+ "version": "4.18.2",
544
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
545
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
546
+ "dependencies": {
547
+ "accepts": "~1.3.8",
548
+ "array-flatten": "1.1.1",
549
+ "body-parser": "1.20.1",
550
+ "content-disposition": "0.5.4",
551
+ "content-type": "~1.0.4",
552
+ "cookie": "0.5.0",
553
+ "cookie-signature": "1.0.6",
554
+ "debug": "2.6.9",
555
+ "depd": "2.0.0",
556
+ "encodeurl": "~1.0.2",
557
+ "escape-html": "~1.0.3",
558
+ "etag": "~1.8.1",
559
+ "finalhandler": "1.2.0",
560
+ "fresh": "0.5.2",
561
+ "http-errors": "2.0.0",
562
+ "merge-descriptors": "1.0.1",
563
+ "methods": "~1.1.2",
564
+ "on-finished": "2.4.1",
565
+ "parseurl": "~1.3.3",
566
+ "path-to-regexp": "0.1.7",
567
+ "proxy-addr": "~2.0.7",
568
+ "qs": "6.11.0",
569
+ "range-parser": "~1.2.1",
570
+ "safe-buffer": "5.2.1",
571
+ "send": "0.18.0",
572
+ "serve-static": "1.15.0",
573
+ "setprototypeof": "1.2.0",
574
+ "statuses": "2.0.1",
575
+ "type-is": "~1.6.18",
576
+ "utils-merge": "1.0.1",
577
+ "vary": "~1.1.2"
578
+ },
579
+ "engines": {
580
+ "node": ">= 0.10.0"
581
+ }
582
+ },
583
+ "node_modules/express-handlebars": {
584
+ "version": "5.3.5",
585
+ "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-5.3.5.tgz",
586
+ "integrity": "sha512-r9pzDc94ZNJ7FVvtsxLfPybmN0eFAUnR61oimNPRpD0D7nkLcezrkpZzoXS5TI75wYHRbflPLTU39B62pwB4DA==",
587
+ "dependencies": {
588
+ "glob": "^7.2.0",
589
+ "graceful-fs": "^4.2.8",
590
+ "handlebars": "^4.7.7"
591
+ },
592
+ "engines": {
593
+ "node": ">=v10.24.1"
594
+ }
595
+ },
596
+ "node_modules/express-ws": {
597
+ "version": "4.0.0",
598
+ "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz",
599
+ "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==",
600
+ "dependencies": {
601
+ "ws": "^5.2.0"
602
+ },
603
+ "engines": {
604
+ "node": ">=4.5.0"
605
+ },
606
+ "peerDependencies": {
607
+ "express": "^4.0.0 || ^5.0.0-alpha.1"
608
+ }
609
+ },
610
+ "node_modules/express-ws/node_modules/ws": {
611
+ "version": "5.2.3",
612
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz",
613
+ "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==",
614
+ "dependencies": {
615
+ "async-limiter": "~1.0.0"
616
+ }
617
+ },
618
+ "node_modules/express/node_modules/body-parser": {
619
+ "version": "1.20.1",
620
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
621
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
622
+ "dependencies": {
623
+ "bytes": "3.1.2",
624
+ "content-type": "~1.0.4",
625
+ "debug": "2.6.9",
626
+ "depd": "2.0.0",
627
+ "destroy": "1.2.0",
628
+ "http-errors": "2.0.0",
629
+ "iconv-lite": "0.4.24",
630
+ "on-finished": "2.4.1",
631
+ "qs": "6.11.0",
632
+ "raw-body": "2.5.1",
633
+ "type-is": "~1.6.18",
634
+ "unpipe": "1.0.0"
635
+ },
636
+ "engines": {
637
+ "node": ">= 0.8",
638
+ "npm": "1.2.8000 || >= 1.4.16"
639
+ }
640
+ },
641
+ "node_modules/express/node_modules/raw-body": {
642
+ "version": "2.5.1",
643
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
644
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
645
+ "dependencies": {
646
+ "bytes": "3.1.2",
647
+ "http-errors": "2.0.0",
648
+ "iconv-lite": "0.4.24",
649
+ "unpipe": "1.0.0"
650
+ },
651
+ "engines": {
652
+ "node": ">= 0.8"
653
+ }
654
+ },
655
+ "node_modules/express/node_modules/safe-buffer": {
656
+ "version": "5.2.1",
657
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
658
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
659
+ "funding": [
660
+ {
661
+ "type": "github",
662
+ "url": "https://github.com/sponsors/feross"
663
+ },
664
+ {
665
+ "type": "patreon",
666
+ "url": "https://www.patreon.com/feross"
667
+ },
668
+ {
669
+ "type": "consulting",
670
+ "url": "https://feross.org/support"
671
+ }
672
+ ]
673
+ },
674
+ "node_modules/fd-slicer": {
675
+ "version": "1.1.0",
676
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
677
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
678
+ "dependencies": {
679
+ "pend": "~1.2.0"
680
+ }
681
+ },
682
+ "node_modules/finalhandler": {
683
+ "version": "1.2.0",
684
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
685
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
686
+ "dependencies": {
687
+ "debug": "2.6.9",
688
+ "encodeurl": "~1.0.2",
689
+ "escape-html": "~1.0.3",
690
+ "on-finished": "2.4.1",
691
+ "parseurl": "~1.3.3",
692
+ "statuses": "2.0.1",
693
+ "unpipe": "~1.0.0"
694
+ },
695
+ "engines": {
696
+ "node": ">= 0.8"
697
+ }
698
+ },
699
+ "node_modules/forwarded": {
700
+ "version": "0.2.0",
701
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
702
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
703
+ "engines": {
704
+ "node": ">= 0.6"
705
+ }
706
+ },
707
+ "node_modules/fresh": {
708
+ "version": "0.5.2",
709
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
710
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
711
+ "engines": {
712
+ "node": ">= 0.6"
713
+ }
714
+ },
715
+ "node_modules/fs-constants": {
716
+ "version": "1.0.0",
717
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
718
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
719
+ },
720
+ "node_modules/fs.realpath": {
721
+ "version": "1.0.0",
722
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
723
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
724
+ },
725
+ "node_modules/function-bind": {
726
+ "version": "1.1.2",
727
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
728
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
729
+ "funding": {
730
+ "url": "https://github.com/sponsors/ljharb"
731
+ }
732
+ },
733
+ "node_modules/get-intrinsic": {
734
+ "version": "1.2.2",
735
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
736
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
737
+ "dependencies": {
738
+ "function-bind": "^1.1.2",
739
+ "has-proto": "^1.0.1",
740
+ "has-symbols": "^1.0.3",
741
+ "hasown": "^2.0.0"
742
+ },
743
+ "funding": {
744
+ "url": "https://github.com/sponsors/ljharb"
745
+ }
746
+ },
747
+ "node_modules/glob": {
748
+ "version": "7.2.3",
749
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
750
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
751
+ "dependencies": {
752
+ "fs.realpath": "^1.0.0",
753
+ "inflight": "^1.0.4",
754
+ "inherits": "2",
755
+ "minimatch": "^3.1.1",
756
+ "once": "^1.3.0",
757
+ "path-is-absolute": "^1.0.0"
758
+ },
759
+ "engines": {
760
+ "node": "*"
761
+ },
762
+ "funding": {
763
+ "url": "https://github.com/sponsors/isaacs"
764
+ }
765
+ },
766
+ "node_modules/gopd": {
767
+ "version": "1.0.1",
768
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
769
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
770
+ "dependencies": {
771
+ "get-intrinsic": "^1.1.3"
772
+ },
773
+ "funding": {
774
+ "url": "https://github.com/sponsors/ljharb"
775
+ }
776
+ },
777
+ "node_modules/graceful-fs": {
778
+ "version": "4.2.11",
779
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
780
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
781
+ },
782
+ "node_modules/handlebars": {
783
+ "version": "4.7.8",
784
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
785
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
786
+ "dependencies": {
787
+ "minimist": "^1.2.5",
788
+ "neo-async": "^2.6.2",
789
+ "source-map": "^0.6.1",
790
+ "wordwrap": "^1.0.0"
791
+ },
792
+ "bin": {
793
+ "handlebars": "bin/handlebars"
794
+ },
795
+ "engines": {
796
+ "node": ">=0.4.7"
797
+ },
798
+ "optionalDependencies": {
799
+ "uglify-js": "^3.1.4"
800
+ }
801
+ },
802
+ "node_modules/has-property-descriptors": {
803
+ "version": "1.0.1",
804
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
805
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
806
+ "dependencies": {
807
+ "get-intrinsic": "^1.2.2"
808
+ },
809
+ "funding": {
810
+ "url": "https://github.com/sponsors/ljharb"
811
+ }
812
+ },
813
+ "node_modules/has-proto": {
814
+ "version": "1.0.1",
815
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
816
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
817
+ "engines": {
818
+ "node": ">= 0.4"
819
+ },
820
+ "funding": {
821
+ "url": "https://github.com/sponsors/ljharb"
822
+ }
823
+ },
824
+ "node_modules/has-symbols": {
825
+ "version": "1.0.3",
826
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
827
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
828
+ "engines": {
829
+ "node": ">= 0.4"
830
+ },
831
+ "funding": {
832
+ "url": "https://github.com/sponsors/ljharb"
833
+ }
834
+ },
835
+ "node_modules/hasown": {
836
+ "version": "2.0.0",
837
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
838
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
839
+ "dependencies": {
840
+ "function-bind": "^1.1.2"
841
+ },
842
+ "engines": {
843
+ "node": ">= 0.4"
844
+ }
845
+ },
846
+ "node_modules/http-errors": {
847
+ "version": "2.0.0",
848
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
849
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
850
+ "dependencies": {
851
+ "depd": "2.0.0",
852
+ "inherits": "2.0.4",
853
+ "setprototypeof": "1.2.0",
854
+ "statuses": "2.0.1",
855
+ "toidentifier": "1.0.1"
856
+ },
857
+ "engines": {
858
+ "node": ">= 0.8"
859
+ }
860
+ },
861
+ "node_modules/iconv-lite": {
862
+ "version": "0.4.24",
863
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
864
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
865
+ "dependencies": {
866
+ "safer-buffer": ">= 2.1.2 < 3"
867
+ },
868
+ "engines": {
869
+ "node": ">=0.10.0"
870
+ }
871
+ },
872
+ "node_modules/ieee754": {
873
+ "version": "1.2.1",
874
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
875
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
876
+ "funding": [
877
+ {
878
+ "type": "github",
879
+ "url": "https://github.com/sponsors/feross"
880
+ },
881
+ {
882
+ "type": "patreon",
883
+ "url": "https://www.patreon.com/feross"
884
+ },
885
+ {
886
+ "type": "consulting",
887
+ "url": "https://feross.org/support"
888
+ }
889
+ ]
890
+ },
891
+ "node_modules/immediate": {
892
+ "version": "3.0.6",
893
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
894
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
895
+ },
896
+ "node_modules/inflight": {
897
+ "version": "1.0.6",
898
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
899
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
900
+ "dependencies": {
901
+ "once": "^1.3.0",
902
+ "wrappy": "1"
903
+ }
904
+ },
905
+ "node_modules/inherits": {
906
+ "version": "2.0.4",
907
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
908
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
909
+ },
910
+ "node_modules/ipaddr.js": {
911
+ "version": "1.9.1",
912
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
913
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
914
+ "engines": {
915
+ "node": ">= 0.10"
916
+ }
917
+ },
918
+ "node_modules/ipcheck": {
919
+ "version": "0.1.0",
920
+ "resolved": "https://registry.npmjs.org/ipcheck/-/ipcheck-0.1.0.tgz",
921
+ "integrity": "sha512-NwhrmROU0iXKa+U1quGuQ+ag+K/1Bb5V/yh5Q4SylSu/LGymPZcWB7p4u7JgJH0qOR6cTLDO5VZlRbhoeekNzQ=="
922
+ },
923
+ "node_modules/isarray": {
924
+ "version": "1.0.0",
925
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
926
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
927
+ },
928
+ "node_modules/keygrip": {
929
+ "version": "1.1.0",
930
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
931
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
932
+ "dependencies": {
933
+ "tsscmp": "1.0.6"
934
+ },
935
+ "engines": {
936
+ "node": ">= 0.6"
937
+ }
938
+ },
939
+ "node_modules/lazystream": {
940
+ "version": "1.0.1",
941
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
942
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
943
+ "dependencies": {
944
+ "readable-stream": "^2.0.5"
945
+ },
946
+ "engines": {
947
+ "node": ">= 0.6.3"
948
+ }
949
+ },
950
+ "node_modules/lazystream/node_modules/readable-stream": {
951
+ "version": "2.3.8",
952
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
953
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
954
+ "dependencies": {
955
+ "core-util-is": "~1.0.0",
956
+ "inherits": "~2.0.3",
957
+ "isarray": "~1.0.0",
958
+ "process-nextick-args": "~2.0.0",
959
+ "safe-buffer": "~5.1.1",
960
+ "string_decoder": "~1.1.1",
961
+ "util-deprecate": "~1.0.1"
962
+ }
963
+ },
964
+ "node_modules/lazystream/node_modules/string_decoder": {
965
+ "version": "1.1.1",
966
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
967
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
968
+ "dependencies": {
969
+ "safe-buffer": "~5.1.0"
970
+ }
971
+ },
972
+ "node_modules/lie": {
973
+ "version": "3.1.1",
974
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
975
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
976
+ "dependencies": {
977
+ "immediate": "~3.0.5"
978
+ }
979
+ },
980
+ "node_modules/localforage": {
981
+ "version": "1.10.0",
982
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
983
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
984
+ "dependencies": {
985
+ "lie": "3.1.1"
986
+ }
987
+ },
988
+ "node_modules/lodash.defaults": {
989
+ "version": "4.2.0",
990
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
991
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ=="
992
+ },
993
+ "node_modules/lodash.difference": {
994
+ "version": "4.5.0",
995
+ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
996
+ "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA=="
997
+ },
998
+ "node_modules/lodash.flatten": {
999
+ "version": "4.4.0",
1000
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
1001
+ "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g=="
1002
+ },
1003
+ "node_modules/lodash.isplainobject": {
1004
+ "version": "4.0.6",
1005
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1006
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
1007
+ },
1008
+ "node_modules/lodash.union": {
1009
+ "version": "4.6.0",
1010
+ "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
1011
+ "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw=="
1012
+ },
1013
+ "node_modules/media-typer": {
1014
+ "version": "0.3.0",
1015
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1016
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1017
+ "engines": {
1018
+ "node": ">= 0.6"
1019
+ }
1020
+ },
1021
+ "node_modules/merge-descriptors": {
1022
+ "version": "1.0.1",
1023
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1024
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1025
+ },
1026
+ "node_modules/methods": {
1027
+ "version": "1.1.2",
1028
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1029
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1030
+ "engines": {
1031
+ "node": ">= 0.6"
1032
+ }
1033
+ },
1034
+ "node_modules/mime": {
1035
+ "version": "1.6.0",
1036
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1037
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1038
+ "bin": {
1039
+ "mime": "cli.js"
1040
+ },
1041
+ "engines": {
1042
+ "node": ">=4"
1043
+ }
1044
+ },
1045
+ "node_modules/mime-db": {
1046
+ "version": "1.52.0",
1047
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1048
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1049
+ "engines": {
1050
+ "node": ">= 0.6"
1051
+ }
1052
+ },
1053
+ "node_modules/mime-types": {
1054
+ "version": "2.1.35",
1055
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1056
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1057
+ "dependencies": {
1058
+ "mime-db": "1.52.0"
1059
+ },
1060
+ "engines": {
1061
+ "node": ">= 0.6"
1062
+ }
1063
+ },
1064
+ "node_modules/minimatch": {
1065
+ "version": "3.1.2",
1066
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1067
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1068
+ "dependencies": {
1069
+ "brace-expansion": "^1.1.7"
1070
+ },
1071
+ "engines": {
1072
+ "node": "*"
1073
+ }
1074
+ },
1075
+ "node_modules/minimist": {
1076
+ "version": "1.2.8",
1077
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1078
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1079
+ "funding": {
1080
+ "url": "https://github.com/sponsors/ljharb"
1081
+ }
1082
+ },
1083
+ "node_modules/mkdirp": {
1084
+ "version": "1.0.4",
1085
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1086
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1087
+ "bin": {
1088
+ "mkdirp": "bin/cmd.js"
1089
+ },
1090
+ "engines": {
1091
+ "node": ">=10"
1092
+ }
1093
+ },
1094
+ "node_modules/ms": {
1095
+ "version": "2.0.0",
1096
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1097
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1098
+ },
1099
+ "node_modules/multiparty": {
1100
+ "version": "4.2.3",
1101
+ "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz",
1102
+ "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==",
1103
+ "dependencies": {
1104
+ "http-errors": "~1.8.1",
1105
+ "safe-buffer": "5.2.1",
1106
+ "uid-safe": "2.1.5"
1107
+ },
1108
+ "engines": {
1109
+ "node": ">= 0.10"
1110
+ }
1111
+ },
1112
+ "node_modules/multiparty/node_modules/depd": {
1113
+ "version": "1.1.2",
1114
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1115
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
1116
+ "engines": {
1117
+ "node": ">= 0.6"
1118
+ }
1119
+ },
1120
+ "node_modules/multiparty/node_modules/http-errors": {
1121
+ "version": "1.8.1",
1122
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
1123
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
1124
+ "dependencies": {
1125
+ "depd": "~1.1.2",
1126
+ "inherits": "2.0.4",
1127
+ "setprototypeof": "1.2.0",
1128
+ "statuses": ">= 1.5.0 < 2",
1129
+ "toidentifier": "1.0.1"
1130
+ },
1131
+ "engines": {
1132
+ "node": ">= 0.6"
1133
+ }
1134
+ },
1135
+ "node_modules/multiparty/node_modules/safe-buffer": {
1136
+ "version": "5.2.1",
1137
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1138
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1139
+ "funding": [
1140
+ {
1141
+ "type": "github",
1142
+ "url": "https://github.com/sponsors/feross"
1143
+ },
1144
+ {
1145
+ "type": "patreon",
1146
+ "url": "https://www.patreon.com/feross"
1147
+ },
1148
+ {
1149
+ "type": "consulting",
1150
+ "url": "https://feross.org/support"
1151
+ }
1152
+ ]
1153
+ },
1154
+ "node_modules/multiparty/node_modules/statuses": {
1155
+ "version": "1.5.0",
1156
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1157
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
1158
+ "engines": {
1159
+ "node": ">= 0.6"
1160
+ }
1161
+ },
1162
+ "node_modules/negotiator": {
1163
+ "version": "0.6.3",
1164
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1165
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1166
+ "engines": {
1167
+ "node": ">= 0.6"
1168
+ }
1169
+ },
1170
+ "node_modules/neo-async": {
1171
+ "version": "2.6.2",
1172
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
1173
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
1174
+ },
1175
+ "node_modules/node-forge": {
1176
+ "version": "1.3.1",
1177
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
1178
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
1179
+ "engines": {
1180
+ "node": ">= 6.13.0"
1181
+ }
1182
+ },
1183
+ "node_modules/nofilter": {
1184
+ "version": "1.0.4",
1185
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz",
1186
+ "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==",
1187
+ "engines": {
1188
+ "node": ">=8"
1189
+ }
1190
+ },
1191
+ "node_modules/normalize-path": {
1192
+ "version": "3.0.0",
1193
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1194
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1195
+ "engines": {
1196
+ "node": ">=0.10.0"
1197
+ }
1198
+ },
1199
+ "node_modules/object-inspect": {
1200
+ "version": "1.13.1",
1201
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
1202
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
1203
+ "funding": {
1204
+ "url": "https://github.com/sponsors/ljharb"
1205
+ }
1206
+ },
1207
+ "node_modules/on-finished": {
1208
+ "version": "2.4.1",
1209
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1210
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1211
+ "dependencies": {
1212
+ "ee-first": "1.1.1"
1213
+ },
1214
+ "engines": {
1215
+ "node": ">= 0.8"
1216
+ }
1217
+ },
1218
+ "node_modules/on-headers": {
1219
+ "version": "1.0.2",
1220
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
1221
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
1222
+ "engines": {
1223
+ "node": ">= 0.8"
1224
+ }
1225
+ },
1226
+ "node_modules/once": {
1227
+ "version": "1.4.0",
1228
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1229
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1230
+ "dependencies": {
1231
+ "wrappy": "1"
1232
+ }
1233
+ },
1234
+ "node_modules/otplib": {
1235
+ "version": "10.2.3",
1236
+ "resolved": "https://registry.npmjs.org/otplib/-/otplib-10.2.3.tgz",
1237
+ "integrity": "sha512-dwQTF4SkLFVZyV85JFrzCh+zSSlWHyKQtjbHrDmldxqBo6BMZ8uMfQ+kcVTf/VCkbUx1KARvn9cR/inYM2nHTw==",
1238
+ "dependencies": {
1239
+ "thirty-two": "1.0.2"
1240
+ }
1241
+ },
1242
+ "node_modules/parseurl": {
1243
+ "version": "1.3.3",
1244
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1245
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1246
+ "engines": {
1247
+ "node": ">= 0.8"
1248
+ }
1249
+ },
1250
+ "node_modules/path-is-absolute": {
1251
+ "version": "1.0.1",
1252
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1253
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1254
+ "engines": {
1255
+ "node": ">=0.10.0"
1256
+ }
1257
+ },
1258
+ "node_modules/path-to-regexp": {
1259
+ "version": "0.1.7",
1260
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1261
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1262
+ },
1263
+ "node_modules/pend": {
1264
+ "version": "1.2.0",
1265
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1266
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
1267
+ },
1268
+ "node_modules/process-nextick-args": {
1269
+ "version": "2.0.1",
1270
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1271
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1272
+ },
1273
+ "node_modules/proxy-addr": {
1274
+ "version": "2.0.7",
1275
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1276
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1277
+ "dependencies": {
1278
+ "forwarded": "0.2.0",
1279
+ "ipaddr.js": "1.9.1"
1280
+ },
1281
+ "engines": {
1282
+ "node": ">= 0.10"
1283
+ }
1284
+ },
1285
+ "node_modules/qs": {
1286
+ "version": "6.11.0",
1287
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
1288
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
1289
+ "dependencies": {
1290
+ "side-channel": "^1.0.4"
1291
+ },
1292
+ "engines": {
1293
+ "node": ">=0.6"
1294
+ },
1295
+ "funding": {
1296
+ "url": "https://github.com/sponsors/ljharb"
1297
+ }
1298
+ },
1299
+ "node_modules/random-bytes": {
1300
+ "version": "1.0.0",
1301
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
1302
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
1303
+ "engines": {
1304
+ "node": ">= 0.8"
1305
+ }
1306
+ },
1307
+ "node_modules/range-parser": {
1308
+ "version": "1.2.1",
1309
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1310
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1311
+ "engines": {
1312
+ "node": ">= 0.6"
1313
+ }
1314
+ },
1315
+ "node_modules/raw-body": {
1316
+ "version": "2.5.2",
1317
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
1318
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
1319
+ "dependencies": {
1320
+ "bytes": "3.1.2",
1321
+ "http-errors": "2.0.0",
1322
+ "iconv-lite": "0.4.24",
1323
+ "unpipe": "1.0.0"
1324
+ },
1325
+ "engines": {
1326
+ "node": ">= 0.8"
1327
+ }
1328
+ },
1329
+ "node_modules/readable-stream": {
1330
+ "version": "3.6.2",
1331
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1332
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1333
+ "dependencies": {
1334
+ "inherits": "^2.0.3",
1335
+ "string_decoder": "^1.1.1",
1336
+ "util-deprecate": "^1.0.1"
1337
+ },
1338
+ "engines": {
1339
+ "node": ">= 6"
1340
+ }
1341
+ },
1342
+ "node_modules/readdir-glob": {
1343
+ "version": "1.1.3",
1344
+ "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
1345
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
1346
+ "dependencies": {
1347
+ "minimatch": "^5.1.0"
1348
+ }
1349
+ },
1350
+ "node_modules/readdir-glob/node_modules/brace-expansion": {
1351
+ "version": "2.0.1",
1352
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1353
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1354
+ "dependencies": {
1355
+ "balanced-match": "^1.0.0"
1356
+ }
1357
+ },
1358
+ "node_modules/readdir-glob/node_modules/minimatch": {
1359
+ "version": "5.1.6",
1360
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1361
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1362
+ "dependencies": {
1363
+ "brace-expansion": "^2.0.1"
1364
+ },
1365
+ "engines": {
1366
+ "node": ">=10"
1367
+ }
1368
+ },
1369
+ "node_modules/safe-buffer": {
1370
+ "version": "5.1.2",
1371
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1372
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1373
+ },
1374
+ "node_modules/safer-buffer": {
1375
+ "version": "2.1.2",
1376
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1377
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1378
+ },
1379
+ "node_modules/send": {
1380
+ "version": "0.18.0",
1381
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1382
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1383
+ "dependencies": {
1384
+ "debug": "2.6.9",
1385
+ "depd": "2.0.0",
1386
+ "destroy": "1.2.0",
1387
+ "encodeurl": "~1.0.2",
1388
+ "escape-html": "~1.0.3",
1389
+ "etag": "~1.8.1",
1390
+ "fresh": "0.5.2",
1391
+ "http-errors": "2.0.0",
1392
+ "mime": "1.6.0",
1393
+ "ms": "2.1.3",
1394
+ "on-finished": "2.4.1",
1395
+ "range-parser": "~1.2.1",
1396
+ "statuses": "2.0.1"
1397
+ },
1398
+ "engines": {
1399
+ "node": ">= 0.8.0"
1400
+ }
1401
+ },
1402
+ "node_modules/send/node_modules/ms": {
1403
+ "version": "2.1.3",
1404
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1405
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1406
+ },
1407
+ "node_modules/serve-static": {
1408
+ "version": "1.15.0",
1409
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1410
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1411
+ "dependencies": {
1412
+ "encodeurl": "~1.0.2",
1413
+ "escape-html": "~1.0.3",
1414
+ "parseurl": "~1.3.3",
1415
+ "send": "0.18.0"
1416
+ },
1417
+ "engines": {
1418
+ "node": ">= 0.8.0"
1419
+ }
1420
+ },
1421
+ "node_modules/set-function-length": {
1422
+ "version": "1.1.1",
1423
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
1424
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
1425
+ "dependencies": {
1426
+ "define-data-property": "^1.1.1",
1427
+ "get-intrinsic": "^1.2.1",
1428
+ "gopd": "^1.0.1",
1429
+ "has-property-descriptors": "^1.0.0"
1430
+ },
1431
+ "engines": {
1432
+ "node": ">= 0.4"
1433
+ }
1434
+ },
1435
+ "node_modules/setprototypeof": {
1436
+ "version": "1.2.0",
1437
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1438
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1439
+ },
1440
+ "node_modules/side-channel": {
1441
+ "version": "1.0.4",
1442
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1443
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1444
+ "dependencies": {
1445
+ "call-bind": "^1.0.0",
1446
+ "get-intrinsic": "^1.0.2",
1447
+ "object-inspect": "^1.9.0"
1448
+ },
1449
+ "funding": {
1450
+ "url": "https://github.com/sponsors/ljharb"
1451
+ }
1452
+ },
1453
+ "node_modules/source-map": {
1454
+ "version": "0.6.1",
1455
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1456
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1457
+ "engines": {
1458
+ "node": ">=0.10.0"
1459
+ }
1460
+ },
1461
+ "node_modules/statuses": {
1462
+ "version": "2.0.1",
1463
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1464
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1465
+ "engines": {
1466
+ "node": ">= 0.8"
1467
+ }
1468
+ },
1469
+ "node_modules/string_decoder": {
1470
+ "version": "1.3.0",
1471
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1472
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1473
+ "dependencies": {
1474
+ "safe-buffer": "~5.2.0"
1475
+ }
1476
+ },
1477
+ "node_modules/string_decoder/node_modules/safe-buffer": {
1478
+ "version": "5.2.1",
1479
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1480
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1481
+ "funding": [
1482
+ {
1483
+ "type": "github",
1484
+ "url": "https://github.com/sponsors/feross"
1485
+ },
1486
+ {
1487
+ "type": "patreon",
1488
+ "url": "https://www.patreon.com/feross"
1489
+ },
1490
+ {
1491
+ "type": "consulting",
1492
+ "url": "https://feross.org/support"
1493
+ }
1494
+ ]
1495
+ },
1496
+ "node_modules/tar-stream": {
1497
+ "version": "2.2.0",
1498
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
1499
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
1500
+ "dependencies": {
1501
+ "bl": "^4.0.3",
1502
+ "end-of-stream": "^1.4.1",
1503
+ "fs-constants": "^1.0.0",
1504
+ "inherits": "^2.0.3",
1505
+ "readable-stream": "^3.1.1"
1506
+ },
1507
+ "engines": {
1508
+ "node": ">=6"
1509
+ }
1510
+ },
1511
+ "node_modules/thirty-two": {
1512
+ "version": "1.0.2",
1513
+ "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz",
1514
+ "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==",
1515
+ "engines": {
1516
+ "node": ">=0.2.6"
1517
+ }
1518
+ },
1519
+ "node_modules/toidentifier": {
1520
+ "version": "1.0.1",
1521
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1522
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1523
+ "engines": {
1524
+ "node": ">=0.6"
1525
+ }
1526
+ },
1527
+ "node_modules/tsscmp": {
1528
+ "version": "1.0.6",
1529
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
1530
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
1531
+ "engines": {
1532
+ "node": ">=0.6.x"
1533
+ }
1534
+ },
1535
+ "node_modules/type-is": {
1536
+ "version": "1.6.18",
1537
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1538
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1539
+ "dependencies": {
1540
+ "media-typer": "0.3.0",
1541
+ "mime-types": "~2.1.24"
1542
+ },
1543
+ "engines": {
1544
+ "node": ">= 0.6"
1545
+ }
1546
+ },
1547
+ "node_modules/ua-parser-js": {
1548
+ "version": "1.0.37",
1549
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
1550
+ "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==",
1551
+ "funding": [
1552
+ {
1553
+ "type": "opencollective",
1554
+ "url": "https://opencollective.com/ua-parser-js"
1555
+ },
1556
+ {
1557
+ "type": "paypal",
1558
+ "url": "https://paypal.me/faisalman"
1559
+ },
1560
+ {
1561
+ "type": "github",
1562
+ "url": "https://github.com/sponsors/faisalman"
1563
+ }
1564
+ ],
1565
+ "engines": {
1566
+ "node": "*"
1567
+ }
1568
+ },
1569
+ "node_modules/uglify-js": {
1570
+ "version": "3.17.4",
1571
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
1572
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
1573
+ "optional": true,
1574
+ "bin": {
1575
+ "uglifyjs": "bin/uglifyjs"
1576
+ },
1577
+ "engines": {
1578
+ "node": ">=0.8.0"
1579
+ }
1580
+ },
1581
+ "node_modules/uid-safe": {
1582
+ "version": "2.1.5",
1583
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
1584
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
1585
+ "dependencies": {
1586
+ "random-bytes": "~1.0.0"
1587
+ },
1588
+ "engines": {
1589
+ "node": ">= 0.8"
1590
+ }
1591
+ },
1592
+ "node_modules/underscore": {
1593
+ "version": "1.13.6",
1594
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
1595
+ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
1596
+ },
1597
+ "node_modules/unpipe": {
1598
+ "version": "1.0.0",
1599
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1600
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1601
+ "engines": {
1602
+ "node": ">= 0.8"
1603
+ }
1604
+ },
1605
+ "node_modules/util-deprecate": {
1606
+ "version": "1.0.2",
1607
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1608
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
1609
+ },
1610
+ "node_modules/utils-merge": {
1611
+ "version": "1.0.1",
1612
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1613
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
1614
+ "engines": {
1615
+ "node": ">= 0.4.0"
1616
+ }
1617
+ },
1618
+ "node_modules/vary": {
1619
+ "version": "1.1.2",
1620
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1621
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1622
+ "engines": {
1623
+ "node": ">= 0.8"
1624
+ }
1625
+ },
1626
+ "node_modules/wordwrap": {
1627
+ "version": "1.0.0",
1628
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1629
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
1630
+ },
1631
+ "node_modules/wrappy": {
1632
+ "version": "1.0.2",
1633
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1634
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1635
+ },
1636
+ "node_modules/ws": {
1637
+ "version": "8.14.2",
1638
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
1639
+ "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
1640
+ "engines": {
1641
+ "node": ">=10.0.0"
1642
+ },
1643
+ "peerDependencies": {
1644
+ "bufferutil": "^4.0.1",
1645
+ "utf-8-validate": ">=5.0.2"
1646
+ },
1647
+ "peerDependenciesMeta": {
1648
+ "bufferutil": {
1649
+ "optional": true
1650
+ },
1651
+ "utf-8-validate": {
1652
+ "optional": true
1653
+ }
1654
+ }
1655
+ },
1656
+ "node_modules/yauzl": {
1657
+ "version": "2.10.0",
1658
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
1659
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
1660
+ "dependencies": {
1661
+ "buffer-crc32": "~0.2.3",
1662
+ "fd-slicer": "~1.1.0"
1663
+ }
1664
+ },
1665
+ "node_modules/zip-stream": {
1666
+ "version": "4.1.1",
1667
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz",
1668
+ "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==",
1669
+ "dependencies": {
1670
+ "archiver-utils": "^3.0.4",
1671
+ "compress-commons": "^4.1.2",
1672
+ "readable-stream": "^3.6.0"
1673
+ },
1674
+ "engines": {
1675
+ "node": ">= 10"
1676
+ }
1677
+ },
1678
+ "node_modules/zip-stream/node_modules/archiver-utils": {
1679
+ "version": "3.0.4",
1680
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz",
1681
+ "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==",
1682
+ "dependencies": {
1683
+ "glob": "^7.2.3",
1684
+ "graceful-fs": "^4.2.0",
1685
+ "lazystream": "^1.0.0",
1686
+ "lodash.defaults": "^4.2.0",
1687
+ "lodash.difference": "^4.5.0",
1688
+ "lodash.flatten": "^4.4.0",
1689
+ "lodash.isplainobject": "^4.0.6",
1690
+ "lodash.union": "^4.6.0",
1691
+ "normalize-path": "^3.0.0",
1692
+ "readable-stream": "^3.6.0"
1693
+ },
1694
+ "engines": {
1695
+ "node": ">= 10"
1696
+ }
1697
+ }
1698
+ }
1699
+}
package.json
+1
@@ -50,6 +50,7 @@
50
"multiparty": "4.2.3",
51
"@yetzt/nedb": "1.8.0",
52
"node-forge": "1.3.1",
53
+ "otplib": "10.2.3",
54
"ua-parser-js": "1.0.37",
55
"ws": "8.14.2",
56
"yauzl": "2.10.0"
translate/translate.js
+1
-1
@@ -1108,7 +1108,7 @@ function InstallModuleEx(modulenames, func) {
1108
if ((__dirname.endsWith('/node_modules/meshcentral')) || (__dirname.endsWith('\\node_modules\\meshcentral')) || (__dirname.endsWith('/node_modules/meshcentral/')) || (__dirname.endsWith('\\node_modules\\meshcentral\\'))) { parentpath = require('path').join(__dirname, '../..'); }
1109
1110
// Looks like we need to keep a global reference to the child process object for this to work correctly.
1111
- InstallModuleChildProcess = child_process.exec(`npm install --no-audit --no-package-lock --no-optional --omit=optional --no-save ${names}`, { maxBuffer: 512000, timeout: 300000, cwd: parentpath }, function (error, stdout, stderr) {
1111
+ InstallModuleChildProcess = child_process.exec(`npm install --no-audit --no-optional --omit=optional ${names}`, { maxBuffer: 512000, timeout: 300000, cwd: parentpath }, function (error, stdout, stderr) {
1112
InstallModuleChildProcess = null;
1113
if ((error != null) && (error != '')) {
1114
log('ERROR: Unable to install required modules. May not have access to npm, or npm may not have suffisent rights to load the new modules. Try "npm install ' + names + '" to manualy install the modules.\r\n');