Jeongmin Seo

merge feature/chat branch

1 +# Logs
2 +logs
3 +*.log
4 +npm-debug.log*
5 +yarn-debug.log*
6 +yarn-error.log*
7 +lerna-debug.log*
8 +.pnpm-debug.log*
9 +
10 +# Diagnostic reports (https://nodejs.org/api/report.html)
11 +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 +
13 +# Runtime data
14 +pids
15 +*.pid
16 +*.seed
17 +*.pid.lock
18 +
19 +# Directory for instrumented libs generated by jscoverage/JSCover
20 +lib-cov
21 +
22 +# Coverage directory used by tools like istanbul
23 +coverage
24 +*.lcov
25 +
26 +# nyc test coverage
27 +.nyc_output
28 +
29 +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 +.grunt
31 +
32 +# Bower dependency directory (https://bower.io/)
33 +bower_components
34 +
35 +# node-waf configuration
36 +.lock-wscript
37 +
38 +# Compiled binary addons (https://nodejs.org/api/addons.html)
39 +build/Release
40 +
41 +# Dependency directories
42 +**node_modules/
43 +jspm_packages/
44 +
45 +# Snowpack dependency directory (https://snowpack.dev/)
46 +web_modules/
47 +
48 +# TypeScript cache
49 +*.tsbuildinfo
50 +
51 +# Optional npm cache directory
52 +.npm
53 +
54 +# Optional eslint cache
55 +.eslintcache
56 +
57 +# Microbundle cache
58 +.rpt2_cache/
59 +.rts2_cache_cjs/
60 +.rts2_cache_es/
61 +.rts2_cache_umd/
62 +
63 +# Optional REPL history
64 +.node_repl_history
65 +
66 +# Output of 'npm pack'
67 +*.tgz
68 +
69 +# Yarn Integrity file
70 +.yarn-integrity
71 +
72 +# dotenv environment variables file
73 +.env
74 +.env.test
75 +.env.production
76 +
77 +# parcel-bundler cache (https://parceljs.org/)
78 +.cache
79 +.parcel-cache
80 +
81 +# Next.js build output
82 +.next
83 +out
84 +
85 +# Nuxt.js build / generate output
86 +.nuxt
87 +dist
88 +
89 +# Gatsby files
90 +.cache/
91 +# Comment in the public line in if your project uses Gatsby and not Next.js
92 +# https://nextjs.org/blog/next-9-1#public-directory-support
93 +# public
94 +
95 +# vuepress build output
96 +.vuepress/dist
97 +
98 +# Serverless directories
99 +.serverless/
100 +
101 +# FuseBox cache
102 +.fusebox/
103 +
104 +# DynamoDB Local files
105 +.dynamodb/
106 +
107 +# TernJS port file
108 +.tern-port
109 +
110 +# Stores VSCode versions used for testing VSCode extensions
111 +.vscode-test
112 +
113 +# yarn v2
114 +.yarn/cache
115 +.yarn/unplugged
116 +.yarn/build-state.yml
117 +.yarn/install-state.gz
118 +.pnp.*
119 +
120 +#보안관련
121 +.package-lock.json
...\ No newline at end of file ...\ No newline at end of file
1 +const express = require("express");
2 +const http = require("http");
3 +const app = express();
4 +const path = require("path")
5 +const server = http.createServer(app);
6 +const socketIO = require("socket.io")
7 +const moment = require("moment")
8 +
9 +
10 +const io = socketIO(server);
11 +
12 +app.use(express.static(path.join(__dirname, "src")))
13 +const PORT = process.env.PORT || 3000;
14 +
15 +io.on('connection', (socket) => {
16 + socket.on("chatting", (data)=>{
17 + const { name, msg } = data;
18 + io.emit("chatting", {
19 + name,
20 + msg,
21 + time: moment(new Date()).format("h:ss A")
22 + })
23 + })
24 +});
25 +
26 +server.listen(PORT, ()=>console.log(`server is running ${PORT}`))
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "chat",
3 + "version": "1.0.0",
4 + "lockfileVersion": 2,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "chat",
9 + "version": "1.0.0",
10 + "license": "ISC",
11 + "dependencies": {
12 + "dayjs": "^1.11.2",
13 + "express": "^4.18.1",
14 + "moment": "^2.29.3",
15 + "socket.io": "^4.5.1"
16 + }
17 + },
18 + "node_modules/@types/component-emitter": {
19 + "version": "1.2.11",
20 + "license": "MIT"
21 + },
22 + "node_modules/@types/cookie": {
23 + "version": "0.4.1",
24 + "license": "MIT"
25 + },
26 + "node_modules/@types/cors": {
27 + "version": "2.8.12",
28 + "license": "MIT"
29 + },
30 + "node_modules/@types/node": {
31 + "version": "17.0.39",
32 + "license": "MIT"
33 + },
34 + "node_modules/accepts": {
35 + "version": "1.3.8",
36 + "license": "MIT",
37 + "dependencies": {
38 + "mime-types": "~2.1.34",
39 + "negotiator": "0.6.3"
40 + },
41 + "engines": {
42 + "node": ">= 0.6"
43 + }
44 + },
45 + "node_modules/array-flatten": {
46 + "version": "1.1.1",
47 + "license": "MIT"
48 + },
49 + "node_modules/base64id": {
50 + "version": "2.0.0",
51 + "license": "MIT",
52 + "engines": {
53 + "node": "^4.5.0 || >= 5.9"
54 + }
55 + },
56 + "node_modules/body-parser": {
57 + "version": "1.20.0",
58 + "license": "MIT",
59 + "dependencies": {
60 + "bytes": "3.1.2",
61 + "content-type": "~1.0.4",
62 + "debug": "2.6.9",
63 + "depd": "2.0.0",
64 + "destroy": "1.2.0",
65 + "http-errors": "2.0.0",
66 + "iconv-lite": "0.4.24",
67 + "on-finished": "2.4.1",
68 + "qs": "6.10.3",
69 + "raw-body": "2.5.1",
70 + "type-is": "~1.6.18",
71 + "unpipe": "1.0.0"
72 + },
73 + "engines": {
74 + "node": ">= 0.8",
75 + "npm": "1.2.8000 || >= 1.4.16"
76 + }
77 + },
78 + "node_modules/bytes": {
79 + "version": "3.1.2",
80 + "license": "MIT",
81 + "engines": {
82 + "node": ">= 0.8"
83 + }
84 + },
85 + "node_modules/call-bind": {
86 + "version": "1.0.2",
87 + "license": "MIT",
88 + "dependencies": {
89 + "function-bind": "^1.1.1",
90 + "get-intrinsic": "^1.0.2"
91 + },
92 + "funding": {
93 + "url": "https://github.com/sponsors/ljharb"
94 + }
95 + },
96 + "node_modules/component-emitter": {
97 + "version": "1.3.0",
98 + "license": "MIT"
99 + },
100 + "node_modules/content-disposition": {
101 + "version": "0.5.4",
102 + "license": "MIT",
103 + "dependencies": {
104 + "safe-buffer": "5.2.1"
105 + },
106 + "engines": {
107 + "node": ">= 0.6"
108 + }
109 + },
110 + "node_modules/content-type": {
111 + "version": "1.0.4",
112 + "license": "MIT",
113 + "engines": {
114 + "node": ">= 0.6"
115 + }
116 + },
117 + "node_modules/cookie": {
118 + "version": "0.5.0",
119 + "license": "MIT",
120 + "engines": {
121 + "node": ">= 0.6"
122 + }
123 + },
124 + "node_modules/cookie-signature": {
125 + "version": "1.0.6",
126 + "license": "MIT"
127 + },
128 + "node_modules/cors": {
129 + "version": "2.8.5",
130 + "license": "MIT",
131 + "dependencies": {
132 + "object-assign": "^4",
133 + "vary": "^1"
134 + },
135 + "engines": {
136 + "node": ">= 0.10"
137 + }
138 + },
139 + "node_modules/dayjs": {
140 + "version": "1.11.2",
141 + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz",
142 + "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
143 + },
144 + "node_modules/debug": {
145 + "version": "2.6.9",
146 + "license": "MIT",
147 + "dependencies": {
148 + "ms": "2.0.0"
149 + }
150 + },
151 + "node_modules/depd": {
152 + "version": "2.0.0",
153 + "license": "MIT",
154 + "engines": {
155 + "node": ">= 0.8"
156 + }
157 + },
158 + "node_modules/destroy": {
159 + "version": "1.2.0",
160 + "license": "MIT",
161 + "engines": {
162 + "node": ">= 0.8",
163 + "npm": "1.2.8000 || >= 1.4.16"
164 + }
165 + },
166 + "node_modules/ee-first": {
167 + "version": "1.1.1",
168 + "license": "MIT"
169 + },
170 + "node_modules/encodeurl": {
171 + "version": "1.0.2",
172 + "license": "MIT",
173 + "engines": {
174 + "node": ">= 0.8"
175 + }
176 + },
177 + "node_modules/engine.io": {
178 + "version": "6.2.0",
179 + "license": "MIT",
180 + "dependencies": {
181 + "@types/cookie": "^0.4.1",
182 + "@types/cors": "^2.8.12",
183 + "@types/node": ">=10.0.0",
184 + "accepts": "~1.3.4",
185 + "base64id": "2.0.0",
186 + "cookie": "~0.4.1",
187 + "cors": "~2.8.5",
188 + "debug": "~4.3.1",
189 + "engine.io-parser": "~5.0.3",
190 + "ws": "~8.2.3"
191 + },
192 + "engines": {
193 + "node": ">=10.0.0"
194 + }
195 + },
196 + "node_modules/engine.io-parser": {
197 + "version": "5.0.4",
198 + "license": "MIT",
199 + "engines": {
200 + "node": ">=10.0.0"
201 + }
202 + },
203 + "node_modules/engine.io/node_modules/cookie": {
204 + "version": "0.4.2",
205 + "license": "MIT",
206 + "engines": {
207 + "node": ">= 0.6"
208 + }
209 + },
210 + "node_modules/engine.io/node_modules/debug": {
211 + "version": "4.3.4",
212 + "license": "MIT",
213 + "dependencies": {
214 + "ms": "2.1.2"
215 + },
216 + "engines": {
217 + "node": ">=6.0"
218 + },
219 + "peerDependenciesMeta": {
220 + "supports-color": {
221 + "optional": true
222 + }
223 + }
224 + },
225 + "node_modules/engine.io/node_modules/ms": {
226 + "version": "2.1.2",
227 + "license": "MIT"
228 + },
229 + "node_modules/escape-html": {
230 + "version": "1.0.3",
231 + "license": "MIT"
232 + },
233 + "node_modules/etag": {
234 + "version": "1.8.1",
235 + "license": "MIT",
236 + "engines": {
237 + "node": ">= 0.6"
238 + }
239 + },
240 + "node_modules/express": {
241 + "version": "4.18.1",
242 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
243 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
244 + "dependencies": {
245 + "accepts": "~1.3.8",
246 + "array-flatten": "1.1.1",
247 + "body-parser": "1.20.0",
248 + "content-disposition": "0.5.4",
249 + "content-type": "~1.0.4",
250 + "cookie": "0.5.0",
251 + "cookie-signature": "1.0.6",
252 + "debug": "2.6.9",
253 + "depd": "2.0.0",
254 + "encodeurl": "~1.0.2",
255 + "escape-html": "~1.0.3",
256 + "etag": "~1.8.1",
257 + "finalhandler": "1.2.0",
258 + "fresh": "0.5.2",
259 + "http-errors": "2.0.0",
260 + "merge-descriptors": "1.0.1",
261 + "methods": "~1.1.2",
262 + "on-finished": "2.4.1",
263 + "parseurl": "~1.3.3",
264 + "path-to-regexp": "0.1.7",
265 + "proxy-addr": "~2.0.7",
266 + "qs": "6.10.3",
267 + "range-parser": "~1.2.1",
268 + "safe-buffer": "5.2.1",
269 + "send": "0.18.0",
270 + "serve-static": "1.15.0",
271 + "setprototypeof": "1.2.0",
272 + "statuses": "2.0.1",
273 + "type-is": "~1.6.18",
274 + "utils-merge": "1.0.1",
275 + "vary": "~1.1.2"
276 + },
277 + "engines": {
278 + "node": ">= 0.10.0"
279 + }
280 + },
281 + "node_modules/finalhandler": {
282 + "version": "1.2.0",
283 + "license": "MIT",
284 + "dependencies": {
285 + "debug": "2.6.9",
286 + "encodeurl": "~1.0.2",
287 + "escape-html": "~1.0.3",
288 + "on-finished": "2.4.1",
289 + "parseurl": "~1.3.3",
290 + "statuses": "2.0.1",
291 + "unpipe": "~1.0.0"
292 + },
293 + "engines": {
294 + "node": ">= 0.8"
295 + }
296 + },
297 + "node_modules/forwarded": {
298 + "version": "0.2.0",
299 + "license": "MIT",
300 + "engines": {
301 + "node": ">= 0.6"
302 + }
303 + },
304 + "node_modules/fresh": {
305 + "version": "0.5.2",
306 + "license": "MIT",
307 + "engines": {
308 + "node": ">= 0.6"
309 + }
310 + },
311 + "node_modules/function-bind": {
312 + "version": "1.1.1",
313 + "license": "MIT"
314 + },
315 + "node_modules/get-intrinsic": {
316 + "version": "1.1.1",
317 + "license": "MIT",
318 + "dependencies": {
319 + "function-bind": "^1.1.1",
320 + "has": "^1.0.3",
321 + "has-symbols": "^1.0.1"
322 + },
323 + "funding": {
324 + "url": "https://github.com/sponsors/ljharb"
325 + }
326 + },
327 + "node_modules/has": {
328 + "version": "1.0.3",
329 + "license": "MIT",
330 + "dependencies": {
331 + "function-bind": "^1.1.1"
332 + },
333 + "engines": {
334 + "node": ">= 0.4.0"
335 + }
336 + },
337 + "node_modules/has-symbols": {
338 + "version": "1.0.3",
339 + "license": "MIT",
340 + "engines": {
341 + "node": ">= 0.4"
342 + },
343 + "funding": {
344 + "url": "https://github.com/sponsors/ljharb"
345 + }
346 + },
347 + "node_modules/http-errors": {
348 + "version": "2.0.0",
349 + "license": "MIT",
350 + "dependencies": {
351 + "depd": "2.0.0",
352 + "inherits": "2.0.4",
353 + "setprototypeof": "1.2.0",
354 + "statuses": "2.0.1",
355 + "toidentifier": "1.0.1"
356 + },
357 + "engines": {
358 + "node": ">= 0.8"
359 + }
360 + },
361 + "node_modules/iconv-lite": {
362 + "version": "0.4.24",
363 + "license": "MIT",
364 + "dependencies": {
365 + "safer-buffer": ">= 2.1.2 < 3"
366 + },
367 + "engines": {
368 + "node": ">=0.10.0"
369 + }
370 + },
371 + "node_modules/inherits": {
372 + "version": "2.0.4",
373 + "license": "ISC"
374 + },
375 + "node_modules/ipaddr.js": {
376 + "version": "1.9.1",
377 + "license": "MIT",
378 + "engines": {
379 + "node": ">= 0.10"
380 + }
381 + },
382 + "node_modules/media-typer": {
383 + "version": "0.3.0",
384 + "license": "MIT",
385 + "engines": {
386 + "node": ">= 0.6"
387 + }
388 + },
389 + "node_modules/merge-descriptors": {
390 + "version": "1.0.1",
391 + "license": "MIT"
392 + },
393 + "node_modules/methods": {
394 + "version": "1.1.2",
395 + "license": "MIT",
396 + "engines": {
397 + "node": ">= 0.6"
398 + }
399 + },
400 + "node_modules/mime": {
401 + "version": "1.6.0",
402 + "license": "MIT",
403 + "bin": {
404 + "mime": "cli.js"
405 + },
406 + "engines": {
407 + "node": ">=4"
408 + }
409 + },
410 + "node_modules/mime-db": {
411 + "version": "1.52.0",
412 + "license": "MIT",
413 + "engines": {
414 + "node": ">= 0.6"
415 + }
416 + },
417 + "node_modules/mime-types": {
418 + "version": "2.1.35",
419 + "license": "MIT",
420 + "dependencies": {
421 + "mime-db": "1.52.0"
422 + },
423 + "engines": {
424 + "node": ">= 0.6"
425 + }
426 + },
427 + "node_modules/moment": {
428 + "version": "2.29.3",
429 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
430 + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
431 + "engines": {
432 + "node": "*"
433 + }
434 + },
435 + "node_modules/ms": {
436 + "version": "2.0.0",
437 + "license": "MIT"
438 + },
439 + "node_modules/negotiator": {
440 + "version": "0.6.3",
441 + "license": "MIT",
442 + "engines": {
443 + "node": ">= 0.6"
444 + }
445 + },
446 + "node_modules/object-assign": {
447 + "version": "4.1.1",
448 + "license": "MIT",
449 + "engines": {
450 + "node": ">=0.10.0"
451 + }
452 + },
453 + "node_modules/object-inspect": {
454 + "version": "1.12.2",
455 + "license": "MIT",
456 + "funding": {
457 + "url": "https://github.com/sponsors/ljharb"
458 + }
459 + },
460 + "node_modules/on-finished": {
461 + "version": "2.4.1",
462 + "license": "MIT",
463 + "dependencies": {
464 + "ee-first": "1.1.1"
465 + },
466 + "engines": {
467 + "node": ">= 0.8"
468 + }
469 + },
470 + "node_modules/parseurl": {
471 + "version": "1.3.3",
472 + "license": "MIT",
473 + "engines": {
474 + "node": ">= 0.8"
475 + }
476 + },
477 + "node_modules/path-to-regexp": {
478 + "version": "0.1.7",
479 + "license": "MIT"
480 + },
481 + "node_modules/proxy-addr": {
482 + "version": "2.0.7",
483 + "license": "MIT",
484 + "dependencies": {
485 + "forwarded": "0.2.0",
486 + "ipaddr.js": "1.9.1"
487 + },
488 + "engines": {
489 + "node": ">= 0.10"
490 + }
491 + },
492 + "node_modules/qs": {
493 + "version": "6.10.3",
494 + "license": "BSD-3-Clause",
495 + "dependencies": {
496 + "side-channel": "^1.0.4"
497 + },
498 + "engines": {
499 + "node": ">=0.6"
500 + },
501 + "funding": {
502 + "url": "https://github.com/sponsors/ljharb"
503 + }
504 + },
505 + "node_modules/range-parser": {
506 + "version": "1.2.1",
507 + "license": "MIT",
508 + "engines": {
509 + "node": ">= 0.6"
510 + }
511 + },
512 + "node_modules/raw-body": {
513 + "version": "2.5.1",
514 + "license": "MIT",
515 + "dependencies": {
516 + "bytes": "3.1.2",
517 + "http-errors": "2.0.0",
518 + "iconv-lite": "0.4.24",
519 + "unpipe": "1.0.0"
520 + },
521 + "engines": {
522 + "node": ">= 0.8"
523 + }
524 + },
525 + "node_modules/safe-buffer": {
526 + "version": "5.2.1",
527 + "funding": [
528 + {
529 + "type": "github",
530 + "url": "https://github.com/sponsors/feross"
531 + },
532 + {
533 + "type": "patreon",
534 + "url": "https://www.patreon.com/feross"
535 + },
536 + {
537 + "type": "consulting",
538 + "url": "https://feross.org/support"
539 + }
540 + ],
541 + "license": "MIT"
542 + },
543 + "node_modules/safer-buffer": {
544 + "version": "2.1.2",
545 + "license": "MIT"
546 + },
547 + "node_modules/send": {
548 + "version": "0.18.0",
549 + "license": "MIT",
550 + "dependencies": {
551 + "debug": "2.6.9",
552 + "depd": "2.0.0",
553 + "destroy": "1.2.0",
554 + "encodeurl": "~1.0.2",
555 + "escape-html": "~1.0.3",
556 + "etag": "~1.8.1",
557 + "fresh": "0.5.2",
558 + "http-errors": "2.0.0",
559 + "mime": "1.6.0",
560 + "ms": "2.1.3",
561 + "on-finished": "2.4.1",
562 + "range-parser": "~1.2.1",
563 + "statuses": "2.0.1"
564 + },
565 + "engines": {
566 + "node": ">= 0.8.0"
567 + }
568 + },
569 + "node_modules/send/node_modules/ms": {
570 + "version": "2.1.3",
571 + "license": "MIT"
572 + },
573 + "node_modules/serve-static": {
574 + "version": "1.15.0",
575 + "license": "MIT",
576 + "dependencies": {
577 + "encodeurl": "~1.0.2",
578 + "escape-html": "~1.0.3",
579 + "parseurl": "~1.3.3",
580 + "send": "0.18.0"
581 + },
582 + "engines": {
583 + "node": ">= 0.8.0"
584 + }
585 + },
586 + "node_modules/setprototypeof": {
587 + "version": "1.2.0",
588 + "license": "ISC"
589 + },
590 + "node_modules/side-channel": {
591 + "version": "1.0.4",
592 + "license": "MIT",
593 + "dependencies": {
594 + "call-bind": "^1.0.0",
595 + "get-intrinsic": "^1.0.2",
596 + "object-inspect": "^1.9.0"
597 + },
598 + "funding": {
599 + "url": "https://github.com/sponsors/ljharb"
600 + }
601 + },
602 + "node_modules/socket.io": {
603 + "version": "4.5.1",
604 + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
605 + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
606 + "dependencies": {
607 + "accepts": "~1.3.4",
608 + "base64id": "~2.0.0",
609 + "debug": "~4.3.2",
610 + "engine.io": "~6.2.0",
611 + "socket.io-adapter": "~2.4.0",
612 + "socket.io-parser": "~4.0.4"
613 + },
614 + "engines": {
615 + "node": ">=10.0.0"
616 + }
617 + },
618 + "node_modules/socket.io-adapter": {
619 + "version": "2.4.0",
620 + "license": "MIT"
621 + },
622 + "node_modules/socket.io-parser": {
623 + "version": "4.0.4",
624 + "license": "MIT",
625 + "dependencies": {
626 + "@types/component-emitter": "^1.2.10",
627 + "component-emitter": "~1.3.0",
628 + "debug": "~4.3.1"
629 + },
630 + "engines": {
631 + "node": ">=10.0.0"
632 + }
633 + },
634 + "node_modules/socket.io-parser/node_modules/debug": {
635 + "version": "4.3.4",
636 + "license": "MIT",
637 + "dependencies": {
638 + "ms": "2.1.2"
639 + },
640 + "engines": {
641 + "node": ">=6.0"
642 + },
643 + "peerDependenciesMeta": {
644 + "supports-color": {
645 + "optional": true
646 + }
647 + }
648 + },
649 + "node_modules/socket.io-parser/node_modules/ms": {
650 + "version": "2.1.2",
651 + "license": "MIT"
652 + },
653 + "node_modules/socket.io/node_modules/debug": {
654 + "version": "4.3.4",
655 + "license": "MIT",
656 + "dependencies": {
657 + "ms": "2.1.2"
658 + },
659 + "engines": {
660 + "node": ">=6.0"
661 + },
662 + "peerDependenciesMeta": {
663 + "supports-color": {
664 + "optional": true
665 + }
666 + }
667 + },
668 + "node_modules/socket.io/node_modules/ms": {
669 + "version": "2.1.2",
670 + "license": "MIT"
671 + },
672 + "node_modules/statuses": {
673 + "version": "2.0.1",
674 + "license": "MIT",
675 + "engines": {
676 + "node": ">= 0.8"
677 + }
678 + },
679 + "node_modules/toidentifier": {
680 + "version": "1.0.1",
681 + "license": "MIT",
682 + "engines": {
683 + "node": ">=0.6"
684 + }
685 + },
686 + "node_modules/type-is": {
687 + "version": "1.6.18",
688 + "license": "MIT",
689 + "dependencies": {
690 + "media-typer": "0.3.0",
691 + "mime-types": "~2.1.24"
692 + },
693 + "engines": {
694 + "node": ">= 0.6"
695 + }
696 + },
697 + "node_modules/unpipe": {
698 + "version": "1.0.0",
699 + "license": "MIT",
700 + "engines": {
701 + "node": ">= 0.8"
702 + }
703 + },
704 + "node_modules/utils-merge": {
705 + "version": "1.0.1",
706 + "license": "MIT",
707 + "engines": {
708 + "node": ">= 0.4.0"
709 + }
710 + },
711 + "node_modules/vary": {
712 + "version": "1.1.2",
713 + "license": "MIT",
714 + "engines": {
715 + "node": ">= 0.8"
716 + }
717 + },
718 + "node_modules/ws": {
719 + "version": "8.2.3",
720 + "license": "MIT",
721 + "engines": {
722 + "node": ">=10.0.0"
723 + },
724 + "peerDependencies": {
725 + "bufferutil": "^4.0.1",
726 + "utf-8-validate": "^5.0.2"
727 + },
728 + "peerDependenciesMeta": {
729 + "bufferutil": {
730 + "optional": true
731 + },
732 + "utf-8-validate": {
733 + "optional": true
734 + }
735 + }
736 + }
737 + },
738 + "dependencies": {
739 + "@types/component-emitter": {
740 + "version": "1.2.11"
741 + },
742 + "@types/cookie": {
743 + "version": "0.4.1"
744 + },
745 + "@types/cors": {
746 + "version": "2.8.12"
747 + },
748 + "@types/node": {
749 + "version": "17.0.39"
750 + },
751 + "accepts": {
752 + "version": "1.3.8",
753 + "requires": {
754 + "mime-types": "~2.1.34",
755 + "negotiator": "0.6.3"
756 + }
757 + },
758 + "array-flatten": {
759 + "version": "1.1.1"
760 + },
761 + "base64id": {
762 + "version": "2.0.0"
763 + },
764 + "body-parser": {
765 + "version": "1.20.0",
766 + "requires": {
767 + "bytes": "3.1.2",
768 + "content-type": "~1.0.4",
769 + "debug": "2.6.9",
770 + "depd": "2.0.0",
771 + "destroy": "1.2.0",
772 + "http-errors": "2.0.0",
773 + "iconv-lite": "0.4.24",
774 + "on-finished": "2.4.1",
775 + "qs": "6.10.3",
776 + "raw-body": "2.5.1",
777 + "type-is": "~1.6.18",
778 + "unpipe": "1.0.0"
779 + }
780 + },
781 + "bytes": {
782 + "version": "3.1.2"
783 + },
784 + "call-bind": {
785 + "version": "1.0.2",
786 + "requires": {
787 + "function-bind": "^1.1.1",
788 + "get-intrinsic": "^1.0.2"
789 + }
790 + },
791 + "component-emitter": {
792 + "version": "1.3.0"
793 + },
794 + "content-disposition": {
795 + "version": "0.5.4",
796 + "requires": {
797 + "safe-buffer": "5.2.1"
798 + }
799 + },
800 + "content-type": {
801 + "version": "1.0.4"
802 + },
803 + "cookie": {
804 + "version": "0.5.0"
805 + },
806 + "cookie-signature": {
807 + "version": "1.0.6"
808 + },
809 + "cors": {
810 + "version": "2.8.5",
811 + "requires": {
812 + "object-assign": "^4",
813 + "vary": "^1"
814 + }
815 + },
816 + "dayjs": {
817 + "version": "1.11.2",
818 + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz",
819 + "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
820 + },
821 + "debug": {
822 + "version": "2.6.9",
823 + "requires": {
824 + "ms": "2.0.0"
825 + }
826 + },
827 + "depd": {
828 + "version": "2.0.0"
829 + },
830 + "destroy": {
831 + "version": "1.2.0"
832 + },
833 + "ee-first": {
834 + "version": "1.1.1"
835 + },
836 + "encodeurl": {
837 + "version": "1.0.2"
838 + },
839 + "engine.io": {
840 + "version": "6.2.0",
841 + "requires": {
842 + "@types/cookie": "^0.4.1",
843 + "@types/cors": "^2.8.12",
844 + "@types/node": ">=10.0.0",
845 + "accepts": "~1.3.4",
846 + "base64id": "2.0.0",
847 + "cookie": "~0.4.1",
848 + "cors": "~2.8.5",
849 + "debug": "~4.3.1",
850 + "engine.io-parser": "~5.0.3",
851 + "ws": "~8.2.3"
852 + },
853 + "dependencies": {
854 + "cookie": {
855 + "version": "0.4.2"
856 + },
857 + "debug": {
858 + "version": "4.3.4",
859 + "requires": {
860 + "ms": "2.1.2"
861 + }
862 + },
863 + "ms": {
864 + "version": "2.1.2"
865 + }
866 + }
867 + },
868 + "engine.io-parser": {
869 + "version": "5.0.4"
870 + },
871 + "escape-html": {
872 + "version": "1.0.3"
873 + },
874 + "etag": {
875 + "version": "1.8.1"
876 + },
877 + "express": {
878 + "version": "4.18.1",
879 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
880 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
881 + "requires": {
882 + "accepts": "~1.3.8",
883 + "array-flatten": "1.1.1",
884 + "body-parser": "1.20.0",
885 + "content-disposition": "0.5.4",
886 + "content-type": "~1.0.4",
887 + "cookie": "0.5.0",
888 + "cookie-signature": "1.0.6",
889 + "debug": "2.6.9",
890 + "depd": "2.0.0",
891 + "encodeurl": "~1.0.2",
892 + "escape-html": "~1.0.3",
893 + "etag": "~1.8.1",
894 + "finalhandler": "1.2.0",
895 + "fresh": "0.5.2",
896 + "http-errors": "2.0.0",
897 + "merge-descriptors": "1.0.1",
898 + "methods": "~1.1.2",
899 + "on-finished": "2.4.1",
900 + "parseurl": "~1.3.3",
901 + "path-to-regexp": "0.1.7",
902 + "proxy-addr": "~2.0.7",
903 + "qs": "6.10.3",
904 + "range-parser": "~1.2.1",
905 + "safe-buffer": "5.2.1",
906 + "send": "0.18.0",
907 + "serve-static": "1.15.0",
908 + "setprototypeof": "1.2.0",
909 + "statuses": "2.0.1",
910 + "type-is": "~1.6.18",
911 + "utils-merge": "1.0.1",
912 + "vary": "~1.1.2"
913 + }
914 + },
915 + "finalhandler": {
916 + "version": "1.2.0",
917 + "requires": {
918 + "debug": "2.6.9",
919 + "encodeurl": "~1.0.2",
920 + "escape-html": "~1.0.3",
921 + "on-finished": "2.4.1",
922 + "parseurl": "~1.3.3",
923 + "statuses": "2.0.1",
924 + "unpipe": "~1.0.0"
925 + }
926 + },
927 + "forwarded": {
928 + "version": "0.2.0"
929 + },
930 + "fresh": {
931 + "version": "0.5.2"
932 + },
933 + "function-bind": {
934 + "version": "1.1.1"
935 + },
936 + "get-intrinsic": {
937 + "version": "1.1.1",
938 + "requires": {
939 + "function-bind": "^1.1.1",
940 + "has": "^1.0.3",
941 + "has-symbols": "^1.0.1"
942 + }
943 + },
944 + "has": {
945 + "version": "1.0.3",
946 + "requires": {
947 + "function-bind": "^1.1.1"
948 + }
949 + },
950 + "has-symbols": {
951 + "version": "1.0.3"
952 + },
953 + "http-errors": {
954 + "version": "2.0.0",
955 + "requires": {
956 + "depd": "2.0.0",
957 + "inherits": "2.0.4",
958 + "setprototypeof": "1.2.0",
959 + "statuses": "2.0.1",
960 + "toidentifier": "1.0.1"
961 + }
962 + },
963 + "iconv-lite": {
964 + "version": "0.4.24",
965 + "requires": {
966 + "safer-buffer": ">= 2.1.2 < 3"
967 + }
968 + },
969 + "inherits": {
970 + "version": "2.0.4"
971 + },
972 + "ipaddr.js": {
973 + "version": "1.9.1"
974 + },
975 + "media-typer": {
976 + "version": "0.3.0"
977 + },
978 + "merge-descriptors": {
979 + "version": "1.0.1"
980 + },
981 + "methods": {
982 + "version": "1.1.2"
983 + },
984 + "mime": {
985 + "version": "1.6.0"
986 + },
987 + "mime-db": {
988 + "version": "1.52.0"
989 + },
990 + "mime-types": {
991 + "version": "2.1.35",
992 + "requires": {
993 + "mime-db": "1.52.0"
994 + }
995 + },
996 + "moment": {
997 + "version": "2.29.3",
998 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
999 + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw=="
1000 + },
1001 + "ms": {
1002 + "version": "2.0.0"
1003 + },
1004 + "negotiator": {
1005 + "version": "0.6.3"
1006 + },
1007 + "object-assign": {
1008 + "version": "4.1.1"
1009 + },
1010 + "object-inspect": {
1011 + "version": "1.12.2"
1012 + },
1013 + "on-finished": {
1014 + "version": "2.4.1",
1015 + "requires": {
1016 + "ee-first": "1.1.1"
1017 + }
1018 + },
1019 + "parseurl": {
1020 + "version": "1.3.3"
1021 + },
1022 + "path-to-regexp": {
1023 + "version": "0.1.7"
1024 + },
1025 + "proxy-addr": {
1026 + "version": "2.0.7",
1027 + "requires": {
1028 + "forwarded": "0.2.0",
1029 + "ipaddr.js": "1.9.1"
1030 + }
1031 + },
1032 + "qs": {
1033 + "version": "6.10.3",
1034 + "requires": {
1035 + "side-channel": "^1.0.4"
1036 + }
1037 + },
1038 + "range-parser": {
1039 + "version": "1.2.1"
1040 + },
1041 + "raw-body": {
1042 + "version": "2.5.1",
1043 + "requires": {
1044 + "bytes": "3.1.2",
1045 + "http-errors": "2.0.0",
1046 + "iconv-lite": "0.4.24",
1047 + "unpipe": "1.0.0"
1048 + }
1049 + },
1050 + "safe-buffer": {
1051 + "version": "5.2.1"
1052 + },
1053 + "safer-buffer": {
1054 + "version": "2.1.2"
1055 + },
1056 + "send": {
1057 + "version": "0.18.0",
1058 + "requires": {
1059 + "debug": "2.6.9",
1060 + "depd": "2.0.0",
1061 + "destroy": "1.2.0",
1062 + "encodeurl": "~1.0.2",
1063 + "escape-html": "~1.0.3",
1064 + "etag": "~1.8.1",
1065 + "fresh": "0.5.2",
1066 + "http-errors": "2.0.0",
1067 + "mime": "1.6.0",
1068 + "ms": "2.1.3",
1069 + "on-finished": "2.4.1",
1070 + "range-parser": "~1.2.1",
1071 + "statuses": "2.0.1"
1072 + },
1073 + "dependencies": {
1074 + "ms": {
1075 + "version": "2.1.3"
1076 + }
1077 + }
1078 + },
1079 + "serve-static": {
1080 + "version": "1.15.0",
1081 + "requires": {
1082 + "encodeurl": "~1.0.2",
1083 + "escape-html": "~1.0.3",
1084 + "parseurl": "~1.3.3",
1085 + "send": "0.18.0"
1086 + }
1087 + },
1088 + "setprototypeof": {
1089 + "version": "1.2.0"
1090 + },
1091 + "side-channel": {
1092 + "version": "1.0.4",
1093 + "requires": {
1094 + "call-bind": "^1.0.0",
1095 + "get-intrinsic": "^1.0.2",
1096 + "object-inspect": "^1.9.0"
1097 + }
1098 + },
1099 + "socket.io": {
1100 + "version": "4.5.1",
1101 + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
1102 + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
1103 + "requires": {
1104 + "accepts": "~1.3.4",
1105 + "base64id": "~2.0.0",
1106 + "debug": "~4.3.2",
1107 + "engine.io": "~6.2.0",
1108 + "socket.io-adapter": "~2.4.0",
1109 + "socket.io-parser": "~4.0.4"
1110 + },
1111 + "dependencies": {
1112 + "debug": {
1113 + "version": "4.3.4",
1114 + "requires": {
1115 + "ms": "2.1.2"
1116 + }
1117 + },
1118 + "ms": {
1119 + "version": "2.1.2"
1120 + }
1121 + }
1122 + },
1123 + "socket.io-adapter": {
1124 + "version": "2.4.0"
1125 + },
1126 + "socket.io-parser": {
1127 + "version": "4.0.4",
1128 + "requires": {
1129 + "@types/component-emitter": "^1.2.10",
1130 + "component-emitter": "~1.3.0",
1131 + "debug": "~4.3.1"
1132 + },
1133 + "dependencies": {
1134 + "debug": {
1135 + "version": "4.3.4",
1136 + "requires": {
1137 + "ms": "2.1.2"
1138 + }
1139 + },
1140 + "ms": {
1141 + "version": "2.1.2"
1142 + }
1143 + }
1144 + },
1145 + "statuses": {
1146 + "version": "2.0.1"
1147 + },
1148 + "toidentifier": {
1149 + "version": "1.0.1"
1150 + },
1151 + "type-is": {
1152 + "version": "1.6.18",
1153 + "requires": {
1154 + "media-typer": "0.3.0",
1155 + "mime-types": "~2.1.24"
1156 + }
1157 + },
1158 + "unpipe": {
1159 + "version": "1.0.0"
1160 + },
1161 + "utils-merge": {
1162 + "version": "1.0.1"
1163 + },
1164 + "vary": {
1165 + "version": "1.1.2"
1166 + },
1167 + "ws": {
1168 + "version": "8.2.3",
1169 + "requires": {}
1170 + }
1171 + }
1172 +}
1 +{
2 + "name": "chat",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "index.js",
6 + "scripts": {
7 + "start": "nodemon ./app.js",
8 + "test": "echo \"Error: no test specified\" && exit 1"
9 + },
10 + "keywords": [],
11 + "author": "",
12 + "license": "ISC",
13 + "dependencies": {
14 + "dayjs": "^1.11.2",
15 + "express": "^4.18.1",
16 + "moment": "^2.29.3",
17 + "socket.io": "^4.5.1"
18 + }
19 +}
1 +* {
2 + margin: 0;
3 + padding: 0;
4 +}
5 +
6 +html, body {
7 + height : 100%;
8 +}
9 +
10 +.wrapper {
11 + height : 100%;
12 + width: 100%;
13 + display: flex;
14 + flex-direction: column;
15 + overflow: hidden;
16 +}
17 +
18 +.user-container {
19 + background: rebeccapurple;
20 + flex: 1;
21 + display: flex;
22 + justify-content: flex-start;
23 + align-items: center;
24 + padding: 0.5rem;
25 +}
26 +
27 +.user-container .nickname {
28 + font-size : 14px;
29 + margin-right : 1.5rem;
30 + margin-left : 1rem;
31 + color:#fff;
32 +}
33 +
34 +.user-container input {
35 + border-radius: 3px;
36 + border: none;
37 + height: 80%;
38 +}
39 +
40 +.display-container {
41 + background: #D2D2FF;
42 + flex : 12;
43 + overflow-y:scroll;
44 +}
45 +
46 +.input-container {
47 + flex:1;
48 + display:flex;
49 + justify-content: stretch;
50 + align-items: stretch;
51 +}
52 +
53 +.input-container span {
54 + display: flex;
55 + justify-content: flex-start;
56 + align-items:center;
57 + padding: 0.3rem;
58 + width: 100%;
59 +}
60 +
61 +.chatting-input {
62 + font-size:12px;
63 + height:100%;
64 + flex:8;
65 + border:none;
66 +}
67 +
68 +.send-button {
69 + flex:1;
70 + background: rebeccapurple;
71 + color:#fff;
72 + border:none;
73 + height:100%;
74 + border-radius:3px;
75 +}
76 +
77 +.chatting-list li {
78 + width:50%;
79 + padding:0.3rem;
80 + display:flex;
81 + justify-content: flex-start;
82 + align-items:flex-end;
83 + margin-top:0.5rem;
84 +}
85 +
86 +.profile {
87 + display: flex;
88 + flex-direction: column;
89 + align-items: center;
90 + justify-content: center;
91 + flex: 1;
92 +}
93 +
94 +.profile .user {
95 + font-size: 10px;
96 + margin-bottom: 0.3rem;
97 +}
98 +
99 +.profile .image {
100 + border-radius: 50%;
101 + object-fit: cover;
102 + width: 50px;
103 + height: 50px;
104 +}
105 +
106 +.message {
107 + border-radius: 5px;
108 + padding: 0.5rem;
109 + font-size: 12px;
110 + margin: 0 5px;
111 + flex: 10;
112 +}
113 +
114 +.time {
115 + font-size: 10px;
116 + margin: 0 5px;
117 +}
118 +
119 +.sent {
120 + flex-direction: row-reverse;
121 + float: right;
122 +}
123 +
124 +.sent .message {
125 + background: #9986EE;
126 + color: #fff;
127 +}
128 +
129 +.received .message {
130 + background: #fff;
131 +}
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset="UTF-8">
5 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 + <title>Document</title>
8 + <link rel="stylesheet" href="css/style.css">
9 +</head>
10 +<body>
11 + <div class="wrapper">
12 + <div class="user-container">
13 + <lable class="nickname" for="nickname">닉네임설정</lable>
14 + <input type="text" id="nickname">
15 + </div>
16 + <div class="display-container">
17 + <ul class="chatting-list">
18 +
19 + </ul>
20 + </div>
21 + <div class="input-container">
22 + <span>
23 + <input type="text" class="chatting-input">
24 + <button class="send-button">전송</button>
25 + </span>
26 + </div>
27 + </div>
28 +
29 + <script src="/socket.io/socket.io.js"></script>
30 + <script src="js/chat.js"></script>
31 +</body>
32 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +"use strict"
2 +//const socket = io.connect("http://localhost:3000/", {transports:['websocket']});
3 +const socket = io();
4 +
5 +const nickname = document.querySelector("#nickname")
6 +const chatlist = document.querySelector(".chatting-list")
7 +const chatInput = document.querySelector(".chatting-input")
8 +const sendButton = document.querySelector(".send-button")
9 +const displayContainer = document.querySelector(".display-container")
10 +
11 +chatInput.addEventListener("keypress", (event)=> {
12 + if(event.keyCode === 13) {
13 + send()
14 + }
15 +})
16 +
17 +function send() {
18 + const param = {
19 + name: nickname.value,
20 + msg: chatInput.value
21 + }
22 + socket.emit("chatting", param)
23 +}
24 +
25 +sendButton.addEventListener("click", send)
26 +
27 +socket.on("chatting", (data)=>{
28 + console.log(data)
29 + const {name, msg, time} = data;
30 + const item = new LiModel(name, msg, time);
31 + item.makeLi()
32 + displayContainer.scrollTo(0, displayContainer.scrollHeight)
33 +})
34 +
35 +//console.log(socket);
36 +
37 +function LiModel(name, msg, time) {
38 + this.name = name;
39 + this.msg = msg;
40 + this.time = time;
41 +
42 + this.makeLi = ()=>{
43 + const li = document.createElement("li");
44 + li.classList.add(nickname.value === this.name ? "sent":"received")
45 + const dom = `<span class="profile">
46 + <span class="user">${this.name}</span>
47 + <img class="image" src="https://placeimg.com/50/50/any" alt="any">
48 + </span>
49 + <span class="message">${this.msg}</span>
50 + <span class="time">${this.time}</span>`;
51 +
52 + li.innerHTML = dom;
53 + chatlist.appendChild(li)
54 + }
55 +}
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "chat",
3 + "version": "1.0.0",
4 + "lockfileVersion": 2,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "chat",
9 + "version": "1.0.0",
10 + "license": "ISC",
11 + "dependencies": {
12 + "express": "^4.18.1",
13 + "moment": "^2.29.3",
14 + "socket.io": "^4.5.1"
15 + }
16 + },
17 + "node_modules/@types/component-emitter": {
18 + "version": "1.2.11",
19 + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
20 + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ=="
21 + },
22 + "node_modules/@types/cookie": {
23 + "version": "0.4.1",
24 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
25 + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
26 + },
27 + "node_modules/@types/cors": {
28 + "version": "2.8.12",
29 + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
30 + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
31 + },
32 + "node_modules/@types/node": {
33 + "version": "17.0.39",
34 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz",
35 + "integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw=="
36 + },
37 + "node_modules/accepts": {
38 + "version": "1.3.8",
39 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
40 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
41 + "dependencies": {
42 + "mime-types": "~2.1.34",
43 + "negotiator": "0.6.3"
44 + },
45 + "engines": {
46 + "node": ">= 0.6"
47 + }
48 + },
49 + "node_modules/array-flatten": {
50 + "version": "1.1.1",
51 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
52 + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
53 + },
54 + "node_modules/base64id": {
55 + "version": "2.0.0",
56 + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
57 + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
58 + "engines": {
59 + "node": "^4.5.0 || >= 5.9"
60 + }
61 + },
62 + "node_modules/body-parser": {
63 + "version": "1.20.0",
64 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
65 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
66 + "dependencies": {
67 + "bytes": "3.1.2",
68 + "content-type": "~1.0.4",
69 + "debug": "2.6.9",
70 + "depd": "2.0.0",
71 + "destroy": "1.2.0",
72 + "http-errors": "2.0.0",
73 + "iconv-lite": "0.4.24",
74 + "on-finished": "2.4.1",
75 + "qs": "6.10.3",
76 + "raw-body": "2.5.1",
77 + "type-is": "~1.6.18",
78 + "unpipe": "1.0.0"
79 + },
80 + "engines": {
81 + "node": ">= 0.8",
82 + "npm": "1.2.8000 || >= 1.4.16"
83 + }
84 + },
85 + "node_modules/bytes": {
86 + "version": "3.1.2",
87 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
88 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
89 + "engines": {
90 + "node": ">= 0.8"
91 + }
92 + },
93 + "node_modules/call-bind": {
94 + "version": "1.0.2",
95 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
96 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
97 + "dependencies": {
98 + "function-bind": "^1.1.1",
99 + "get-intrinsic": "^1.0.2"
100 + },
101 + "funding": {
102 + "url": "https://github.com/sponsors/ljharb"
103 + }
104 + },
105 + "node_modules/component-emitter": {
106 + "version": "1.3.0",
107 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
108 + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
109 + },
110 + "node_modules/content-disposition": {
111 + "version": "0.5.4",
112 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
113 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
114 + "dependencies": {
115 + "safe-buffer": "5.2.1"
116 + },
117 + "engines": {
118 + "node": ">= 0.6"
119 + }
120 + },
121 + "node_modules/content-type": {
122 + "version": "1.0.4",
123 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
124 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
125 + "engines": {
126 + "node": ">= 0.6"
127 + }
128 + },
129 + "node_modules/cookie": {
130 + "version": "0.5.0",
131 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
132 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
133 + "engines": {
134 + "node": ">= 0.6"
135 + }
136 + },
137 + "node_modules/cookie-signature": {
138 + "version": "1.0.6",
139 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
140 + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
141 + },
142 + "node_modules/cors": {
143 + "version": "2.8.5",
144 + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
145 + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
146 + "dependencies": {
147 + "object-assign": "^4",
148 + "vary": "^1"
149 + },
150 + "engines": {
151 + "node": ">= 0.10"
152 + }
153 + },
154 + "node_modules/debug": {
155 + "version": "2.6.9",
156 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
157 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
158 + "dependencies": {
159 + "ms": "2.0.0"
160 + }
161 + },
162 + "node_modules/depd": {
163 + "version": "2.0.0",
164 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
165 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
166 + "engines": {
167 + "node": ">= 0.8"
168 + }
169 + },
170 + "node_modules/destroy": {
171 + "version": "1.2.0",
172 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
173 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
174 + "engines": {
175 + "node": ">= 0.8",
176 + "npm": "1.2.8000 || >= 1.4.16"
177 + }
178 + },
179 + "node_modules/ee-first": {
180 + "version": "1.1.1",
181 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
182 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
183 + },
184 + "node_modules/encodeurl": {
185 + "version": "1.0.2",
186 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
187 + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
188 + "engines": {
189 + "node": ">= 0.8"
190 + }
191 + },
192 + "node_modules/engine.io": {
193 + "version": "6.2.0",
194 + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz",
195 + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==",
196 + "dependencies": {
197 + "@types/cookie": "^0.4.1",
198 + "@types/cors": "^2.8.12",
199 + "@types/node": ">=10.0.0",
200 + "accepts": "~1.3.4",
201 + "base64id": "2.0.0",
202 + "cookie": "~0.4.1",
203 + "cors": "~2.8.5",
204 + "debug": "~4.3.1",
205 + "engine.io-parser": "~5.0.3",
206 + "ws": "~8.2.3"
207 + },
208 + "engines": {
209 + "node": ">=10.0.0"
210 + }
211 + },
212 + "node_modules/engine.io-parser": {
213 + "version": "5.0.4",
214 + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
215 + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
216 + "engines": {
217 + "node": ">=10.0.0"
218 + }
219 + },
220 + "node_modules/engine.io/node_modules/cookie": {
221 + "version": "0.4.2",
222 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
223 + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
224 + "engines": {
225 + "node": ">= 0.6"
226 + }
227 + },
228 + "node_modules/engine.io/node_modules/debug": {
229 + "version": "4.3.4",
230 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
231 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
232 + "dependencies": {
233 + "ms": "2.1.2"
234 + },
235 + "engines": {
236 + "node": ">=6.0"
237 + },
238 + "peerDependenciesMeta": {
239 + "supports-color": {
240 + "optional": true
241 + }
242 + }
243 + },
244 + "node_modules/engine.io/node_modules/ms": {
245 + "version": "2.1.2",
246 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
247 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
248 + },
249 + "node_modules/escape-html": {
250 + "version": "1.0.3",
251 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
252 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
253 + },
254 + "node_modules/etag": {
255 + "version": "1.8.1",
256 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
257 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
258 + "engines": {
259 + "node": ">= 0.6"
260 + }
261 + },
262 + "node_modules/express": {
263 + "version": "4.18.1",
264 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
265 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
266 + "dependencies": {
267 + "accepts": "~1.3.8",
268 + "array-flatten": "1.1.1",
269 + "body-parser": "1.20.0",
270 + "content-disposition": "0.5.4",
271 + "content-type": "~1.0.4",
272 + "cookie": "0.5.0",
273 + "cookie-signature": "1.0.6",
274 + "debug": "2.6.9",
275 + "depd": "2.0.0",
276 + "encodeurl": "~1.0.2",
277 + "escape-html": "~1.0.3",
278 + "etag": "~1.8.1",
279 + "finalhandler": "1.2.0",
280 + "fresh": "0.5.2",
281 + "http-errors": "2.0.0",
282 + "merge-descriptors": "1.0.1",
283 + "methods": "~1.1.2",
284 + "on-finished": "2.4.1",
285 + "parseurl": "~1.3.3",
286 + "path-to-regexp": "0.1.7",
287 + "proxy-addr": "~2.0.7",
288 + "qs": "6.10.3",
289 + "range-parser": "~1.2.1",
290 + "safe-buffer": "5.2.1",
291 + "send": "0.18.0",
292 + "serve-static": "1.15.0",
293 + "setprototypeof": "1.2.0",
294 + "statuses": "2.0.1",
295 + "type-is": "~1.6.18",
296 + "utils-merge": "1.0.1",
297 + "vary": "~1.1.2"
298 + },
299 + "engines": {
300 + "node": ">= 0.10.0"
301 + }
302 + },
303 + "node_modules/finalhandler": {
304 + "version": "1.2.0",
305 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
306 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
307 + "dependencies": {
308 + "debug": "2.6.9",
309 + "encodeurl": "~1.0.2",
310 + "escape-html": "~1.0.3",
311 + "on-finished": "2.4.1",
312 + "parseurl": "~1.3.3",
313 + "statuses": "2.0.1",
314 + "unpipe": "~1.0.0"
315 + },
316 + "engines": {
317 + "node": ">= 0.8"
318 + }
319 + },
320 + "node_modules/forwarded": {
321 + "version": "0.2.0",
322 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
323 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
324 + "engines": {
325 + "node": ">= 0.6"
326 + }
327 + },
328 + "node_modules/fresh": {
329 + "version": "0.5.2",
330 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
331 + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
332 + "engines": {
333 + "node": ">= 0.6"
334 + }
335 + },
336 + "node_modules/function-bind": {
337 + "version": "1.1.1",
338 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
339 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
340 + },
341 + "node_modules/get-intrinsic": {
342 + "version": "1.1.1",
343 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
344 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
345 + "dependencies": {
346 + "function-bind": "^1.1.1",
347 + "has": "^1.0.3",
348 + "has-symbols": "^1.0.1"
349 + },
350 + "funding": {
351 + "url": "https://github.com/sponsors/ljharb"
352 + }
353 + },
354 + "node_modules/has": {
355 + "version": "1.0.3",
356 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
357 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
358 + "dependencies": {
359 + "function-bind": "^1.1.1"
360 + },
361 + "engines": {
362 + "node": ">= 0.4.0"
363 + }
364 + },
365 + "node_modules/has-symbols": {
366 + "version": "1.0.3",
367 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
368 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
369 + "engines": {
370 + "node": ">= 0.4"
371 + },
372 + "funding": {
373 + "url": "https://github.com/sponsors/ljharb"
374 + }
375 + },
376 + "node_modules/http-errors": {
377 + "version": "2.0.0",
378 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
379 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
380 + "dependencies": {
381 + "depd": "2.0.0",
382 + "inherits": "2.0.4",
383 + "setprototypeof": "1.2.0",
384 + "statuses": "2.0.1",
385 + "toidentifier": "1.0.1"
386 + },
387 + "engines": {
388 + "node": ">= 0.8"
389 + }
390 + },
391 + "node_modules/iconv-lite": {
392 + "version": "0.4.24",
393 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
394 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
395 + "dependencies": {
396 + "safer-buffer": ">= 2.1.2 < 3"
397 + },
398 + "engines": {
399 + "node": ">=0.10.0"
400 + }
401 + },
402 + "node_modules/inherits": {
403 + "version": "2.0.4",
404 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
405 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
406 + },
407 + "node_modules/ipaddr.js": {
408 + "version": "1.9.1",
409 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
410 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
411 + "engines": {
412 + "node": ">= 0.10"
413 + }
414 + },
415 + "node_modules/media-typer": {
416 + "version": "0.3.0",
417 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
418 + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
419 + "engines": {
420 + "node": ">= 0.6"
421 + }
422 + },
423 + "node_modules/merge-descriptors": {
424 + "version": "1.0.1",
425 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
426 + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
427 + },
428 + "node_modules/methods": {
429 + "version": "1.1.2",
430 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
431 + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
432 + "engines": {
433 + "node": ">= 0.6"
434 + }
435 + },
436 + "node_modules/mime": {
437 + "version": "1.6.0",
438 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
439 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
440 + "bin": {
441 + "mime": "cli.js"
442 + },
443 + "engines": {
444 + "node": ">=4"
445 + }
446 + },
447 + "node_modules/mime-db": {
448 + "version": "1.52.0",
449 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
450 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
451 + "engines": {
452 + "node": ">= 0.6"
453 + }
454 + },
455 + "node_modules/mime-types": {
456 + "version": "2.1.35",
457 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
458 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
459 + "dependencies": {
460 + "mime-db": "1.52.0"
461 + },
462 + "engines": {
463 + "node": ">= 0.6"
464 + }
465 + },
466 + "node_modules/moment": {
467 + "version": "2.29.3",
468 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
469 + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
470 + "engines": {
471 + "node": "*"
472 + }
473 + },
474 + "node_modules/ms": {
475 + "version": "2.0.0",
476 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
477 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
478 + },
479 + "node_modules/negotiator": {
480 + "version": "0.6.3",
481 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
482 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
483 + "engines": {
484 + "node": ">= 0.6"
485 + }
486 + },
487 + "node_modules/object-assign": {
488 + "version": "4.1.1",
489 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
490 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
491 + "engines": {
492 + "node": ">=0.10.0"
493 + }
494 + },
495 + "node_modules/object-inspect": {
496 + "version": "1.12.2",
497 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
498 + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
499 + "funding": {
500 + "url": "https://github.com/sponsors/ljharb"
501 + }
502 + },
503 + "node_modules/on-finished": {
504 + "version": "2.4.1",
505 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
506 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
507 + "dependencies": {
508 + "ee-first": "1.1.1"
509 + },
510 + "engines": {
511 + "node": ">= 0.8"
512 + }
513 + },
514 + "node_modules/parseurl": {
515 + "version": "1.3.3",
516 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
517 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
518 + "engines": {
519 + "node": ">= 0.8"
520 + }
521 + },
522 + "node_modules/path-to-regexp": {
523 + "version": "0.1.7",
524 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
525 + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
526 + },
527 + "node_modules/proxy-addr": {
528 + "version": "2.0.7",
529 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
530 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
531 + "dependencies": {
532 + "forwarded": "0.2.0",
533 + "ipaddr.js": "1.9.1"
534 + },
535 + "engines": {
536 + "node": ">= 0.10"
537 + }
538 + },
539 + "node_modules/qs": {
540 + "version": "6.10.3",
541 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
542 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
543 + "dependencies": {
544 + "side-channel": "^1.0.4"
545 + },
546 + "engines": {
547 + "node": ">=0.6"
548 + },
549 + "funding": {
550 + "url": "https://github.com/sponsors/ljharb"
551 + }
552 + },
553 + "node_modules/range-parser": {
554 + "version": "1.2.1",
555 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
556 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
557 + "engines": {
558 + "node": ">= 0.6"
559 + }
560 + },
561 + "node_modules/raw-body": {
562 + "version": "2.5.1",
563 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
564 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
565 + "dependencies": {
566 + "bytes": "3.1.2",
567 + "http-errors": "2.0.0",
568 + "iconv-lite": "0.4.24",
569 + "unpipe": "1.0.0"
570 + },
571 + "engines": {
572 + "node": ">= 0.8"
573 + }
574 + },
575 + "node_modules/safe-buffer": {
576 + "version": "5.2.1",
577 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
578 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
579 + "funding": [
580 + {
581 + "type": "github",
582 + "url": "https://github.com/sponsors/feross"
583 + },
584 + {
585 + "type": "patreon",
586 + "url": "https://www.patreon.com/feross"
587 + },
588 + {
589 + "type": "consulting",
590 + "url": "https://feross.org/support"
591 + }
592 + ]
593 + },
594 + "node_modules/safer-buffer": {
595 + "version": "2.1.2",
596 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
597 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
598 + },
599 + "node_modules/send": {
600 + "version": "0.18.0",
601 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
602 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
603 + "dependencies": {
604 + "debug": "2.6.9",
605 + "depd": "2.0.0",
606 + "destroy": "1.2.0",
607 + "encodeurl": "~1.0.2",
608 + "escape-html": "~1.0.3",
609 + "etag": "~1.8.1",
610 + "fresh": "0.5.2",
611 + "http-errors": "2.0.0",
612 + "mime": "1.6.0",
613 + "ms": "2.1.3",
614 + "on-finished": "2.4.1",
615 + "range-parser": "~1.2.1",
616 + "statuses": "2.0.1"
617 + },
618 + "engines": {
619 + "node": ">= 0.8.0"
620 + }
621 + },
622 + "node_modules/send/node_modules/ms": {
623 + "version": "2.1.3",
624 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
625 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
626 + },
627 + "node_modules/serve-static": {
628 + "version": "1.15.0",
629 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
630 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
631 + "dependencies": {
632 + "encodeurl": "~1.0.2",
633 + "escape-html": "~1.0.3",
634 + "parseurl": "~1.3.3",
635 + "send": "0.18.0"
636 + },
637 + "engines": {
638 + "node": ">= 0.8.0"
639 + }
640 + },
641 + "node_modules/setprototypeof": {
642 + "version": "1.2.0",
643 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
644 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
645 + },
646 + "node_modules/side-channel": {
647 + "version": "1.0.4",
648 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
649 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
650 + "dependencies": {
651 + "call-bind": "^1.0.0",
652 + "get-intrinsic": "^1.0.2",
653 + "object-inspect": "^1.9.0"
654 + },
655 + "funding": {
656 + "url": "https://github.com/sponsors/ljharb"
657 + }
658 + },
659 + "node_modules/socket.io": {
660 + "version": "4.5.1",
661 + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
662 + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
663 + "dependencies": {
664 + "accepts": "~1.3.4",
665 + "base64id": "~2.0.0",
666 + "debug": "~4.3.2",
667 + "engine.io": "~6.2.0",
668 + "socket.io-adapter": "~2.4.0",
669 + "socket.io-parser": "~4.0.4"
670 + },
671 + "engines": {
672 + "node": ">=10.0.0"
673 + }
674 + },
675 + "node_modules/socket.io-adapter": {
676 + "version": "2.4.0",
677 + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
678 + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
679 + },
680 + "node_modules/socket.io-parser": {
681 + "version": "4.0.4",
682 + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
683 + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
684 + "dependencies": {
685 + "@types/component-emitter": "^1.2.10",
686 + "component-emitter": "~1.3.0",
687 + "debug": "~4.3.1"
688 + },
689 + "engines": {
690 + "node": ">=10.0.0"
691 + }
692 + },
693 + "node_modules/socket.io-parser/node_modules/debug": {
694 + "version": "4.3.4",
695 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
696 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
697 + "dependencies": {
698 + "ms": "2.1.2"
699 + },
700 + "engines": {
701 + "node": ">=6.0"
702 + },
703 + "peerDependenciesMeta": {
704 + "supports-color": {
705 + "optional": true
706 + }
707 + }
708 + },
709 + "node_modules/socket.io-parser/node_modules/ms": {
710 + "version": "2.1.2",
711 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
712 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
713 + },
714 + "node_modules/socket.io/node_modules/debug": {
715 + "version": "4.3.4",
716 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
717 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
718 + "dependencies": {
719 + "ms": "2.1.2"
720 + },
721 + "engines": {
722 + "node": ">=6.0"
723 + },
724 + "peerDependenciesMeta": {
725 + "supports-color": {
726 + "optional": true
727 + }
728 + }
729 + },
730 + "node_modules/socket.io/node_modules/ms": {
731 + "version": "2.1.2",
732 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
733 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
734 + },
735 + "node_modules/statuses": {
736 + "version": "2.0.1",
737 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
738 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
739 + "engines": {
740 + "node": ">= 0.8"
741 + }
742 + },
743 + "node_modules/toidentifier": {
744 + "version": "1.0.1",
745 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
746 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
747 + "engines": {
748 + "node": ">=0.6"
749 + }
750 + },
751 + "node_modules/type-is": {
752 + "version": "1.6.18",
753 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
754 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
755 + "dependencies": {
756 + "media-typer": "0.3.0",
757 + "mime-types": "~2.1.24"
758 + },
759 + "engines": {
760 + "node": ">= 0.6"
761 + }
762 + },
763 + "node_modules/unpipe": {
764 + "version": "1.0.0",
765 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
766 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
767 + "engines": {
768 + "node": ">= 0.8"
769 + }
770 + },
771 + "node_modules/utils-merge": {
772 + "version": "1.0.1",
773 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
774 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
775 + "engines": {
776 + "node": ">= 0.4.0"
777 + }
778 + },
779 + "node_modules/vary": {
780 + "version": "1.1.2",
781 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
782 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
783 + "engines": {
784 + "node": ">= 0.8"
785 + }
786 + },
787 + "node_modules/ws": {
788 + "version": "8.2.3",
789 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
790 + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
791 + "engines": {
792 + "node": ">=10.0.0"
793 + },
794 + "peerDependencies": {
795 + "bufferutil": "^4.0.1",
796 + "utf-8-validate": "^5.0.2"
797 + },
798 + "peerDependenciesMeta": {
799 + "bufferutil": {
800 + "optional": true
801 + },
802 + "utf-8-validate": {
803 + "optional": true
804 + }
805 + }
806 + }
807 + },
808 + "dependencies": {
809 + "@types/component-emitter": {
810 + "version": "1.2.11",
811 + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
812 + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ=="
813 + },
814 + "@types/cookie": {
815 + "version": "0.4.1",
816 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
817 + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
818 + },
819 + "@types/cors": {
820 + "version": "2.8.12",
821 + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
822 + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
823 + },
824 + "@types/node": {
825 + "version": "17.0.39",
826 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz",
827 + "integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw=="
828 + },
829 + "accepts": {
830 + "version": "1.3.8",
831 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
832 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
833 + "requires": {
834 + "mime-types": "~2.1.34",
835 + "negotiator": "0.6.3"
836 + }
837 + },
838 + "array-flatten": {
839 + "version": "1.1.1",
840 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
841 + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
842 + },
843 + "base64id": {
844 + "version": "2.0.0",
845 + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
846 + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
847 + },
848 + "body-parser": {
849 + "version": "1.20.0",
850 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
851 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
852 + "requires": {
853 + "bytes": "3.1.2",
854 + "content-type": "~1.0.4",
855 + "debug": "2.6.9",
856 + "depd": "2.0.0",
857 + "destroy": "1.2.0",
858 + "http-errors": "2.0.0",
859 + "iconv-lite": "0.4.24",
860 + "on-finished": "2.4.1",
861 + "qs": "6.10.3",
862 + "raw-body": "2.5.1",
863 + "type-is": "~1.6.18",
864 + "unpipe": "1.0.0"
865 + }
866 + },
867 + "bytes": {
868 + "version": "3.1.2",
869 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
870 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
871 + },
872 + "call-bind": {
873 + "version": "1.0.2",
874 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
875 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
876 + "requires": {
877 + "function-bind": "^1.1.1",
878 + "get-intrinsic": "^1.0.2"
879 + }
880 + },
881 + "component-emitter": {
882 + "version": "1.3.0",
883 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
884 + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
885 + },
886 + "content-disposition": {
887 + "version": "0.5.4",
888 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
889 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
890 + "requires": {
891 + "safe-buffer": "5.2.1"
892 + }
893 + },
894 + "content-type": {
895 + "version": "1.0.4",
896 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
897 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
898 + },
899 + "cookie": {
900 + "version": "0.5.0",
901 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
902 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
903 + },
904 + "cookie-signature": {
905 + "version": "1.0.6",
906 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
907 + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
908 + },
909 + "cors": {
910 + "version": "2.8.5",
911 + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
912 + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
913 + "requires": {
914 + "object-assign": "^4",
915 + "vary": "^1"
916 + }
917 + },
918 + "debug": {
919 + "version": "2.6.9",
920 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
921 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
922 + "requires": {
923 + "ms": "2.0.0"
924 + }
925 + },
926 + "depd": {
927 + "version": "2.0.0",
928 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
929 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
930 + },
931 + "destroy": {
932 + "version": "1.2.0",
933 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
934 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
935 + },
936 + "ee-first": {
937 + "version": "1.1.1",
938 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
939 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
940 + },
941 + "encodeurl": {
942 + "version": "1.0.2",
943 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
944 + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
945 + },
946 + "engine.io": {
947 + "version": "6.2.0",
948 + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz",
949 + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==",
950 + "requires": {
951 + "@types/cookie": "^0.4.1",
952 + "@types/cors": "^2.8.12",
953 + "@types/node": ">=10.0.0",
954 + "accepts": "~1.3.4",
955 + "base64id": "2.0.0",
956 + "cookie": "~0.4.1",
957 + "cors": "~2.8.5",
958 + "debug": "~4.3.1",
959 + "engine.io-parser": "~5.0.3",
960 + "ws": "~8.2.3"
961 + },
962 + "dependencies": {
963 + "cookie": {
964 + "version": "0.4.2",
965 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
966 + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
967 + },
968 + "debug": {
969 + "version": "4.3.4",
970 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
971 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
972 + "requires": {
973 + "ms": "2.1.2"
974 + }
975 + },
976 + "ms": {
977 + "version": "2.1.2",
978 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
979 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
980 + }
981 + }
982 + },
983 + "engine.io-parser": {
984 + "version": "5.0.4",
985 + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
986 + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg=="
987 + },
988 + "escape-html": {
989 + "version": "1.0.3",
990 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
991 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
992 + },
993 + "etag": {
994 + "version": "1.8.1",
995 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
996 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
997 + },
998 + "express": {
999 + "version": "4.18.1",
1000 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
1001 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
1002 + "requires": {
1003 + "accepts": "~1.3.8",
1004 + "array-flatten": "1.1.1",
1005 + "body-parser": "1.20.0",
1006 + "content-disposition": "0.5.4",
1007 + "content-type": "~1.0.4",
1008 + "cookie": "0.5.0",
1009 + "cookie-signature": "1.0.6",
1010 + "debug": "2.6.9",
1011 + "depd": "2.0.0",
1012 + "encodeurl": "~1.0.2",
1013 + "escape-html": "~1.0.3",
1014 + "etag": "~1.8.1",
1015 + "finalhandler": "1.2.0",
1016 + "fresh": "0.5.2",
1017 + "http-errors": "2.0.0",
1018 + "merge-descriptors": "1.0.1",
1019 + "methods": "~1.1.2",
1020 + "on-finished": "2.4.1",
1021 + "parseurl": "~1.3.3",
1022 + "path-to-regexp": "0.1.7",
1023 + "proxy-addr": "~2.0.7",
1024 + "qs": "6.10.3",
1025 + "range-parser": "~1.2.1",
1026 + "safe-buffer": "5.2.1",
1027 + "send": "0.18.0",
1028 + "serve-static": "1.15.0",
1029 + "setprototypeof": "1.2.0",
1030 + "statuses": "2.0.1",
1031 + "type-is": "~1.6.18",
1032 + "utils-merge": "1.0.1",
1033 + "vary": "~1.1.2"
1034 + }
1035 + },
1036 + "finalhandler": {
1037 + "version": "1.2.0",
1038 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
1039 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
1040 + "requires": {
1041 + "debug": "2.6.9",
1042 + "encodeurl": "~1.0.2",
1043 + "escape-html": "~1.0.3",
1044 + "on-finished": "2.4.1",
1045 + "parseurl": "~1.3.3",
1046 + "statuses": "2.0.1",
1047 + "unpipe": "~1.0.0"
1048 + }
1049 + },
1050 + "forwarded": {
1051 + "version": "0.2.0",
1052 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1053 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
1054 + },
1055 + "fresh": {
1056 + "version": "0.5.2",
1057 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1058 + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
1059 + },
1060 + "function-bind": {
1061 + "version": "1.1.1",
1062 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1063 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1064 + },
1065 + "get-intrinsic": {
1066 + "version": "1.1.1",
1067 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1068 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1069 + "requires": {
1070 + "function-bind": "^1.1.1",
1071 + "has": "^1.0.3",
1072 + "has-symbols": "^1.0.1"
1073 + }
1074 + },
1075 + "has": {
1076 + "version": "1.0.3",
1077 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1078 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1079 + "requires": {
1080 + "function-bind": "^1.1.1"
1081 + }
1082 + },
1083 + "has-symbols": {
1084 + "version": "1.0.3",
1085 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1086 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1087 + },
1088 + "http-errors": {
1089 + "version": "2.0.0",
1090 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1091 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1092 + "requires": {
1093 + "depd": "2.0.0",
1094 + "inherits": "2.0.4",
1095 + "setprototypeof": "1.2.0",
1096 + "statuses": "2.0.1",
1097 + "toidentifier": "1.0.1"
1098 + }
1099 + },
1100 + "iconv-lite": {
1101 + "version": "0.4.24",
1102 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1103 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1104 + "requires": {
1105 + "safer-buffer": ">= 2.1.2 < 3"
1106 + }
1107 + },
1108 + "inherits": {
1109 + "version": "2.0.4",
1110 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1111 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1112 + },
1113 + "ipaddr.js": {
1114 + "version": "1.9.1",
1115 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1116 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1117 + },
1118 + "media-typer": {
1119 + "version": "0.3.0",
1120 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1121 + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
1122 + },
1123 + "merge-descriptors": {
1124 + "version": "1.0.1",
1125 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1126 + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1127 + },
1128 + "methods": {
1129 + "version": "1.1.2",
1130 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1131 + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
1132 + },
1133 + "mime": {
1134 + "version": "1.6.0",
1135 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1136 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1137 + },
1138 + "mime-db": {
1139 + "version": "1.52.0",
1140 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1141 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
1142 + },
1143 + "mime-types": {
1144 + "version": "2.1.35",
1145 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1146 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1147 + "requires": {
1148 + "mime-db": "1.52.0"
1149 + }
1150 + },
1151 + "moment": {
1152 + "version": "2.29.3",
1153 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
1154 + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw=="
1155 + },
1156 + "ms": {
1157 + "version": "2.0.0",
1158 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1159 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1160 + },
1161 + "negotiator": {
1162 + "version": "0.6.3",
1163 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1164 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
1165 + },
1166 + "object-assign": {
1167 + "version": "4.1.1",
1168 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1169 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
1170 + },
1171 + "object-inspect": {
1172 + "version": "1.12.2",
1173 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
1174 + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
1175 + },
1176 + "on-finished": {
1177 + "version": "2.4.1",
1178 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1179 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1180 + "requires": {
1181 + "ee-first": "1.1.1"
1182 + }
1183 + },
1184 + "parseurl": {
1185 + "version": "1.3.3",
1186 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1187 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1188 + },
1189 + "path-to-regexp": {
1190 + "version": "0.1.7",
1191 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1192 + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1193 + },
1194 + "proxy-addr": {
1195 + "version": "2.0.7",
1196 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1197 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1198 + "requires": {
1199 + "forwarded": "0.2.0",
1200 + "ipaddr.js": "1.9.1"
1201 + }
1202 + },
1203 + "qs": {
1204 + "version": "6.10.3",
1205 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1206 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1207 + "requires": {
1208 + "side-channel": "^1.0.4"
1209 + }
1210 + },
1211 + "range-parser": {
1212 + "version": "1.2.1",
1213 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1214 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1215 + },
1216 + "raw-body": {
1217 + "version": "2.5.1",
1218 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1219 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1220 + "requires": {
1221 + "bytes": "3.1.2",
1222 + "http-errors": "2.0.0",
1223 + "iconv-lite": "0.4.24",
1224 + "unpipe": "1.0.0"
1225 + }
1226 + },
1227 + "safe-buffer": {
1228 + "version": "5.2.1",
1229 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1230 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1231 + },
1232 + "safer-buffer": {
1233 + "version": "2.1.2",
1234 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1235 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1236 + },
1237 + "send": {
1238 + "version": "0.18.0",
1239 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1240 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1241 + "requires": {
1242 + "debug": "2.6.9",
1243 + "depd": "2.0.0",
1244 + "destroy": "1.2.0",
1245 + "encodeurl": "~1.0.2",
1246 + "escape-html": "~1.0.3",
1247 + "etag": "~1.8.1",
1248 + "fresh": "0.5.2",
1249 + "http-errors": "2.0.0",
1250 + "mime": "1.6.0",
1251 + "ms": "2.1.3",
1252 + "on-finished": "2.4.1",
1253 + "range-parser": "~1.2.1",
1254 + "statuses": "2.0.1"
1255 + },
1256 + "dependencies": {
1257 + "ms": {
1258 + "version": "2.1.3",
1259 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1260 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1261 + }
1262 + }
1263 + },
1264 + "serve-static": {
1265 + "version": "1.15.0",
1266 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1267 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1268 + "requires": {
1269 + "encodeurl": "~1.0.2",
1270 + "escape-html": "~1.0.3",
1271 + "parseurl": "~1.3.3",
1272 + "send": "0.18.0"
1273 + }
1274 + },
1275 + "setprototypeof": {
1276 + "version": "1.2.0",
1277 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1278 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1279 + },
1280 + "side-channel": {
1281 + "version": "1.0.4",
1282 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1283 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1284 + "requires": {
1285 + "call-bind": "^1.0.0",
1286 + "get-intrinsic": "^1.0.2",
1287 + "object-inspect": "^1.9.0"
1288 + }
1289 + },
1290 + "socket.io": {
1291 + "version": "4.5.1",
1292 + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
1293 + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
1294 + "requires": {
1295 + "accepts": "~1.3.4",
1296 + "base64id": "~2.0.0",
1297 + "debug": "~4.3.2",
1298 + "engine.io": "~6.2.0",
1299 + "socket.io-adapter": "~2.4.0",
1300 + "socket.io-parser": "~4.0.4"
1301 + },
1302 + "dependencies": {
1303 + "debug": {
1304 + "version": "4.3.4",
1305 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1306 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1307 + "requires": {
1308 + "ms": "2.1.2"
1309 + }
1310 + },
1311 + "ms": {
1312 + "version": "2.1.2",
1313 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1314 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1315 + }
1316 + }
1317 + },
1318 + "socket.io-adapter": {
1319 + "version": "2.4.0",
1320 + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
1321 + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
1322 + },
1323 + "socket.io-parser": {
1324 + "version": "4.0.4",
1325 + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
1326 + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
1327 + "requires": {
1328 + "@types/component-emitter": "^1.2.10",
1329 + "component-emitter": "~1.3.0",
1330 + "debug": "~4.3.1"
1331 + },
1332 + "dependencies": {
1333 + "debug": {
1334 + "version": "4.3.4",
1335 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1336 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1337 + "requires": {
1338 + "ms": "2.1.2"
1339 + }
1340 + },
1341 + "ms": {
1342 + "version": "2.1.2",
1343 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1344 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1345 + }
1346 + }
1347 + },
1348 + "statuses": {
1349 + "version": "2.0.1",
1350 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1351 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1352 + },
1353 + "toidentifier": {
1354 + "version": "1.0.1",
1355 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1356 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1357 + },
1358 + "type-is": {
1359 + "version": "1.6.18",
1360 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1361 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1362 + "requires": {
1363 + "media-typer": "0.3.0",
1364 + "mime-types": "~2.1.24"
1365 + }
1366 + },
1367 + "unpipe": {
1368 + "version": "1.0.0",
1369 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1370 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1371 + },
1372 + "utils-merge": {
1373 + "version": "1.0.1",
1374 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1375 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1376 + },
1377 + "vary": {
1378 + "version": "1.1.2",
1379 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1380 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1381 + },
1382 + "ws": {
1383 + "version": "8.2.3",
1384 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
1385 + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
1386 + "requires": {}
1387 + }
1388 + }
1389 +}