From 2eaaf05d541eaba92bcb343a44119a471945aeea Mon Sep 17 00:00:00 2001
From: Low fat lard <94632232+Low-Fat-Lard@users.noreply.github.com>
Date: Sun, 2 Oct 2022 17:13:44 +0000
Subject: [PATCH] 1) Changed UI 2) Created commenting sys - WIP 3) Added search
page 4) Socket.io and FS support 5) will add all of the Irish back soon
---
.breakpoints | 8 +
database.json | 12 +-
index.js | 101 +-
node_modules/.package-lock.json | 591 ++
.../@socket.io/component-emitter/LICENSE | 24 +
.../@socket.io/component-emitter/Readme.md | 74 +
.../@socket.io/component-emitter/index.d.ts | 179 +
.../@socket.io/component-emitter/index.js | 176 +
.../@socket.io/component-emitter/index.mjs | 169 +
.../@socket.io/component-emitter/package.json | 31 +
node_modules/@types/cookie/LICENSE | 21 +
node_modules/@types/cookie/README.md | 16 +
node_modules/@types/cookie/index.d.ts | 135 +
node_modules/@types/cookie/package.json | 30 +
node_modules/@types/cors/LICENSE | 21 +
node_modules/@types/cors/README.md | 78 +
node_modules/@types/cors/index.d.ts | 58 +
node_modules/@types/cors/package.json | 30 +
.../@types/webidl-conversions/LICENSE | 21 +
.../@types/webidl-conversions/README.md | 16 +
.../@types/webidl-conversions/index.d.ts | 97 +
.../@types/webidl-conversions/package.json | 30 +
node_modules/@types/whatwg-url/LICENSE | 21 +
node_modules/@types/whatwg-url/README.md | 16 +
.../@types/whatwg-url/dist/URL-impl.d.ts | 23 +
node_modules/@types/whatwg-url/dist/URL.d.ts | 76 +
.../whatwg-url/dist/URLSearchParams-impl.d.ts | 23 +
.../whatwg-url/dist/URLSearchParams.d.ts | 91 +
node_modules/@types/whatwg-url/index.d.ts | 162 +
node_modules/@types/whatwg-url/package.json | 33 +
.../@types/whatwg-url/webidl2js-wrapper.d.ts | 4 +
node_modules/base64-js/LICENSE | 21 +
node_modules/base64-js/README.md | 34 +
node_modules/base64-js/base64js.min.js | 1 +
node_modules/base64-js/index.d.ts | 3 +
node_modules/base64-js/index.js | 150 +
node_modules/base64-js/package.json | 47 +
node_modules/base64id/CHANGELOG.md | 16 +
node_modules/base64id/LICENSE | 22 +
node_modules/base64id/README.md | 18 +
node_modules/base64id/lib/base64id.js | 103 +
node_modules/base64id/package.json | 13 +
node_modules/basic-auth/HISTORY.md | 52 +
node_modules/basic-auth/LICENSE | 24 +
node_modules/basic-auth/README.md | 113 +
node_modules/basic-auth/index.js | 133 +
.../node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
node_modules/basic-auth/package.json | 41 +
node_modules/bson/LICENSE.md | 201 +
node_modules/bson/README.md | 376 +
node_modules/bson/bower.json | 26 +
node_modules/bson/bson.d.ts | 1228 +++
node_modules/bson/dist/bson.browser.esm.js | 7470 ++++++++++++++++
.../bson/dist/bson.browser.esm.js.map | 1 +
node_modules/bson/dist/bson.browser.umd.js | 7537 +++++++++++++++++
.../bson/dist/bson.browser.umd.js.map | 1 +
node_modules/bson/dist/bson.bundle.js | 7536 ++++++++++++++++
node_modules/bson/dist/bson.bundle.js.map | 1 +
node_modules/bson/dist/bson.esm.js | 5436 ++++++++++++
node_modules/bson/dist/bson.esm.js.map | 1 +
node_modules/bson/etc/prepare.js | 19 +
node_modules/bson/lib/binary.js | 426 +
node_modules/bson/lib/binary.js.map | 1 +
node_modules/bson/lib/bson.js | 251 +
node_modules/bson/lib/bson.js.map | 1 +
node_modules/bson/lib/code.js | 46 +
node_modules/bson/lib/code.js.map | 1 +
node_modules/bson/lib/constants.js | 82 +
node_modules/bson/lib/constants.js.map | 1 +
node_modules/bson/lib/db_ref.js | 97 +
node_modules/bson/lib/db_ref.js.map | 1 +
node_modules/bson/lib/decimal128.js | 669 ++
node_modules/bson/lib/decimal128.js.map | 1 +
node_modules/bson/lib/double.js | 76 +
node_modules/bson/lib/double.js.map | 1 +
node_modules/bson/lib/ensure_buffer.js | 25 +
node_modules/bson/lib/ensure_buffer.js.map | 1 +
node_modules/bson/lib/error.js | 55 +
node_modules/bson/lib/error.js.map | 1 +
node_modules/bson/lib/extended_json.js | 390 +
node_modules/bson/lib/extended_json.js.map | 1 +
node_modules/bson/lib/int_32.js | 58 +
node_modules/bson/lib/int_32.js.map | 1 +
node_modules/bson/lib/long.js | 900 ++
node_modules/bson/lib/long.js.map | 1 +
node_modules/bson/lib/map.js | 123 +
node_modules/bson/lib/map.js.map | 1 +
node_modules/bson/lib/max_key.js | 33 +
node_modules/bson/lib/max_key.js.map | 1 +
node_modules/bson/lib/min_key.js | 33 +
node_modules/bson/lib/min_key.js.map | 1 +
node_modules/bson/lib/objectid.js | 299 +
node_modules/bson/lib/objectid.js.map | 1 +
.../bson/lib/parser/calculate_size.js | 194 +
.../bson/lib/parser/calculate_size.js.map | 1 +
node_modules/bson/lib/parser/deserializer.js | 665 ++
.../bson/lib/parser/deserializer.js.map | 1 +
node_modules/bson/lib/parser/serializer.js | 867 ++
.../bson/lib/parser/serializer.js.map | 1 +
node_modules/bson/lib/parser/utils.js | 115 +
node_modules/bson/lib/parser/utils.js.map | 1 +
node_modules/bson/lib/regexp.js | 74 +
node_modules/bson/lib/regexp.js.map | 1 +
node_modules/bson/lib/symbol.js | 48 +
node_modules/bson/lib/symbol.js.map | 1 +
node_modules/bson/lib/timestamp.js | 102 +
node_modules/bson/lib/timestamp.js.map | 1 +
node_modules/bson/lib/utils/global.js | 18 +
node_modules/bson/lib/utils/global.js.map | 1 +
node_modules/bson/lib/uuid_utils.js | 35 +
node_modules/bson/lib/uuid_utils.js.map | 1 +
node_modules/bson/lib/validate_utf8.js | 47 +
node_modules/bson/lib/validate_utf8.js.map | 1 +
node_modules/bson/package.json | 116 +
node_modules/bson/src/binary.ts | 481 ++
node_modules/bson/src/bson.ts | 330 +
node_modules/bson/src/code.ts | 61 +
node_modules/bson/src/constants.ts | 110 +
node_modules/bson/src/db_ref.ts | 124 +
node_modules/bson/src/decimal128.ts | 773 ++
node_modules/bson/src/double.ts | 91 +
node_modules/bson/src/ensure_buffer.ts | 27 +
node_modules/bson/src/error.ts | 23 +
node_modules/bson/src/extended_json.ts | 462 +
node_modules/bson/src/int_32.ts | 70 +
node_modules/bson/src/long.ts | 1040 +++
node_modules/bson/src/map.ts | 119 +
node_modules/bson/src/max_key.ts | 38 +
node_modules/bson/src/min_key.ts | 38 +
node_modules/bson/src/objectid.ts | 354 +
.../bson/src/parser/calculate_size.ts | 228 +
node_modules/bson/src/parser/deserializer.ts | 782 ++
node_modules/bson/src/parser/serializer.ts | 1076 +++
node_modules/bson/src/parser/utils.ts | 127 +
node_modules/bson/src/regexp.ts | 105 +
node_modules/bson/src/symbol.ts | 58 +
node_modules/bson/src/timestamp.ts | 119 +
node_modules/bson/src/utils/global.ts | 22 +
node_modules/bson/src/uuid_utils.ts | 33 +
node_modules/bson/src/validate_utf8.ts | 47 +
node_modules/buffer/AUTHORS.md | 70 +
node_modules/buffer/LICENSE | 21 +
node_modules/buffer/README.md | 410 +
node_modules/buffer/index.d.ts | 186 +
node_modules/buffer/index.js | 1817 ++++
node_modules/buffer/package.json | 96 +
node_modules/cors/CONTRIBUTING.md | 33 +
node_modules/cors/HISTORY.md | 58 +
node_modules/cors/LICENSE | 22 +
node_modules/cors/README.md | 243 +
node_modules/cors/lib/index.js | 238 +
node_modules/cors/package.json | 41 +
node_modules/denque/CHANGELOG.md | 29 +
node_modules/denque/LICENSE | 201 +
node_modules/denque/README.md | 77 +
node_modules/denque/index.d.ts | 47 +
node_modules/denque/index.js | 481 ++
node_modules/denque/package.json | 58 +
node_modules/engine.io-parser/LICENSE | 22 +
node_modules/engine.io-parser/Readme.md | 158 +
.../engine.io-parser/build/cjs/commons.js | 19 +
.../build/cjs/contrib/base64-arraybuffer.js | 47 +
.../build/cjs/decodePacket.browser.js | 51 +
.../build/cjs/decodePacket.js | 49 +
.../build/cjs/encodePacket.browser.js | 43 +
.../build/cjs/encodePacket.js | 27 +
.../engine.io-parser/build/cjs/index.js | 38 +
.../engine.io-parser/build/cjs/package.json | 8 +
.../engine.io-parser/build/esm/commons.d.ts | 14 +
.../engine.io-parser/build/esm/commons.js | 14 +
.../build/esm/contrib/base64-arraybuffer.d.ts | 2 +
.../build/esm/contrib/base64-arraybuffer.js | 42 +
.../build/esm/decodePacket.browser.d.ts | 3 +
.../build/esm/decodePacket.browser.js | 49 +
.../build/esm/decodePacket.d.ts | 3 +
.../build/esm/decodePacket.js | 47 +
.../build/esm/encodePacket.browser.d.ts | 3 +
.../build/esm/encodePacket.browser.js | 41 +
.../build/esm/encodePacket.d.ts | 3 +
.../build/esm/encodePacket.js | 25 +
.../engine.io-parser/build/esm/index.d.ts | 7 +
.../engine.io-parser/build/esm/index.js | 32 +
.../engine.io-parser/build/esm/package.json | 8 +
node_modules/engine.io-parser/package.json | 58 +
node_modules/engine.io/LICENSE | 19 +
node_modules/engine.io/README.md | 596 ++
node_modules/engine.io/build/engine.io.d.ts | 28 +
node_modules/engine.io/build/engine.io.js | 56 +
.../engine.io/build/parser-v3/index.d.ts | 95 +
.../engine.io/build/parser-v3/index.js | 424 +
.../engine.io/build/parser-v3/utf8.d.ts | 14 +
.../engine.io/build/parser-v3/utf8.js | 187 +
node_modules/engine.io/build/server.d.ts | 223 +
node_modules/engine.io/build/server.js | 626 ++
node_modules/engine.io/build/socket.d.ts | 145 +
node_modules/engine.io/build/socket.js | 462 +
node_modules/engine.io/build/transport.d.ts | 76 +
node_modules/engine.io/build/transport.js | 113 +
.../engine.io/build/transports-uws/index.d.ts | 7 +
.../engine.io/build/transports-uws/index.js | 8 +
.../build/transports-uws/polling.d.ts | 103 +
.../engine.io/build/transports-uws/polling.js | 363 +
.../build/transports-uws/websocket.d.ts | 43 +
.../build/transports-uws/websocket.js | 89 +
.../engine.io/build/transports/index.d.ts | 16 +
.../engine.io/build/transports/index.js | 23 +
.../build/transports/polling-jsonp.d.ts | 24 +
.../build/transports/polling-jsonp.js | 54 +
.../engine.io/build/transports/polling.d.ts | 100 +
.../engine.io/build/transports/polling.js | 342 +
.../engine.io/build/transports/websocket.d.ts | 43 +
.../engine.io/build/transports/websocket.js | 102 +
node_modules/engine.io/build/userver.d.ts | 38 +
node_modules/engine.io/build/userver.js | 212 +
.../engine.io/node_modules/cookie/HISTORY.md | 134 +
.../engine.io/node_modules/cookie/LICENSE | 24 +
.../engine.io/node_modules/cookie/README.md | 286 +
.../engine.io/node_modules/cookie/index.js | 202 +
.../node_modules/cookie/package.json | 42 +
.../engine.io/node_modules/debug/LICENSE | 20 +
.../engine.io/node_modules/debug/README.md | 481 ++
.../engine.io/node_modules/debug/package.json | 59 +
.../node_modules/debug/src/browser.js | 269 +
.../node_modules/debug/src/common.js | 274 +
.../engine.io/node_modules/debug/src/index.js | 10 +
.../engine.io/node_modules/debug/src/node.js | 263 +
.../engine.io/node_modules/ms/index.js | 162 +
.../engine.io/node_modules/ms/license.md | 21 +
.../engine.io/node_modules/ms/package.json | 37 +
.../engine.io/node_modules/ms/readme.md | 60 +
node_modules/engine.io/package.json | 80 +
node_modules/engine.io/wrapper.mjs | 3 +
node_modules/errorhandler/HISTORY.md | 161 +
node_modules/errorhandler/LICENSE | 23 +
node_modules/errorhandler/README.md | 128 +
node_modules/errorhandler/index.js | 198 +
node_modules/errorhandler/package.json | 43 +
node_modules/errorhandler/public/error.html | 14 +
node_modules/errorhandler/public/style.css | 35 +
node_modules/express-session/HISTORY.md | 442 +
node_modules/express-session/LICENSE | 24 +
node_modules/express-session/README.md | 985 +++
node_modules/express-session/index.js | 685 ++
.../node_modules/cookie/HISTORY.md | 134 +
.../node_modules/cookie/LICENSE | 24 +
.../node_modules/cookie/README.md | 286 +
.../node_modules/cookie/index.js | 202 +
.../node_modules/cookie/package.json | 42 +
node_modules/express-session/package.json | 47 +
.../express-session/session/cookie.js | 150 +
.../express-session/session/memory.js | 187 +
.../express-session/session/session.js | 143 +
node_modules/express-session/session/store.js | 102 +
node_modules/ieee754/LICENSE | 11 +
node_modules/ieee754/README.md | 51 +
node_modules/ieee754/index.d.ts | 10 +
node_modules/ieee754/index.js | 85 +
node_modules/ieee754/package.json | 52 +
node_modules/ip/README.md | 90 +
node_modules/ip/lib/ip.js | 422 +
node_modules/ip/package.json | 25 +
node_modules/kareem/.eslintrc.json | 16 +
.../kareem/.github/workflows/test.yml | 47 +
node_modules/kareem/.travis.yml | 12 +
node_modules/kareem/CHANGELOG.md | 808 ++
node_modules/kareem/LICENSE | 202 +
node_modules/kareem/Makefile | 5 +
node_modules/kareem/README.md | 420 +
node_modules/kareem/docs.js | 41 +
node_modules/kareem/index.js | 563 ++
node_modules/kareem/package.json | 25 +
node_modules/kareem/test/examples.test.js | 429 +
node_modules/kareem/test/misc.test.js | 71 +
node_modules/kareem/test/post.test.js | 264 +
node_modules/kareem/test/pre.test.js | 359 +
node_modules/kareem/test/wrap.test.js | 467 +
node_modules/memory-pager/.travis.yml | 4 +
node_modules/memory-pager/LICENSE | 21 +
node_modules/memory-pager/README.md | 65 +
node_modules/memory-pager/index.js | 160 +
node_modules/memory-pager/package.json | 24 +
node_modules/memory-pager/test.js | 80 +
.../.esm-wrapper.mjs | 6 +
.../mongodb-connection-string-url/LICENSE | 192 +
.../mongodb-connection-string-url/README.md | 25 +
.../lib/index.d.ts | 62 +
.../lib/index.js | 213 +
.../lib/index.js.map | 1 +
.../lib/redact.d.ts | 7 +
.../lib/redact.js | 86 +
.../lib/redact.js.map | 1 +
.../package.json | 62 +
node_modules/mongodb/LICENSE.md | 201 +
node_modules/mongodb/README.md | 280 +
node_modules/mongodb/etc/prepare.js | 12 +
node_modules/mongodb/lib/admin.js | 123 +
node_modules/mongodb/lib/admin.js.map | 1 +
node_modules/mongodb/lib/bson.js | 71 +
node_modules/mongodb/lib/bson.js.map | 1 +
node_modules/mongodb/lib/bulk/common.js | 967 +++
node_modules/mongodb/lib/bulk/common.js.map | 1 +
node_modules/mongodb/lib/bulk/ordered.js | 66 +
node_modules/mongodb/lib/bulk/ordered.js.map | 1 +
node_modules/mongodb/lib/bulk/unordered.js | 91 +
.../mongodb/lib/bulk/unordered.js.map | 1 +
node_modules/mongodb/lib/change_stream.js | 374 +
node_modules/mongodb/lib/change_stream.js.map | 1 +
.../mongodb/lib/cmap/auth/auth_provider.js | 36 +
.../lib/cmap/auth/auth_provider.js.map | 1 +
node_modules/mongodb/lib/cmap/auth/gssapi.js | 190 +
.../mongodb/lib/cmap/auth/gssapi.js.map | 1 +
.../lib/cmap/auth/mongo_credentials.js | 134 +
.../lib/cmap/auth/mongo_credentials.js.map | 1 +
node_modules/mongodb/lib/cmap/auth/mongocr.js | 44 +
.../mongodb/lib/cmap/auth/mongocr.js.map | 1 +
.../mongodb/lib/cmap/auth/mongodb_aws.js | 204 +
.../mongodb/lib/cmap/auth/mongodb_aws.js.map | 1 +
node_modules/mongodb/lib/cmap/auth/plain.js | 27 +
.../mongodb/lib/cmap/auth/plain.js.map | 1 +
.../mongodb/lib/cmap/auth/providers.js | 21 +
.../mongodb/lib/cmap/auth/providers.js.map | 1 +
node_modules/mongodb/lib/cmap/auth/scram.js | 288 +
.../mongodb/lib/cmap/auth/scram.js.map | 1 +
node_modules/mongodb/lib/cmap/auth/x509.js | 39 +
.../mongodb/lib/cmap/auth/x509.js.map | 1 +
.../lib/cmap/command_monitoring_events.js | 243 +
.../lib/cmap/command_monitoring_events.js.map | 1 +
node_modules/mongodb/lib/cmap/commands.js | 481 ++
node_modules/mongodb/lib/cmap/commands.js.map | 1 +
node_modules/mongodb/lib/cmap/connect.js | 398 +
node_modules/mongodb/lib/cmap/connect.js.map | 1 +
node_modules/mongodb/lib/cmap/connection.js | 469 +
.../mongodb/lib/cmap/connection.js.map | 1 +
.../mongodb/lib/cmap/connection_pool.js | 523 ++
.../mongodb/lib/cmap/connection_pool.js.map | 1 +
.../lib/cmap/connection_pool_events.js | 147 +
.../lib/cmap/connection_pool_events.js.map | 1 +
node_modules/mongodb/lib/cmap/errors.js | 33 +
node_modules/mongodb/lib/cmap/errors.js.map | 1 +
.../mongodb/lib/cmap/message_stream.js | 175 +
.../mongodb/lib/cmap/message_stream.js.map | 1 +
node_modules/mongodb/lib/cmap/metrics.js | 62 +
node_modules/mongodb/lib/cmap/metrics.js.map | 1 +
.../mongodb/lib/cmap/stream_description.js | 51 +
.../lib/cmap/stream_description.js.map | 1 +
.../lib/cmap/wire_protocol/compression.js | 96 +
.../lib/cmap/wire_protocol/compression.js.map | 1 +
.../lib/cmap/wire_protocol/constants.js | 15 +
.../lib/cmap/wire_protocol/constants.js.map | 1 +
.../mongodb/lib/cmap/wire_protocol/shared.js | 55 +
.../lib/cmap/wire_protocol/shared.js.map | 1 +
node_modules/mongodb/lib/collection.js | 537 ++
node_modules/mongodb/lib/collection.js.map | 1 +
node_modules/mongodb/lib/connection_string.js | 1094 +++
.../mongodb/lib/connection_string.js.map | 1 +
node_modules/mongodb/lib/constants.js | 129 +
node_modules/mongodb/lib/constants.js.map | 1 +
.../mongodb/lib/cursor/abstract_cursor.js | 646 ++
.../mongodb/lib/cursor/abstract_cursor.js.map | 1 +
.../mongodb/lib/cursor/aggregation_cursor.js | 172 +
.../lib/cursor/aggregation_cursor.js.map | 1 +
.../lib/cursor/change_stream_cursor.js | 115 +
.../lib/cursor/change_stream_cursor.js.map | 1 +
.../mongodb/lib/cursor/find_cursor.js | 382 +
.../mongodb/lib/cursor/find_cursor.js.map | 1 +
.../lib/cursor/list_collections_cursor.js | 37 +
.../lib/cursor/list_collections_cursor.js.map | 1 +
.../mongodb/lib/cursor/list_indexes_cursor.js | 36 +
.../lib/cursor/list_indexes_cursor.js.map | 1 +
node_modules/mongodb/lib/db.js | 334 +
node_modules/mongodb/lib/db.js.map | 1 +
node_modules/mongodb/lib/deps.js | 63 +
node_modules/mongodb/lib/deps.js.map | 1 +
node_modules/mongodb/lib/encrypter.js | 109 +
node_modules/mongodb/lib/encrypter.js.map | 1 +
node_modules/mongodb/lib/error.js | 799 ++
node_modules/mongodb/lib/error.js.map | 1 +
node_modules/mongodb/lib/explain.js | 35 +
node_modules/mongodb/lib/explain.js.map | 1 +
node_modules/mongodb/lib/gridfs/download.js | 317 +
.../mongodb/lib/gridfs/download.js.map | 1 +
node_modules/mongodb/lib/gridfs/index.js | 152 +
node_modules/mongodb/lib/gridfs/index.js.map | 1 +
node_modules/mongodb/lib/gridfs/upload.js | 376 +
node_modules/mongodb/lib/gridfs/upload.js.map | 1 +
node_modules/mongodb/lib/index.js | 164 +
node_modules/mongodb/lib/index.js.map | 1 +
node_modules/mongodb/lib/logger.js | 217 +
node_modules/mongodb/lib/logger.js.map | 1 +
node_modules/mongodb/lib/mongo_client.js | 308 +
node_modules/mongodb/lib/mongo_client.js.map | 1 +
node_modules/mongodb/lib/mongo_types.js | 41 +
node_modules/mongodb/lib/mongo_types.js.map | 1 +
.../mongodb/lib/operations/add_user.js | 72 +
.../mongodb/lib/operations/add_user.js.map | 1 +
.../mongodb/lib/operations/aggregate.js | 90 +
.../mongodb/lib/operations/aggregate.js.map | 1 +
.../mongodb/lib/operations/bulk_write.js | 43 +
.../mongodb/lib/operations/bulk_write.js.map | 1 +
.../mongodb/lib/operations/collections.js | 29 +
.../mongodb/lib/operations/collections.js.map | 1 +
.../mongodb/lib/operations/command.js | 95 +
.../mongodb/lib/operations/command.js.map | 1 +
.../lib/operations/common_functions.js | 71 +
.../lib/operations/common_functions.js.map | 1 +
.../mongodb/lib/operations/connect.js | 85 +
.../mongodb/lib/operations/connect.js.map | 1 +
node_modules/mongodb/lib/operations/count.js | 39 +
.../mongodb/lib/operations/count.js.map | 1 +
.../mongodb/lib/operations/count_documents.js | 37 +
.../lib/operations/count_documents.js.map | 1 +
.../lib/operations/create_collection.js | 100 +
.../lib/operations/create_collection.js.map | 1 +
node_modules/mongodb/lib/operations/delete.js | 135 +
.../mongodb/lib/operations/delete.js.map | 1 +
.../mongodb/lib/operations/distinct.js | 67 +
.../mongodb/lib/operations/distinct.js.map | 1 +
node_modules/mongodb/lib/operations/drop.js | 84 +
.../mongodb/lib/operations/drop.js.map | 1 +
.../operations/estimated_document_count.js | 38 +
.../estimated_document_count.js.map | 1 +
node_modules/mongodb/lib/operations/eval.js | 55 +
.../mongodb/lib/operations/eval.js.map | 1 +
.../lib/operations/execute_operation.js | 185 +
.../lib/operations/execute_operation.js.map | 1 +
node_modules/mongodb/lib/operations/find.js | 165 +
.../mongodb/lib/operations/find.js.map | 1 +
.../mongodb/lib/operations/find_and_modify.js | 156 +
.../lib/operations/find_and_modify.js.map | 1 +
.../mongodb/lib/operations/get_more.js | 58 +
.../mongodb/lib/operations/get_more.js.map | 1 +
.../mongodb/lib/operations/indexes.js | 270 +
.../mongodb/lib/operations/indexes.js.map | 1 +
node_modules/mongodb/lib/operations/insert.js | 99 +
.../mongodb/lib/operations/insert.js.map | 1 +
.../mongodb/lib/operations/is_capped.js | 30 +
.../mongodb/lib/operations/is_capped.js.map | 1 +
.../mongodb/lib/operations/kill_cursors.js | 32 +
.../lib/operations/kill_cursors.js.map | 1 +
.../lib/operations/list_collections.js | 46 +
.../lib/operations/list_collections.js.map | 1 +
.../mongodb/lib/operations/list_databases.js | 35 +
.../lib/operations/list_databases.js.map | 1 +
.../mongodb/lib/operations/map_reduce.js | 166 +
.../mongodb/lib/operations/map_reduce.js.map | 1 +
.../mongodb/lib/operations/operation.js | 70 +
.../mongodb/lib/operations/operation.js.map | 1 +
.../lib/operations/options_operation.js | 29 +
.../lib/operations/options_operation.js.map | 1 +
.../mongodb/lib/operations/profiling_level.js | 33 +
.../lib/operations/profiling_level.js.map | 1 +
.../mongodb/lib/operations/remove_user.js | 21 +
.../mongodb/lib/operations/remove_user.js.map | 1 +
node_modules/mongodb/lib/operations/rename.js | 46 +
.../mongodb/lib/operations/rename.js.map | 1 +
.../mongodb/lib/operations/run_command.js | 26 +
.../mongodb/lib/operations/run_command.js.map | 1 +
.../lib/operations/set_profiling_level.js | 51 +
.../lib/operations/set_profiling_level.js.map | 1 +
node_modules/mongodb/lib/operations/stats.js | 48 +
.../mongodb/lib/operations/stats.js.map | 1 +
node_modules/mongodb/lib/operations/update.js | 200 +
.../mongodb/lib/operations/update.js.map | 1 +
.../lib/operations/validate_collection.js | 41 +
.../lib/operations/validate_collection.js.map | 1 +
node_modules/mongodb/lib/promise_provider.js | 36 +
.../mongodb/lib/promise_provider.js.map | 1 +
node_modules/mongodb/lib/read_concern.js | 74 +
node_modules/mongodb/lib/read_concern.js.map | 1 +
node_modules/mongodb/lib/read_preference.js | 204 +
.../mongodb/lib/read_preference.js.map | 1 +
node_modules/mongodb/lib/sdam/common.js | 56 +
node_modules/mongodb/lib/sdam/common.js.map | 1 +
node_modules/mongodb/lib/sdam/events.js | 125 +
node_modules/mongodb/lib/sdam/events.js.map | 1 +
node_modules/mongodb/lib/sdam/monitor.js | 327 +
node_modules/mongodb/lib/sdam/monitor.js.map | 1 +
node_modules/mongodb/lib/sdam/server.js | 345 +
node_modules/mongodb/lib/sdam/server.js.map | 1 +
.../mongodb/lib/sdam/server_description.js | 190 +
.../lib/sdam/server_description.js.map | 1 +
.../mongodb/lib/sdam/server_selection.js | 228 +
.../mongodb/lib/sdam/server_selection.js.map | 1 +
node_modules/mongodb/lib/sdam/srv_polling.js | 122 +
.../mongodb/lib/sdam/srv_polling.js.map | 1 +
node_modules/mongodb/lib/sdam/topology.js | 645 ++
node_modules/mongodb/lib/sdam/topology.js.map | 1 +
.../mongodb/lib/sdam/topology_description.js | 340 +
.../lib/sdam/topology_description.js.map | 1 +
node_modules/mongodb/lib/sessions.js | 746 ++
node_modules/mongodb/lib/sessions.js.map | 1 +
node_modules/mongodb/lib/sort.js | 97 +
node_modules/mongodb/lib/sort.js.map | 1 +
node_modules/mongodb/lib/transactions.js | 138 +
node_modules/mongodb/lib/transactions.js.map | 1 +
node_modules/mongodb/lib/utils.js | 1108 +++
node_modules/mongodb/lib/utils.js.map | 1 +
node_modules/mongodb/lib/write_concern.js | 71 +
node_modules/mongodb/lib/write_concern.js.map | 1 +
node_modules/mongodb/mongodb.d.ts | 6725 +++++++++++++++
node_modules/mongodb/package.json | 136 +
node_modules/mongodb/src/admin.ts | 314 +
node_modules/mongodb/src/bson.ts | 116 +
node_modules/mongodb/src/bulk/common.ts | 1384 +++
node_modules/mongodb/src/bulk/ordered.ts | 82 +
node_modules/mongodb/src/bulk/unordered.ts | 109 +
node_modules/mongodb/src/change_stream.ts | 941 ++
.../mongodb/src/cmap/auth/auth_provider.ts | 60 +
node_modules/mongodb/src/cmap/auth/gssapi.ts | 241 +
.../src/cmap/auth/mongo_credentials.ts | 190 +
node_modules/mongodb/src/cmap/auth/mongocr.ts | 47 +
.../mongodb/src/cmap/auth/mongodb_aws.ts | 293 +
node_modules/mongodb/src/cmap/auth/plain.ts | 25 +
.../mongodb/src/cmap/auth/providers.ts | 21 +
node_modules/mongodb/src/cmap/auth/scram.ts | 384 +
node_modules/mongodb/src/cmap/auth/x509.ts | 53 +
.../src/cmap/command_monitoring_events.ts | 301 +
node_modules/mongodb/src/cmap/commands.ts | 703 ++
node_modules/mongodb/src/cmap/connect.ts | 523 ++
node_modules/mongodb/src/cmap/connection.ts | 752 ++
.../mongodb/src/cmap/connection_pool.ts | 747 ++
.../src/cmap/connection_pool_events.ts | 179 +
node_modules/mongodb/src/cmap/errors.ts | 38 +
.../mongodb/src/cmap/message_stream.ts | 242 +
node_modules/mongodb/src/cmap/metrics.ts | 58 +
.../mongodb/src/cmap/stream_description.ts | 76 +
.../src/cmap/wire_protocol/compression.ts | 130 +
.../src/cmap/wire_protocol/constants.ts | 11 +
.../mongodb/src/cmap/wire_protocol/shared.ts | 76 +
node_modules/mongodb/src/collection.ts | 1700 ++++
node_modules/mongodb/src/connection_string.ts | 1267 +++
node_modules/mongodb/src/constants.ts | 134 +
.../mongodb/src/cursor/abstract_cursor.ts | 931 ++
.../mongodb/src/cursor/aggregation_cursor.ts | 219 +
.../src/cursor/change_stream_cursor.ts | 194 +
.../mongodb/src/cursor/find_cursor.ts | 480 ++
.../src/cursor/list_collections_cursor.ts | 52 +
.../mongodb/src/cursor/list_indexes_cursor.ts | 41 +
node_modules/mongodb/src/db.ts | 770 ++
node_modules/mongodb/src/deps.ts | 378 +
node_modules/mongodb/src/encrypter.ts | 135 +
node_modules/mongodb/src/error.ts | 924 ++
node_modules/mongodb/src/explain.ts | 52 +
node_modules/mongodb/src/gridfs/download.ts | 458 +
node_modules/mongodb/src/gridfs/index.ts | 257 +
node_modules/mongodb/src/gridfs/upload.ts | 566 ++
node_modules/mongodb/src/index.ts | 477 ++
node_modules/mongodb/src/logger.ts | 265 +
node_modules/mongodb/src/mongo_client.ts | 797 ++
node_modules/mongodb/src/mongo_types.ts | 548 ++
.../mongodb/src/operations/add_user.ts | 118 +
.../mongodb/src/operations/aggregate.ts | 144 +
.../mongodb/src/operations/bulk_write.ts | 67 +
.../mongodb/src/operations/collections.ts | 48 +
.../mongodb/src/operations/command.ts | 193 +
.../src/operations/common_functions.ts | 102 +
.../mongodb/src/operations/connect.ts | 107 +
node_modules/mongodb/src/operations/count.ts | 68 +
.../mongodb/src/operations/count_documents.ts | 57 +
.../src/operations/create_collection.ts | 200 +
node_modules/mongodb/src/operations/delete.ts | 194 +
.../mongodb/src/operations/distinct.ts | 90 +
node_modules/mongodb/src/operations/drop.ts | 120 +
.../operations/estimated_document_count.ts | 62 +
node_modules/mongodb/src/operations/eval.ts | 82 +
.../src/operations/execute_operation.ts | 298 +
node_modules/mongodb/src/operations/find.ts | 288 +
.../mongodb/src/operations/find_and_modify.ts | 295 +
.../mongodb/src/operations/get_more.ts | 106 +
.../mongodb/src/operations/indexes.ts | 500 ++
node_modules/mongodb/src/operations/insert.ts | 158 +
.../mongodb/src/operations/is_capped.ts | 42 +
.../mongodb/src/operations/kill_cursors.ts | 53 +
.../src/operations/list_collections.ts | 91 +
.../mongodb/src/operations/list_databases.ts | 65 +
.../mongodb/src/operations/map_reduce.ts | 250 +
.../mongodb/src/operations/operation.ts | 125 +
.../src/operations/options_operation.ts | 42 +
.../mongodb/src/operations/profiling_level.ts | 39 +
.../mongodb/src/operations/remove_user.ts | 33 +
node_modules/mongodb/src/operations/rename.ts | 67 +
.../mongodb/src/operations/run_command.ts | 36 +
.../src/operations/set_profiling_level.ts | 74 +
node_modules/mongodb/src/operations/stats.ts | 271 +
node_modules/mongodb/src/operations/update.ts | 334 +
.../src/operations/validate_collection.ts | 59 +
node_modules/mongodb/src/promise_provider.ts | 41 +
node_modules/mongodb/src/read_concern.ts | 88 +
node_modules/mongodb/src/read_preference.ts | 271 +
node_modules/mongodb/src/sdam/common.ts | 79 +
node_modules/mongodb/src/sdam/events.ts | 182 +
node_modules/mongodb/src/sdam/monitor.ts | 472 ++
node_modules/mongodb/src/sdam/server.ts | 535 ++
.../mongodb/src/sdam/server_description.ts | 262 +
.../mongodb/src/sdam/server_selection.ts | 324 +
node_modules/mongodb/src/sdam/srv_polling.ts | 165 +
node_modules/mongodb/src/sdam/topology.ts | 1007 +++
.../mongodb/src/sdam/topology_description.ts | 486 ++
node_modules/mongodb/src/sessions.ts | 1075 +++
node_modules/mongodb/src/sort.ts | 132 +
node_modules/mongodb/src/transactions.ts | 187 +
node_modules/mongodb/src/utils.ts | 1411 +++
node_modules/mongodb/src/write_concern.ts | 114 +
node_modules/mongodb/tsconfig.json | 40 +
node_modules/mongoose/.eslintrc.json | 194 +
node_modules/mongoose/.mocharc.yml | 2 +
node_modules/mongoose/LICENSE.md | 22 +
node_modules/mongoose/README.md | 366 +
node_modules/mongoose/SECURITY.md | 1 +
node_modules/mongoose/browser.js | 8 +
node_modules/mongoose/dist/browser.umd.js | 1636 ++++
node_modules/mongoose/index.js | 63 +
node_modules/mongoose/lgtm.yml | 12 +
node_modules/mongoose/lib/aggregate.js | 1145 +++
node_modules/mongoose/lib/browser.js | 158 +
node_modules/mongoose/lib/browserDocument.js | 101 +
node_modules/mongoose/lib/cast.js | 380 +
node_modules/mongoose/lib/cast/boolean.js | 32 +
node_modules/mongoose/lib/cast/date.js | 41 +
node_modules/mongoose/lib/cast/decimal128.js | 36 +
node_modules/mongoose/lib/cast/number.js | 42 +
node_modules/mongoose/lib/cast/objectid.js | 29 +
node_modules/mongoose/lib/cast/string.js | 37 +
node_modules/mongoose/lib/collection.js | 311 +
node_modules/mongoose/lib/connection.js | 1552 ++++
node_modules/mongoose/lib/connectionstate.js | 26 +
.../mongoose/lib/cursor/AggregationCursor.js | 380 +
.../mongoose/lib/cursor/ChangeStream.js | 139 +
.../mongoose/lib/cursor/QueryCursor.js | 519 ++
node_modules/mongoose/lib/document.js | 4590 ++++++++++
.../mongoose/lib/document_provider.js | 30 +
node_modules/mongoose/lib/driver.js | 15 +
node_modules/mongoose/lib/drivers/SPEC.md | 4 +
.../lib/drivers/browser/ReadPreference.js | 7 +
.../mongoose/lib/drivers/browser/binary.js | 14 +
.../lib/drivers/browser/decimal128.js | 7 +
.../mongoose/lib/drivers/browser/index.js | 16 +
.../mongoose/lib/drivers/browser/objectid.js | 29 +
.../node-mongodb-native/ReadPreference.js | 47 +
.../lib/drivers/node-mongodb-native/binary.js | 10 +
.../drivers/node-mongodb-native/collection.js | 419 +
.../drivers/node-mongodb-native/connection.js | 166 +
.../drivers/node-mongodb-native/decimal128.js | 7 +
.../lib/drivers/node-mongodb-native/index.js | 12 +
.../drivers/node-mongodb-native/objectid.js | 16 +
.../lib/error/browserMissingSchema.js | 28 +
node_modules/mongoose/lib/error/cast.js | 158 +
.../mongoose/lib/error/disconnected.js | 33 +
.../mongoose/lib/error/divergentArray.js | 38 +
.../mongoose/lib/error/eachAsyncMultiError.js | 41 +
node_modules/mongoose/lib/error/index.js | 217 +
node_modules/mongoose/lib/error/messages.js | 47 +
.../mongoose/lib/error/missingSchema.js | 31 +
.../mongoose/lib/error/mongooseError.js | 13 +
node_modules/mongoose/lib/error/notFound.js | 45 +
.../mongoose/lib/error/objectExpected.js | 30 +
.../mongoose/lib/error/objectParameter.js | 30 +
.../mongoose/lib/error/overwriteModel.js | 30 +
.../mongoose/lib/error/parallelSave.js | 30 +
.../mongoose/lib/error/parallelValidate.js | 31 +
.../mongoose/lib/error/serverSelection.js | 61 +
node_modules/mongoose/lib/error/strict.js | 33 +
.../mongoose/lib/error/strictPopulate.js | 29 +
.../mongoose/lib/error/syncIndexes.js | 30 +
node_modules/mongoose/lib/error/validation.js | 123 +
node_modules/mongoose/lib/error/validator.js | 98 +
node_modules/mongoose/lib/error/version.js | 36 +
.../aggregate/prepareDiscriminatorPipeline.js | 37 +
.../aggregate/stringifyFunctionOperators.js | 50 +
.../mongoose/lib/helpers/arrayDepth.js | 33 +
node_modules/mongoose/lib/helpers/clone.js | 177 +
node_modules/mongoose/lib/helpers/common.js | 106 +
.../mongoose/lib/helpers/cursor/eachAsync.js | 208 +
.../areDiscriminatorValuesEqual.js | 16 +
...checkEmbeddedDiscriminatorKeyProjection.js | 12 +
.../helpers/discriminator/getConstructor.js | 26 +
.../discriminator/getDiscriminatorByValue.js | 28 +
.../getSchemaDiscriminatorByValue.js | 27 +
.../discriminator/mergeDiscriminatorSchema.js | 63 +
.../lib/helpers/document/applyDefaults.js | 115 +
.../helpers/document/cleanModifiedSubpaths.js | 35 +
.../mongoose/lib/helpers/document/compile.js | 227 +
.../document/getEmbeddedDiscriminatorPath.js | 50 +
.../lib/helpers/document/handleSpreadDoc.js | 35 +
node_modules/mongoose/lib/helpers/each.js | 25 +
node_modules/mongoose/lib/helpers/firstKey.js | 8 +
node_modules/mongoose/lib/helpers/get.js | 65 +
.../lib/helpers/getConstructorName.js | 16 +
.../lib/helpers/getDefaultBulkwriteResult.js | 27 +
.../mongoose/lib/helpers/getFunctionName.js | 10 +
.../mongoose/lib/helpers/immediate.js | 16 +
.../helpers/indexes/applySchemaCollation.js | 13 +
.../decorateDiscriminatorIndexOptions.js | 14 +
.../lib/helpers/indexes/getRelatedIndexes.js | 59 +
.../lib/helpers/indexes/isDefaultIdIndex.js | 18 +
.../lib/helpers/indexes/isIndexEqual.js | 96 +
.../lib/helpers/indexes/isTextIndex.js | 16 +
.../mongoose/lib/helpers/isAsyncFunction.js | 22 +
.../mongoose/lib/helpers/isBsonType.js | 16 +
.../mongoose/lib/helpers/isMongooseObject.js | 22 +
node_modules/mongoose/lib/helpers/isObject.js | 16 +
.../mongoose/lib/helpers/isPromise.js | 6 +
.../mongoose/lib/helpers/isSimpleValidator.js | 22 +
.../lib/helpers/model/applyDefaultsToPOJO.js | 52 +
.../mongoose/lib/helpers/model/applyHooks.js | 149 +
.../lib/helpers/model/applyMethods.js | 70 +
.../lib/helpers/model/applyStaticHooks.js | 71 +
.../lib/helpers/model/applyStatics.js | 13 +
.../lib/helpers/model/castBulkWrite.js | 240 +
.../lib/helpers/model/discriminator.js | 210 +
.../lib/helpers/model/pushNestedArrayPaths.js | 15 +
node_modules/mongoose/lib/helpers/once.js | 12 +
.../mongoose/lib/helpers/parallelLimit.js | 55 +
.../path/flattenObjectWithDottedPaths.js | 39 +
.../mongoose/lib/helpers/path/parentPaths.js | 18 +
.../lib/helpers/path/setDottedPath.js | 33 +
.../mongoose/lib/helpers/pluralize.js | 94 +
.../lib/helpers/populate/SkipPopulateValue.js | 10 +
.../populate/assignRawDocsToIdStructure.js | 111 +
.../lib/helpers/populate/assignVals.js | 334 +
.../populate/createPopulateQueryFilter.js | 86 +
.../populate/getModelsMapForPopulate.js | 730 ++
.../lib/helpers/populate/getSchemaTypes.js | 231 +
.../lib/helpers/populate/getVirtual.js | 72 +
.../lib/helpers/populate/leanPopulateMap.js | 7 +
.../lib/helpers/populate/lookupLocalFields.js | 40 +
.../populate/markArraySubdocsPopulated.js | 47 +
.../helpers/populate/modelNamesFromRefPath.js | 68 +
.../populate/removeDeselectedForeignField.js | 31 +
.../lib/helpers/populate/validateRef.js | 19 +
.../mongoose/lib/helpers/printJestWarning.js | 17 +
.../lib/helpers/processConnectionOptions.js | 64 +
.../lib/helpers/projection/applyProjection.js | 77 +
.../helpers/projection/hasIncludedChildren.js | 40 +
.../projection/isDefiningProjection.js | 18 +
.../lib/helpers/projection/isExclusive.js | 35 +
.../lib/helpers/projection/isInclusive.js | 38 +
.../lib/helpers/projection/isPathExcluded.js | 36 +
.../projection/isPathSelectedInclusive.js | 28 +
.../lib/helpers/projection/isSubpath.js | 14 +
.../lib/helpers/projection/parseProjection.js | 33 +
.../mongoose/lib/helpers/promiseOrCallback.js | 55 +
.../lib/helpers/query/applyGlobalOption.js | 29 +
.../lib/helpers/query/applyQueryMiddleware.js | 79 +
.../mongoose/lib/helpers/query/cast$expr.js | 282 +
.../lib/helpers/query/castFilterPath.js | 54 +
.../mongoose/lib/helpers/query/castUpdate.js | 559 ++
.../lib/helpers/query/completeMany.js | 52 +
.../query/getEmbeddedDiscriminatorPath.js | 90 +
.../lib/helpers/query/handleImmutable.js | 28 +
.../lib/helpers/query/hasDollarKeys.js | 23 +
.../mongoose/lib/helpers/query/isOperator.js | 14 +
.../lib/helpers/query/sanitizeFilter.js | 38 +
.../lib/helpers/query/sanitizeProjection.js | 14 +
.../helpers/query/selectPopulatedFields.js | 49 +
.../mongoose/lib/helpers/query/trusted.js | 13 +
.../mongoose/lib/helpers/query/validOps.js | 24 +
.../mongoose/lib/helpers/query/wrapThunk.js | 31 +
.../mongoose/lib/helpers/schema/addAutoId.js | 7 +
.../lib/helpers/schema/applyPlugins.js | 55 +
.../lib/helpers/schema/applyWriteConcern.js | 30 +
.../schema/cleanPositionalOperators.js | 12 +
.../mongoose/lib/helpers/schema/getIndexes.js | 164 +
.../helpers/schema/getKeysInSchemaOrder.js | 28 +
.../mongoose/lib/helpers/schema/getPath.js | 38 +
.../lib/helpers/schema/handleIdOption.js | 20 +
.../helpers/schema/handleTimestampOption.js | 24 +
.../mongoose/lib/helpers/schema/idGetter.js | 32 +
.../mongoose/lib/helpers/schema/merge.js | 27 +
.../lib/helpers/schematype/handleImmutable.js | 50 +
.../lib/helpers/setDefaultsOnInsert.js | 132 +
.../mongoose/lib/helpers/specialProperties.js | 3 +
node_modules/mongoose/lib/helpers/symbols.js | 20 +
node_modules/mongoose/lib/helpers/timers.js | 3 +
.../timestamps/setDocumentTimestamps.js | 26 +
.../lib/helpers/timestamps/setupTimestamps.js | 101 +
.../lib/helpers/topology/allServersUnknown.js | 12 +
.../mongoose/lib/helpers/topology/isAtlas.js | 31 +
.../lib/helpers/topology/isSSLError.js | 16 +
.../update/applyTimestampsToChildren.js | 193 +
.../helpers/update/applyTimestampsToUpdate.js | 117 +
.../lib/helpers/update/castArrayFilters.js | 83 +
.../lib/helpers/update/modifiedPaths.js | 33 +
.../helpers/update/moveImmutableProperties.js | 53 +
.../update/removeUnusedArrayFilters.js | 32 +
.../update/updatedPathsByArrayFilter.js | 27 +
.../mongoose/lib/helpers/updateValidators.js | 249 +
node_modules/mongoose/lib/index.js | 1282 +++
node_modules/mongoose/lib/internal.js | 46 +
node_modules/mongoose/lib/model.js | 5236 ++++++++++++
node_modules/mongoose/lib/options.js | 15 +
.../mongoose/lib/options/PopulateOptions.js | 36 +
.../lib/options/SchemaArrayOptions.js | 78 +
.../lib/options/SchemaBufferOptions.js | 38 +
.../mongoose/lib/options/SchemaDateOptions.js | 71 +
.../lib/options/SchemaDocumentArrayOptions.js | 68 +
.../mongoose/lib/options/SchemaMapOptions.js | 43 +
.../lib/options/SchemaNumberOptions.js | 101 +
.../lib/options/SchemaObjectIdOptions.js | 64 +
.../lib/options/SchemaStringOptions.js | 138 +
.../lib/options/SchemaSubdocumentOptions.js | 42 +
.../mongoose/lib/options/SchemaTypeOptions.js | 244 +
.../mongoose/lib/options/VirtualOptions.js | 164 +
.../mongoose/lib/options/propertyOptions.js | 8 +
.../mongoose/lib/options/removeOptions.js | 14 +
.../mongoose/lib/options/saveOptions.js | 14 +
.../mongoose/lib/plugins/clearValidating.js | 28 +
.../mongoose/lib/plugins/removeSubdocs.js | 31 +
.../mongoose/lib/plugins/saveSubdocs.js | 66 +
node_modules/mongoose/lib/plugins/sharding.js | 83 +
.../mongoose/lib/plugins/trackTransaction.js | 92 +
.../lib/plugins/validateBeforeSave.js | 45 +
node_modules/mongoose/lib/promise_provider.js | 49 +
node_modules/mongoose/lib/query.js | 5952 +++++++++++++
node_modules/mongoose/lib/queryhelpers.js | 346 +
node_modules/mongoose/lib/schema.js | 2488 ++++++
.../mongoose/lib/schema/SubdocumentPath.js | 366 +
node_modules/mongoose/lib/schema/array.js | 663 ++
node_modules/mongoose/lib/schema/boolean.js | 267 +
node_modules/mongoose/lib/schema/buffer.js | 269 +
node_modules/mongoose/lib/schema/date.js | 404 +
.../mongoose/lib/schema/decimal128.js | 210 +
.../mongoose/lib/schema/documentarray.js | 617 ++
node_modules/mongoose/lib/schema/index.js | 37 +
node_modules/mongoose/lib/schema/map.js | 84 +
node_modules/mongoose/lib/schema/mixed.js | 132 +
node_modules/mongoose/lib/schema/number.js | 438 +
node_modules/mongoose/lib/schema/objectid.js | 295 +
.../mongoose/lib/schema/operators/bitwise.js | 38 +
.../mongoose/lib/schema/operators/exists.js | 12 +
.../lib/schema/operators/geospatial.js | 107 +
.../mongoose/lib/schema/operators/helpers.js | 32 +
.../mongoose/lib/schema/operators/text.js | 39 +
.../mongoose/lib/schema/operators/type.js | 20 +
node_modules/mongoose/lib/schema/string.js | 694 ++
node_modules/mongoose/lib/schema/symbols.js | 5 +
node_modules/mongoose/lib/schematype.js | 1724 ++++
node_modules/mongoose/lib/statemachine.js | 207 +
.../mongoose/lib/types/ArraySubdocument.js | 189 +
.../mongoose/lib/types/DocumentArray/index.js | 113 +
.../DocumentArray/isMongooseDocumentArray.js | 5 +
.../lib/types/DocumentArray/methods/index.js | 383 +
.../mongoose/lib/types/array/index.js | 116 +
.../lib/types/array/isMongooseArray.js | 5 +
.../mongoose/lib/types/array/methods/index.js | 1015 +++
node_modules/mongoose/lib/types/buffer.js | 277 +
node_modules/mongoose/lib/types/decimal128.js | 13 +
node_modules/mongoose/lib/types/index.js | 20 +
node_modules/mongoose/lib/types/map.js | 321 +
node_modules/mongoose/lib/types/objectid.js | 41 +
.../mongoose/lib/types/subdocument.js | 432 +
node_modules/mongoose/lib/utils.js | 1009 +++
node_modules/mongoose/lib/validoptions.js | 36 +
node_modules/mongoose/lib/virtualtype.js | 175 +
node_modules/mongoose/mongoose-6.6.1.tgz | Bin 0 -> 513457 bytes
.../mongoose/node_modules/ms/index.js | 162 +
.../mongoose/node_modules/ms/license.md | 21 +
.../mongoose/node_modules/ms/package.json | 38 +
.../mongoose/node_modules/ms/readme.md | 59 +
node_modules/mongoose/package.json | 148 +
.../mongoose/scripts/build-browser.js | 18 +
.../mongoose/scripts/create-tarball.js | 7 +
node_modules/mongoose/tools/auth.js | 31 +
node_modules/mongoose/tools/repl.js | 35 +
node_modules/mongoose/tools/sharded.js | 46 +
node_modules/mongoose/tsconfig.json | 9 +
node_modules/mongoose/types/aggregate.d.ts | 229 +
node_modules/mongoose/types/callback.d.ts | 8 +
node_modules/mongoose/types/collection.d.ts | 46 +
node_modules/mongoose/types/connection.d.ts | 242 +
node_modules/mongoose/types/cursor.d.ts | 55 +
node_modules/mongoose/types/document.d.ts | 266 +
node_modules/mongoose/types/error.d.ts | 133 +
node_modules/mongoose/types/expressions.d.ts | 2903 +++++++
node_modules/mongoose/types/helpers.d.ts | 32 +
node_modules/mongoose/types/index.d.ts | 593 ++
node_modules/mongoose/types/indexes.d.ts | 98 +
.../mongoose/types/inferschematype.d.ts | 172 +
node_modules/mongoose/types/middlewares.d.ts | 14 +
node_modules/mongoose/types/models.d.ts | 442 +
.../mongoose/types/mongooseoptions.d.ts | 199 +
.../mongoose/types/pipelinestage.d.ts | 281 +
node_modules/mongoose/types/populate.d.ts | 40 +
node_modules/mongoose/types/query.d.ts | 659 ++
.../mongoose/types/schemaoptions.d.ts | 217 +
node_modules/mongoose/types/schematypes.d.ts | 427 +
node_modules/mongoose/types/session.d.ts | 36 +
node_modules/mongoose/types/types.d.ts | 104 +
node_modules/mongoose/types/utility.d.ts | 41 +
node_modules/mongoose/types/validation.d.ts | 32 +
node_modules/mongoose/types/virtuals.d.ts | 14 +
node_modules/morgan/HISTORY.md | 215 +
node_modules/morgan/LICENSE | 23 +
node_modules/morgan/README.md | 417 +
node_modules/morgan/index.js | 544 ++
.../node_modules/on-finished/HISTORY.md | 88 +
.../morgan/node_modules/on-finished/LICENSE | 23 +
.../morgan/node_modules/on-finished/README.md | 154 +
.../morgan/node_modules/on-finished/index.js | 196 +
.../node_modules/on-finished/package.json | 31 +
node_modules/morgan/package.json | 52 +
node_modules/mpath/.travis.yml | 9 +
node_modules/mpath/History.md | 88 +
node_modules/mpath/LICENSE | 22 +
node_modules/mpath/README.md | 278 +
node_modules/mpath/SECURITY.md | 5 +
node_modules/mpath/index.js | 3 +
node_modules/mpath/lib/index.js | 336 +
node_modules/mpath/lib/stringToParts.js | 48 +
node_modules/mpath/package.json | 144 +
node_modules/mpath/test/.eslintrc.yml | 4 +
node_modules/mpath/test/index.js | 1879 ++++
node_modules/mpath/test/stringToParts.js | 30 +
node_modules/mquery/.eslintignore | 1 +
node_modules/mquery/.eslintrc.json | 123 +
node_modules/mquery/.travis.yml | 15 +
node_modules/mquery/History.md | 376 +
node_modules/mquery/LICENSE | 22 +
node_modules/mquery/Makefile | 26 +
node_modules/mquery/README.md | 1373 +++
node_modules/mquery/SECURITY.md | 1 +
.../mquery/lib/collection/collection.js | 47 +
node_modules/mquery/lib/collection/index.js | 13 +
node_modules/mquery/lib/collection/node.js | 132 +
node_modules/mquery/lib/env.js | 22 +
node_modules/mquery/lib/mquery.js | 3198 +++++++
node_modules/mquery/lib/permissions.js | 84 +
node_modules/mquery/lib/utils.js | 335 +
.../mquery/node_modules/debug/LICENSE | 20 +
.../mquery/node_modules/debug/README.md | 481 ++
.../mquery/node_modules/debug/package.json | 59 +
.../mquery/node_modules/debug/src/browser.js | 269 +
.../mquery/node_modules/debug/src/common.js | 274 +
.../mquery/node_modules/debug/src/index.js | 10 +
.../mquery/node_modules/debug/src/node.js | 263 +
node_modules/mquery/node_modules/ms/index.js | 162 +
.../mquery/node_modules/ms/license.md | 21 +
.../mquery/node_modules/ms/package.json | 37 +
node_modules/mquery/node_modules/ms/readme.md | 60 +
node_modules/mquery/package.json | 38 +
node_modules/mquery/test/.eslintrc.yml | 2 +
.../mquery/test/collection/browser.js | 0
node_modules/mquery/test/collection/mongo.js | 0
node_modules/mquery/test/collection/node.js | 29 +
node_modules/mquery/test/env.js | 22 +
node_modules/mquery/test/index.js | 2925 +++++++
node_modules/mquery/test/utils.test.js | 182 +
node_modules/object-assign/index.js | 90 +
node_modules/object-assign/license | 21 +
node_modules/object-assign/package.json | 42 +
node_modules/object-assign/readme.md | 61 +
node_modules/on-headers/HISTORY.md | 21 +
node_modules/on-headers/LICENSE | 22 +
node_modules/on-headers/README.md | 81 +
node_modules/on-headers/index.js | 132 +
node_modules/on-headers/package.json | 42 +
node_modules/punycode/LICENSE-MIT.txt | 20 +
node_modules/punycode/README.md | 122 +
node_modules/punycode/package.json | 58 +
node_modules/punycode/punycode.es6.js | 441 +
node_modules/punycode/punycode.js | 440 +
node_modules/random-bytes/HISTORY.md | 4 +
node_modules/random-bytes/LICENSE | 21 +
node_modules/random-bytes/README.md | 77 +
node_modules/random-bytes/index.js | 101 +
node_modules/random-bytes/package.json | 36 +
node_modules/saslprep/.editorconfig | 10 +
node_modules/saslprep/.gitattributes | 1 +
node_modules/saslprep/.travis.yml | 10 +
node_modules/saslprep/CHANGELOG.md | 19 +
node_modules/saslprep/LICENSE | 22 +
node_modules/saslprep/code-points.mem | Bin 0 -> 419864 bytes
node_modules/saslprep/generate-code-points.js | 51 +
node_modules/saslprep/index.js | 157 +
node_modules/saslprep/lib/code-points.js | 996 +++
.../saslprep/lib/memory-code-points.js | 39 +
node_modules/saslprep/lib/util.js | 21 +
node_modules/saslprep/package.json | 72 +
node_modules/saslprep/readme.md | 31 +
node_modules/saslprep/test/index.js | 76 +
node_modules/saslprep/test/util.js | 16 +
node_modules/sift/MIT-LICENSE.txt | 20 +
node_modules/sift/README.md | 465 +
node_modules/sift/es/index.js | 626 ++
node_modules/sift/es/index.js.map | 1 +
node_modules/sift/es5m/index.js | 729 ++
node_modules/sift/es5m/index.js.map | 1 +
node_modules/sift/index.d.ts | 4 +
node_modules/sift/index.js | 4 +
node_modules/sift/lib/core.d.ts | 119 +
node_modules/sift/lib/index.d.ts | 6 +
node_modules/sift/lib/index.js | 766 ++
node_modules/sift/lib/index.js.map | 1 +
node_modules/sift/lib/operations.d.ts | 88 +
node_modules/sift/lib/utils.d.ts | 9 +
node_modules/sift/package.json | 62 +
node_modules/sift/sift.csp.min.js | 763 ++
node_modules/sift/sift.csp.min.js.map | 1 +
node_modules/sift/sift.min.js | 16 +
node_modules/sift/sift.min.js.map | 1 +
node_modules/sift/src/core.d.ts | 123 +
node_modules/sift/src/core.js | 270 +
node_modules/sift/src/core.js.map | 1 +
node_modules/sift/src/core.ts | 479 ++
node_modules/sift/src/index.d.ts | 6 +
node_modules/sift/src/index.js | 35 +
node_modules/sift/src/index.js.map | 1 +
node_modules/sift/src/index.ts | 42 +
node_modules/sift/src/operations.d.ts | 85 +
node_modules/sift/src/operations.js | 276 +
node_modules/sift/src/operations.js.map | 1 +
node_modules/sift/src/operations.ts | 411 +
node_modules/sift/src/utils.d.ts | 9 +
node_modules/sift/src/utils.js | 70 +
node_modules/sift/src/utils.js.map | 1 +
node_modules/sift/src/utils.ts | 68 +
node_modules/smart-buffer/.prettierrc.yaml | 5 +
node_modules/smart-buffer/.travis.yml | 13 +
node_modules/smart-buffer/LICENSE | 20 +
node_modules/smart-buffer/README.md | 633 ++
.../smart-buffer/build/smartbuffer.js | 1233 +++
.../smart-buffer/build/smartbuffer.js.map | 1 +
node_modules/smart-buffer/build/utils.js | 108 +
node_modules/smart-buffer/build/utils.js.map | 1 +
node_modules/smart-buffer/docs/CHANGELOG.md | 70 +
node_modules/smart-buffer/docs/README_v3.md | 367 +
node_modules/smart-buffer/docs/ROADMAP.md | 0
node_modules/smart-buffer/package.json | 79 +
.../smart-buffer/typings/smartbuffer.d.ts | 755 ++
node_modules/smart-buffer/typings/utils.d.ts | 66 +
node_modules/socket.io-adapter/LICENSE | 20 +
node_modules/socket.io-adapter/Readme.md | 23 +
.../socket.io-adapter/dist/index.d.ts | 140 +
node_modules/socket.io-adapter/dist/index.js | 275 +
node_modules/socket.io-adapter/package.json | 29 +
node_modules/socket.io-parser/LICENSE | 20 +
node_modules/socket.io-parser/Readme.md | 81 +
.../socket.io-parser/build/cjs/binary.js | 88 +
.../socket.io-parser/build/cjs/index.js | 298 +
.../socket.io-parser/build/cjs/is-binary.js | 55 +
.../socket.io-parser/build/cjs/package.json | 3 +
.../build/esm-debug/binary.d.ts | 20 +
.../build/esm-debug/binary.js | 83 +
.../build/esm-debug/index.d.ts | 90 +
.../socket.io-parser/build/esm-debug/index.js | 293 +
.../build/esm-debug/is-binary.d.ts | 7 +
.../build/esm-debug/is-binary.js | 50 +
.../build/esm-debug/package.json | 3 +
.../socket.io-parser/build/esm/binary.d.ts | 20 +
.../socket.io-parser/build/esm/binary.js | 83 +
.../socket.io-parser/build/esm/index.d.ts | 90 +
.../socket.io-parser/build/esm/index.js | 288 +
.../socket.io-parser/build/esm/is-binary.d.ts | 7 +
.../socket.io-parser/build/esm/is-binary.js | 50 +
.../socket.io-parser/build/esm/package.json | 3 +
.../node_modules/debug/LICENSE | 20 +
.../node_modules/debug/README.md | 481 ++
.../node_modules/debug/package.json | 59 +
.../node_modules/debug/src/browser.js | 269 +
.../node_modules/debug/src/common.js | 274 +
.../node_modules/debug/src/index.js | 10 +
.../node_modules/debug/src/node.js | 263 +
.../socket.io-parser/node_modules/ms/index.js | 162 +
.../node_modules/ms/license.md | 21 +
.../node_modules/ms/package.json | 37 +
.../node_modules/ms/readme.md | 60 +
node_modules/socket.io-parser/package.json | 55 +
node_modules/socket.io/LICENSE | 22 +
node_modules/socket.io/Readme.md | 269 +
.../client-dist/socket.io.esm.min.js | 7 +
.../client-dist/socket.io.esm.min.js.map | 1 +
.../socket.io/client-dist/socket.io.js | 4438 ++++++++++
.../socket.io/client-dist/socket.io.js.map | 1 +
.../socket.io/client-dist/socket.io.min.js | 7 +
.../client-dist/socket.io.min.js.map | 1 +
.../client-dist/socket.io.msgpack.min.js | 7 +
.../client-dist/socket.io.msgpack.min.js.map | 1 +
.../socket.io/dist/broadcast-operator.d.ts | 158 +
.../socket.io/dist/broadcast-operator.js | 291 +
node_modules/socket.io/dist/client.d.ts | 119 +
node_modules/socket.io/dist/client.js | 267 +
node_modules/socket.io/dist/index.d.ts | 342 +
node_modules/socket.io/dist/index.js | 603 ++
node_modules/socket.io/dist/namespace.d.ts | 204 +
node_modules/socket.io/dist/namespace.js | 310 +
.../socket.io/dist/parent-namespace.d.ts | 15 +
.../socket.io/dist/parent-namespace.js | 47 +
node_modules/socket.io/dist/socket.d.ts | 451 +
node_modules/socket.io/dist/socket.js | 714 ++
node_modules/socket.io/dist/typed-events.d.ts | 110 +
node_modules/socket.io/dist/typed-events.js | 81 +
node_modules/socket.io/dist/uws.d.ts | 3 +
node_modules/socket.io/dist/uws.js | 135 +
.../socket.io/node_modules/debug/LICENSE | 20 +
.../socket.io/node_modules/debug/README.md | 481 ++
.../socket.io/node_modules/debug/package.json | 59 +
.../node_modules/debug/src/browser.js | 269 +
.../node_modules/debug/src/common.js | 274 +
.../socket.io/node_modules/debug/src/index.js | 10 +
.../socket.io/node_modules/debug/src/node.js | 263 +
.../socket.io/node_modules/ms/index.js | 162 +
.../socket.io/node_modules/ms/license.md | 21 +
.../socket.io/node_modules/ms/package.json | 37 +
.../socket.io/node_modules/ms/readme.md | 60 +
node_modules/socket.io/package.json | 96 +
node_modules/socket.io/wrapper.mjs | 3 +
node_modules/socks/.eslintrc.cjs | 11 +
node_modules/socks/.prettierrc.yaml | 7 +
node_modules/socks/LICENSE | 20 +
node_modules/socks/README.md | 686 ++
.../socks/build/client/socksclient.js | 795 ++
.../socks/build/client/socksclient.js.map | 1 +
node_modules/socks/build/common/constants.js | 114 +
.../socks/build/common/constants.js.map | 1 +
node_modules/socks/build/common/helpers.js | 128 +
.../socks/build/common/helpers.js.map | 1 +
.../socks/build/common/receivebuffer.js | 43 +
.../socks/build/common/receivebuffer.js.map | 1 +
node_modules/socks/build/common/util.js | 25 +
node_modules/socks/build/common/util.js.map | 1 +
node_modules/socks/build/index.js | 18 +
node_modules/socks/build/index.js.map | 1 +
node_modules/socks/docs/examples/index.md | 17 +
.../examples/javascript/associateExample.md | 90 +
.../docs/examples/javascript/bindExample.md | 83 +
.../examples/javascript/connectExample.md | 258 +
.../examples/typescript/associateExample.md | 93 +
.../docs/examples/typescript/bindExample.md | 86 +
.../examples/typescript/connectExample.md | 265 +
node_modules/socks/docs/index.md | 5 +
node_modules/socks/docs/migratingFromV1.md | 86 +
node_modules/socks/package.json | 58 +
.../socks/typings/client/socksclient.d.ts | 162 +
.../socks/typings/common/constants.d.ts | 152 +
.../socks/typings/common/helpers.d.ts | 13 +
.../socks/typings/common/receivebuffer.d.ts | 12 +
node_modules/socks/typings/common/util.d.ts | 17 +
node_modules/socks/typings/index.d.ts | 1 +
node_modules/sparse-bitfield/.npmignore | 1 +
node_modules/sparse-bitfield/.travis.yml | 6 +
node_modules/sparse-bitfield/LICENSE | 21 +
node_modules/sparse-bitfield/README.md | 62 +
node_modules/sparse-bitfield/index.js | 95 +
node_modules/sparse-bitfield/package.json | 27 +
node_modules/sparse-bitfield/test.js | 79 +
node_modules/tr46/LICENSE.md | 21 +
node_modules/tr46/README.md | 78 +
node_modules/tr46/index.js | 298 +
node_modules/tr46/lib/mappingTable.json | 1 +
node_modules/tr46/lib/regexes.js | 29 +
node_modules/tr46/lib/statusMapping.js | 11 +
node_modules/tr46/package.json | 47 +
node_modules/uid-safe/HISTORY.md | 61 +
node_modules/uid-safe/LICENSE | 22 +
node_modules/uid-safe/README.md | 77 +
node_modules/uid-safe/index.js | 107 +
node_modules/uid-safe/package.json | 46 +
node_modules/webidl-conversions/LICENSE.md | 12 +
node_modules/webidl-conversions/README.md | 99 +
node_modules/webidl-conversions/lib/index.js | 450 +
node_modules/webidl-conversions/package.json | 35 +
node_modules/whatwg-url/LICENSE.txt | 21 +
node_modules/whatwg-url/README.md | 106 +
node_modules/whatwg-url/index.js | 27 +
node_modules/whatwg-url/lib/Function.js | 42 +
node_modules/whatwg-url/lib/URL-impl.js | 209 +
node_modules/whatwg-url/lib/URL.js | 442 +
.../whatwg-url/lib/URLSearchParams-impl.js | 130 +
.../whatwg-url/lib/URLSearchParams.js | 472 ++
node_modules/whatwg-url/lib/VoidFunction.js | 26 +
node_modules/whatwg-url/lib/encoding.js | 16 +
node_modules/whatwg-url/lib/infra.js | 26 +
.../whatwg-url/lib/percent-encoding.js | 142 +
.../whatwg-url/lib/url-state-machine.js | 1244 +++
node_modules/whatwg-url/lib/urlencoded.js | 106 +
node_modules/whatwg-url/lib/utils.js | 190 +
node_modules/whatwg-url/package.json | 58 +
node_modules/whatwg-url/webidl2js-wrapper.js | 7 +
node_modules/ws/LICENSE | 19 +
node_modules/ws/README.md | 493 ++
node_modules/ws/browser.js | 8 +
node_modules/ws/index.js | 13 +
node_modules/ws/lib/buffer-util.js | 126 +
node_modules/ws/lib/constants.js | 12 +
node_modules/ws/lib/event-target.js | 266 +
node_modules/ws/lib/extension.js | 203 +
node_modules/ws/lib/limiter.js | 55 +
node_modules/ws/lib/permessage-deflate.js | 511 ++
node_modules/ws/lib/receiver.js | 612 ++
node_modules/ws/lib/sender.js | 422 +
node_modules/ws/lib/stream.js | 180 +
node_modules/ws/lib/subprotocol.js | 62 +
node_modules/ws/lib/validation.js | 124 +
node_modules/ws/lib/websocket-server.js | 485 ++
node_modules/ws/lib/websocket.js | 1149 +++
node_modules/ws/package.json | 61 +
node_modules/ws/wrapper.mjs | 8 +
package-lock.json | 1021 ++-
package.json | 9 +-
partials/footer.ejs | 2 +
partials/head.ejs | 5 +
partials/menu.ejs | 15 +
public/css/style.css | 78 +
public/js/home.js | 34 +
public/js/main.js | 31 +
public/js/post.js | 116 +
public/js/search.js | 29 +
public/main.js | 30 -
public/style.css | 3 -
replies.json | 7 +
view/index.ejs | 24 +
view/post.ejs | 30 +
view/search.ejs | 22 +
views/index.ejs | 19 -
views/post.ejs | 12 -
1219 files changed, 238646 insertions(+), 96 deletions(-)
create mode 100644 node_modules/@socket.io/component-emitter/LICENSE
create mode 100644 node_modules/@socket.io/component-emitter/Readme.md
create mode 100644 node_modules/@socket.io/component-emitter/index.d.ts
create mode 100644 node_modules/@socket.io/component-emitter/index.js
create mode 100644 node_modules/@socket.io/component-emitter/index.mjs
create mode 100644 node_modules/@socket.io/component-emitter/package.json
create mode 100755 node_modules/@types/cookie/LICENSE
create mode 100755 node_modules/@types/cookie/README.md
create mode 100755 node_modules/@types/cookie/index.d.ts
create mode 100755 node_modules/@types/cookie/package.json
create mode 100755 node_modules/@types/cors/LICENSE
create mode 100755 node_modules/@types/cors/README.md
create mode 100755 node_modules/@types/cors/index.d.ts
create mode 100755 node_modules/@types/cors/package.json
create mode 100755 node_modules/@types/webidl-conversions/LICENSE
create mode 100755 node_modules/@types/webidl-conversions/README.md
create mode 100755 node_modules/@types/webidl-conversions/index.d.ts
create mode 100755 node_modules/@types/webidl-conversions/package.json
create mode 100755 node_modules/@types/whatwg-url/LICENSE
create mode 100755 node_modules/@types/whatwg-url/README.md
create mode 100755 node_modules/@types/whatwg-url/dist/URL-impl.d.ts
create mode 100755 node_modules/@types/whatwg-url/dist/URL.d.ts
create mode 100755 node_modules/@types/whatwg-url/dist/URLSearchParams-impl.d.ts
create mode 100755 node_modules/@types/whatwg-url/dist/URLSearchParams.d.ts
create mode 100755 node_modules/@types/whatwg-url/index.d.ts
create mode 100755 node_modules/@types/whatwg-url/package.json
create mode 100755 node_modules/@types/whatwg-url/webidl2js-wrapper.d.ts
create mode 100644 node_modules/base64-js/LICENSE
create mode 100644 node_modules/base64-js/README.md
create mode 100644 node_modules/base64-js/base64js.min.js
create mode 100644 node_modules/base64-js/index.d.ts
create mode 100644 node_modules/base64-js/index.js
create mode 100644 node_modules/base64-js/package.json
create mode 100644 node_modules/base64id/CHANGELOG.md
create mode 100644 node_modules/base64id/LICENSE
create mode 100644 node_modules/base64id/README.md
create mode 100644 node_modules/base64id/lib/base64id.js
create mode 100644 node_modules/base64id/package.json
create mode 100644 node_modules/basic-auth/HISTORY.md
create mode 100644 node_modules/basic-auth/LICENSE
create mode 100644 node_modules/basic-auth/README.md
create mode 100644 node_modules/basic-auth/index.js
create mode 100644 node_modules/basic-auth/node_modules/safe-buffer/LICENSE
create mode 100644 node_modules/basic-auth/node_modules/safe-buffer/README.md
create mode 100644 node_modules/basic-auth/node_modules/safe-buffer/index.d.ts
create mode 100644 node_modules/basic-auth/node_modules/safe-buffer/index.js
create mode 100644 node_modules/basic-auth/node_modules/safe-buffer/package.json
create mode 100644 node_modules/basic-auth/package.json
create mode 100644 node_modules/bson/LICENSE.md
create mode 100644 node_modules/bson/README.md
create mode 100644 node_modules/bson/bower.json
create mode 100644 node_modules/bson/bson.d.ts
create mode 100644 node_modules/bson/dist/bson.browser.esm.js
create mode 100644 node_modules/bson/dist/bson.browser.esm.js.map
create mode 100644 node_modules/bson/dist/bson.browser.umd.js
create mode 100644 node_modules/bson/dist/bson.browser.umd.js.map
create mode 100644 node_modules/bson/dist/bson.bundle.js
create mode 100644 node_modules/bson/dist/bson.bundle.js.map
create mode 100644 node_modules/bson/dist/bson.esm.js
create mode 100644 node_modules/bson/dist/bson.esm.js.map
create mode 100755 node_modules/bson/etc/prepare.js
create mode 100644 node_modules/bson/lib/binary.js
create mode 100644 node_modules/bson/lib/binary.js.map
create mode 100644 node_modules/bson/lib/bson.js
create mode 100644 node_modules/bson/lib/bson.js.map
create mode 100644 node_modules/bson/lib/code.js
create mode 100644 node_modules/bson/lib/code.js.map
create mode 100644 node_modules/bson/lib/constants.js
create mode 100644 node_modules/bson/lib/constants.js.map
create mode 100644 node_modules/bson/lib/db_ref.js
create mode 100644 node_modules/bson/lib/db_ref.js.map
create mode 100644 node_modules/bson/lib/decimal128.js
create mode 100644 node_modules/bson/lib/decimal128.js.map
create mode 100644 node_modules/bson/lib/double.js
create mode 100644 node_modules/bson/lib/double.js.map
create mode 100644 node_modules/bson/lib/ensure_buffer.js
create mode 100644 node_modules/bson/lib/ensure_buffer.js.map
create mode 100644 node_modules/bson/lib/error.js
create mode 100644 node_modules/bson/lib/error.js.map
create mode 100644 node_modules/bson/lib/extended_json.js
create mode 100644 node_modules/bson/lib/extended_json.js.map
create mode 100644 node_modules/bson/lib/int_32.js
create mode 100644 node_modules/bson/lib/int_32.js.map
create mode 100644 node_modules/bson/lib/long.js
create mode 100644 node_modules/bson/lib/long.js.map
create mode 100644 node_modules/bson/lib/map.js
create mode 100644 node_modules/bson/lib/map.js.map
create mode 100644 node_modules/bson/lib/max_key.js
create mode 100644 node_modules/bson/lib/max_key.js.map
create mode 100644 node_modules/bson/lib/min_key.js
create mode 100644 node_modules/bson/lib/min_key.js.map
create mode 100644 node_modules/bson/lib/objectid.js
create mode 100644 node_modules/bson/lib/objectid.js.map
create mode 100644 node_modules/bson/lib/parser/calculate_size.js
create mode 100644 node_modules/bson/lib/parser/calculate_size.js.map
create mode 100644 node_modules/bson/lib/parser/deserializer.js
create mode 100644 node_modules/bson/lib/parser/deserializer.js.map
create mode 100644 node_modules/bson/lib/parser/serializer.js
create mode 100644 node_modules/bson/lib/parser/serializer.js.map
create mode 100644 node_modules/bson/lib/parser/utils.js
create mode 100644 node_modules/bson/lib/parser/utils.js.map
create mode 100644 node_modules/bson/lib/regexp.js
create mode 100644 node_modules/bson/lib/regexp.js.map
create mode 100644 node_modules/bson/lib/symbol.js
create mode 100644 node_modules/bson/lib/symbol.js.map
create mode 100644 node_modules/bson/lib/timestamp.js
create mode 100644 node_modules/bson/lib/timestamp.js.map
create mode 100644 node_modules/bson/lib/utils/global.js
create mode 100644 node_modules/bson/lib/utils/global.js.map
create mode 100644 node_modules/bson/lib/uuid_utils.js
create mode 100644 node_modules/bson/lib/uuid_utils.js.map
create mode 100644 node_modules/bson/lib/validate_utf8.js
create mode 100644 node_modules/bson/lib/validate_utf8.js.map
create mode 100644 node_modules/bson/package.json
create mode 100644 node_modules/bson/src/binary.ts
create mode 100644 node_modules/bson/src/bson.ts
create mode 100644 node_modules/bson/src/code.ts
create mode 100644 node_modules/bson/src/constants.ts
create mode 100644 node_modules/bson/src/db_ref.ts
create mode 100644 node_modules/bson/src/decimal128.ts
create mode 100644 node_modules/bson/src/double.ts
create mode 100644 node_modules/bson/src/ensure_buffer.ts
create mode 100644 node_modules/bson/src/error.ts
create mode 100644 node_modules/bson/src/extended_json.ts
create mode 100644 node_modules/bson/src/int_32.ts
create mode 100644 node_modules/bson/src/long.ts
create mode 100644 node_modules/bson/src/map.ts
create mode 100644 node_modules/bson/src/max_key.ts
create mode 100644 node_modules/bson/src/min_key.ts
create mode 100644 node_modules/bson/src/objectid.ts
create mode 100644 node_modules/bson/src/parser/calculate_size.ts
create mode 100644 node_modules/bson/src/parser/deserializer.ts
create mode 100644 node_modules/bson/src/parser/serializer.ts
create mode 100644 node_modules/bson/src/parser/utils.ts
create mode 100644 node_modules/bson/src/regexp.ts
create mode 100644 node_modules/bson/src/symbol.ts
create mode 100644 node_modules/bson/src/timestamp.ts
create mode 100644 node_modules/bson/src/utils/global.ts
create mode 100644 node_modules/bson/src/uuid_utils.ts
create mode 100644 node_modules/bson/src/validate_utf8.ts
create mode 100644 node_modules/buffer/AUTHORS.md
create mode 100644 node_modules/buffer/LICENSE
create mode 100644 node_modules/buffer/README.md
create mode 100644 node_modules/buffer/index.d.ts
create mode 100644 node_modules/buffer/index.js
create mode 100644 node_modules/buffer/package.json
create mode 100644 node_modules/cors/CONTRIBUTING.md
create mode 100644 node_modules/cors/HISTORY.md
create mode 100644 node_modules/cors/LICENSE
create mode 100644 node_modules/cors/README.md
create mode 100644 node_modules/cors/lib/index.js
create mode 100644 node_modules/cors/package.json
create mode 100644 node_modules/denque/CHANGELOG.md
create mode 100644 node_modules/denque/LICENSE
create mode 100644 node_modules/denque/README.md
create mode 100644 node_modules/denque/index.d.ts
create mode 100644 node_modules/denque/index.js
create mode 100644 node_modules/denque/package.json
create mode 100644 node_modules/engine.io-parser/LICENSE
create mode 100644 node_modules/engine.io-parser/Readme.md
create mode 100644 node_modules/engine.io-parser/build/cjs/commons.js
create mode 100644 node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js
create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.browser.js
create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.js
create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.browser.js
create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.js
create mode 100644 node_modules/engine.io-parser/build/cjs/index.js
create mode 100644 node_modules/engine.io-parser/build/cjs/package.json
create mode 100644 node_modules/engine.io-parser/build/esm/commons.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/commons.js
create mode 100644 node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js
create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.browser.js
create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.js
create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.browser.js
create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.js
create mode 100644 node_modules/engine.io-parser/build/esm/index.d.ts
create mode 100644 node_modules/engine.io-parser/build/esm/index.js
create mode 100644 node_modules/engine.io-parser/build/esm/package.json
create mode 100644 node_modules/engine.io-parser/package.json
create mode 100644 node_modules/engine.io/LICENSE
create mode 100644 node_modules/engine.io/README.md
create mode 100644 node_modules/engine.io/build/engine.io.d.ts
create mode 100644 node_modules/engine.io/build/engine.io.js
create mode 100644 node_modules/engine.io/build/parser-v3/index.d.ts
create mode 100644 node_modules/engine.io/build/parser-v3/index.js
create mode 100644 node_modules/engine.io/build/parser-v3/utf8.d.ts
create mode 100644 node_modules/engine.io/build/parser-v3/utf8.js
create mode 100644 node_modules/engine.io/build/server.d.ts
create mode 100644 node_modules/engine.io/build/server.js
create mode 100644 node_modules/engine.io/build/socket.d.ts
create mode 100644 node_modules/engine.io/build/socket.js
create mode 100644 node_modules/engine.io/build/transport.d.ts
create mode 100644 node_modules/engine.io/build/transport.js
create mode 100644 node_modules/engine.io/build/transports-uws/index.d.ts
create mode 100644 node_modules/engine.io/build/transports-uws/index.js
create mode 100644 node_modules/engine.io/build/transports-uws/polling.d.ts
create mode 100644 node_modules/engine.io/build/transports-uws/polling.js
create mode 100644 node_modules/engine.io/build/transports-uws/websocket.d.ts
create mode 100644 node_modules/engine.io/build/transports-uws/websocket.js
create mode 100644 node_modules/engine.io/build/transports/index.d.ts
create mode 100644 node_modules/engine.io/build/transports/index.js
create mode 100644 node_modules/engine.io/build/transports/polling-jsonp.d.ts
create mode 100644 node_modules/engine.io/build/transports/polling-jsonp.js
create mode 100644 node_modules/engine.io/build/transports/polling.d.ts
create mode 100644 node_modules/engine.io/build/transports/polling.js
create mode 100644 node_modules/engine.io/build/transports/websocket.d.ts
create mode 100644 node_modules/engine.io/build/transports/websocket.js
create mode 100644 node_modules/engine.io/build/userver.d.ts
create mode 100644 node_modules/engine.io/build/userver.js
create mode 100644 node_modules/engine.io/node_modules/cookie/HISTORY.md
create mode 100644 node_modules/engine.io/node_modules/cookie/LICENSE
create mode 100644 node_modules/engine.io/node_modules/cookie/README.md
create mode 100644 node_modules/engine.io/node_modules/cookie/index.js
create mode 100644 node_modules/engine.io/node_modules/cookie/package.json
create mode 100644 node_modules/engine.io/node_modules/debug/LICENSE
create mode 100644 node_modules/engine.io/node_modules/debug/README.md
create mode 100644 node_modules/engine.io/node_modules/debug/package.json
create mode 100644 node_modules/engine.io/node_modules/debug/src/browser.js
create mode 100644 node_modules/engine.io/node_modules/debug/src/common.js
create mode 100644 node_modules/engine.io/node_modules/debug/src/index.js
create mode 100644 node_modules/engine.io/node_modules/debug/src/node.js
create mode 100644 node_modules/engine.io/node_modules/ms/index.js
create mode 100644 node_modules/engine.io/node_modules/ms/license.md
create mode 100644 node_modules/engine.io/node_modules/ms/package.json
create mode 100644 node_modules/engine.io/node_modules/ms/readme.md
create mode 100644 node_modules/engine.io/package.json
create mode 100644 node_modules/engine.io/wrapper.mjs
create mode 100644 node_modules/errorhandler/HISTORY.md
create mode 100644 node_modules/errorhandler/LICENSE
create mode 100644 node_modules/errorhandler/README.md
create mode 100644 node_modules/errorhandler/index.js
create mode 100644 node_modules/errorhandler/package.json
create mode 100644 node_modules/errorhandler/public/error.html
create mode 100644 node_modules/errorhandler/public/style.css
create mode 100644 node_modules/express-session/HISTORY.md
create mode 100644 node_modules/express-session/LICENSE
create mode 100644 node_modules/express-session/README.md
create mode 100644 node_modules/express-session/index.js
create mode 100644 node_modules/express-session/node_modules/cookie/HISTORY.md
create mode 100644 node_modules/express-session/node_modules/cookie/LICENSE
create mode 100644 node_modules/express-session/node_modules/cookie/README.md
create mode 100644 node_modules/express-session/node_modules/cookie/index.js
create mode 100644 node_modules/express-session/node_modules/cookie/package.json
create mode 100644 node_modules/express-session/package.json
create mode 100644 node_modules/express-session/session/cookie.js
create mode 100644 node_modules/express-session/session/memory.js
create mode 100644 node_modules/express-session/session/session.js
create mode 100644 node_modules/express-session/session/store.js
create mode 100644 node_modules/ieee754/LICENSE
create mode 100644 node_modules/ieee754/README.md
create mode 100644 node_modules/ieee754/index.d.ts
create mode 100644 node_modules/ieee754/index.js
create mode 100644 node_modules/ieee754/package.json
create mode 100644 node_modules/ip/README.md
create mode 100644 node_modules/ip/lib/ip.js
create mode 100644 node_modules/ip/package.json
create mode 100644 node_modules/kareem/.eslintrc.json
create mode 100644 node_modules/kareem/.github/workflows/test.yml
create mode 100644 node_modules/kareem/.travis.yml
create mode 100644 node_modules/kareem/CHANGELOG.md
create mode 100644 node_modules/kareem/LICENSE
create mode 100644 node_modules/kareem/Makefile
create mode 100644 node_modules/kareem/README.md
create mode 100644 node_modules/kareem/docs.js
create mode 100644 node_modules/kareem/index.js
create mode 100644 node_modules/kareem/package.json
create mode 100644 node_modules/kareem/test/examples.test.js
create mode 100644 node_modules/kareem/test/misc.test.js
create mode 100644 node_modules/kareem/test/post.test.js
create mode 100644 node_modules/kareem/test/pre.test.js
create mode 100644 node_modules/kareem/test/wrap.test.js
create mode 100644 node_modules/memory-pager/.travis.yml
create mode 100644 node_modules/memory-pager/LICENSE
create mode 100644 node_modules/memory-pager/README.md
create mode 100644 node_modules/memory-pager/index.js
create mode 100644 node_modules/memory-pager/package.json
create mode 100644 node_modules/memory-pager/test.js
create mode 100644 node_modules/mongodb-connection-string-url/.esm-wrapper.mjs
create mode 100644 node_modules/mongodb-connection-string-url/LICENSE
create mode 100644 node_modules/mongodb-connection-string-url/README.md
create mode 100644 node_modules/mongodb-connection-string-url/lib/index.d.ts
create mode 100644 node_modules/mongodb-connection-string-url/lib/index.js
create mode 100644 node_modules/mongodb-connection-string-url/lib/index.js.map
create mode 100644 node_modules/mongodb-connection-string-url/lib/redact.d.ts
create mode 100644 node_modules/mongodb-connection-string-url/lib/redact.js
create mode 100644 node_modules/mongodb-connection-string-url/lib/redact.js.map
create mode 100644 node_modules/mongodb-connection-string-url/package.json
create mode 100644 node_modules/mongodb/LICENSE.md
create mode 100644 node_modules/mongodb/README.md
create mode 100755 node_modules/mongodb/etc/prepare.js
create mode 100644 node_modules/mongodb/lib/admin.js
create mode 100644 node_modules/mongodb/lib/admin.js.map
create mode 100644 node_modules/mongodb/lib/bson.js
create mode 100644 node_modules/mongodb/lib/bson.js.map
create mode 100644 node_modules/mongodb/lib/bulk/common.js
create mode 100644 node_modules/mongodb/lib/bulk/common.js.map
create mode 100644 node_modules/mongodb/lib/bulk/ordered.js
create mode 100644 node_modules/mongodb/lib/bulk/ordered.js.map
create mode 100644 node_modules/mongodb/lib/bulk/unordered.js
create mode 100644 node_modules/mongodb/lib/bulk/unordered.js.map
create mode 100644 node_modules/mongodb/lib/change_stream.js
create mode 100644 node_modules/mongodb/lib/change_stream.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/auth_provider.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/auth_provider.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/gssapi.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/gssapi.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongo_credentials.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongo_credentials.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongocr.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongocr.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongodb_aws.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/mongodb_aws.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/plain.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/plain.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/providers.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/providers.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/scram.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/scram.js.map
create mode 100644 node_modules/mongodb/lib/cmap/auth/x509.js
create mode 100644 node_modules/mongodb/lib/cmap/auth/x509.js.map
create mode 100644 node_modules/mongodb/lib/cmap/command_monitoring_events.js
create mode 100644 node_modules/mongodb/lib/cmap/command_monitoring_events.js.map
create mode 100644 node_modules/mongodb/lib/cmap/commands.js
create mode 100644 node_modules/mongodb/lib/cmap/commands.js.map
create mode 100644 node_modules/mongodb/lib/cmap/connect.js
create mode 100644 node_modules/mongodb/lib/cmap/connect.js.map
create mode 100644 node_modules/mongodb/lib/cmap/connection.js
create mode 100644 node_modules/mongodb/lib/cmap/connection.js.map
create mode 100644 node_modules/mongodb/lib/cmap/connection_pool.js
create mode 100644 node_modules/mongodb/lib/cmap/connection_pool.js.map
create mode 100644 node_modules/mongodb/lib/cmap/connection_pool_events.js
create mode 100644 node_modules/mongodb/lib/cmap/connection_pool_events.js.map
create mode 100644 node_modules/mongodb/lib/cmap/errors.js
create mode 100644 node_modules/mongodb/lib/cmap/errors.js.map
create mode 100644 node_modules/mongodb/lib/cmap/message_stream.js
create mode 100644 node_modules/mongodb/lib/cmap/message_stream.js.map
create mode 100644 node_modules/mongodb/lib/cmap/metrics.js
create mode 100644 node_modules/mongodb/lib/cmap/metrics.js.map
create mode 100644 node_modules/mongodb/lib/cmap/stream_description.js
create mode 100644 node_modules/mongodb/lib/cmap/stream_description.js.map
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/compression.js
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/compression.js.map
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/constants.js
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/constants.js.map
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/shared.js
create mode 100644 node_modules/mongodb/lib/cmap/wire_protocol/shared.js.map
create mode 100644 node_modules/mongodb/lib/collection.js
create mode 100644 node_modules/mongodb/lib/collection.js.map
create mode 100644 node_modules/mongodb/lib/connection_string.js
create mode 100644 node_modules/mongodb/lib/connection_string.js.map
create mode 100644 node_modules/mongodb/lib/constants.js
create mode 100644 node_modules/mongodb/lib/constants.js.map
create mode 100644 node_modules/mongodb/lib/cursor/abstract_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/abstract_cursor.js.map
create mode 100644 node_modules/mongodb/lib/cursor/aggregation_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/aggregation_cursor.js.map
create mode 100644 node_modules/mongodb/lib/cursor/change_stream_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/change_stream_cursor.js.map
create mode 100644 node_modules/mongodb/lib/cursor/find_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/find_cursor.js.map
create mode 100644 node_modules/mongodb/lib/cursor/list_collections_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/list_collections_cursor.js.map
create mode 100644 node_modules/mongodb/lib/cursor/list_indexes_cursor.js
create mode 100644 node_modules/mongodb/lib/cursor/list_indexes_cursor.js.map
create mode 100644 node_modules/mongodb/lib/db.js
create mode 100644 node_modules/mongodb/lib/db.js.map
create mode 100644 node_modules/mongodb/lib/deps.js
create mode 100644 node_modules/mongodb/lib/deps.js.map
create mode 100644 node_modules/mongodb/lib/encrypter.js
create mode 100644 node_modules/mongodb/lib/encrypter.js.map
create mode 100644 node_modules/mongodb/lib/error.js
create mode 100644 node_modules/mongodb/lib/error.js.map
create mode 100644 node_modules/mongodb/lib/explain.js
create mode 100644 node_modules/mongodb/lib/explain.js.map
create mode 100644 node_modules/mongodb/lib/gridfs/download.js
create mode 100644 node_modules/mongodb/lib/gridfs/download.js.map
create mode 100644 node_modules/mongodb/lib/gridfs/index.js
create mode 100644 node_modules/mongodb/lib/gridfs/index.js.map
create mode 100644 node_modules/mongodb/lib/gridfs/upload.js
create mode 100644 node_modules/mongodb/lib/gridfs/upload.js.map
create mode 100644 node_modules/mongodb/lib/index.js
create mode 100644 node_modules/mongodb/lib/index.js.map
create mode 100644 node_modules/mongodb/lib/logger.js
create mode 100644 node_modules/mongodb/lib/logger.js.map
create mode 100644 node_modules/mongodb/lib/mongo_client.js
create mode 100644 node_modules/mongodb/lib/mongo_client.js.map
create mode 100644 node_modules/mongodb/lib/mongo_types.js
create mode 100644 node_modules/mongodb/lib/mongo_types.js.map
create mode 100644 node_modules/mongodb/lib/operations/add_user.js
create mode 100644 node_modules/mongodb/lib/operations/add_user.js.map
create mode 100644 node_modules/mongodb/lib/operations/aggregate.js
create mode 100644 node_modules/mongodb/lib/operations/aggregate.js.map
create mode 100644 node_modules/mongodb/lib/operations/bulk_write.js
create mode 100644 node_modules/mongodb/lib/operations/bulk_write.js.map
create mode 100644 node_modules/mongodb/lib/operations/collections.js
create mode 100644 node_modules/mongodb/lib/operations/collections.js.map
create mode 100644 node_modules/mongodb/lib/operations/command.js
create mode 100644 node_modules/mongodb/lib/operations/command.js.map
create mode 100644 node_modules/mongodb/lib/operations/common_functions.js
create mode 100644 node_modules/mongodb/lib/operations/common_functions.js.map
create mode 100644 node_modules/mongodb/lib/operations/connect.js
create mode 100644 node_modules/mongodb/lib/operations/connect.js.map
create mode 100644 node_modules/mongodb/lib/operations/count.js
create mode 100644 node_modules/mongodb/lib/operations/count.js.map
create mode 100644 node_modules/mongodb/lib/operations/count_documents.js
create mode 100644 node_modules/mongodb/lib/operations/count_documents.js.map
create mode 100644 node_modules/mongodb/lib/operations/create_collection.js
create mode 100644 node_modules/mongodb/lib/operations/create_collection.js.map
create mode 100644 node_modules/mongodb/lib/operations/delete.js
create mode 100644 node_modules/mongodb/lib/operations/delete.js.map
create mode 100644 node_modules/mongodb/lib/operations/distinct.js
create mode 100644 node_modules/mongodb/lib/operations/distinct.js.map
create mode 100644 node_modules/mongodb/lib/operations/drop.js
create mode 100644 node_modules/mongodb/lib/operations/drop.js.map
create mode 100644 node_modules/mongodb/lib/operations/estimated_document_count.js
create mode 100644 node_modules/mongodb/lib/operations/estimated_document_count.js.map
create mode 100644 node_modules/mongodb/lib/operations/eval.js
create mode 100644 node_modules/mongodb/lib/operations/eval.js.map
create mode 100644 node_modules/mongodb/lib/operations/execute_operation.js
create mode 100644 node_modules/mongodb/lib/operations/execute_operation.js.map
create mode 100644 node_modules/mongodb/lib/operations/find.js
create mode 100644 node_modules/mongodb/lib/operations/find.js.map
create mode 100644 node_modules/mongodb/lib/operations/find_and_modify.js
create mode 100644 node_modules/mongodb/lib/operations/find_and_modify.js.map
create mode 100644 node_modules/mongodb/lib/operations/get_more.js
create mode 100644 node_modules/mongodb/lib/operations/get_more.js.map
create mode 100644 node_modules/mongodb/lib/operations/indexes.js
create mode 100644 node_modules/mongodb/lib/operations/indexes.js.map
create mode 100644 node_modules/mongodb/lib/operations/insert.js
create mode 100644 node_modules/mongodb/lib/operations/insert.js.map
create mode 100644 node_modules/mongodb/lib/operations/is_capped.js
create mode 100644 node_modules/mongodb/lib/operations/is_capped.js.map
create mode 100644 node_modules/mongodb/lib/operations/kill_cursors.js
create mode 100644 node_modules/mongodb/lib/operations/kill_cursors.js.map
create mode 100644 node_modules/mongodb/lib/operations/list_collections.js
create mode 100644 node_modules/mongodb/lib/operations/list_collections.js.map
create mode 100644 node_modules/mongodb/lib/operations/list_databases.js
create mode 100644 node_modules/mongodb/lib/operations/list_databases.js.map
create mode 100644 node_modules/mongodb/lib/operations/map_reduce.js
create mode 100644 node_modules/mongodb/lib/operations/map_reduce.js.map
create mode 100644 node_modules/mongodb/lib/operations/operation.js
create mode 100644 node_modules/mongodb/lib/operations/operation.js.map
create mode 100644 node_modules/mongodb/lib/operations/options_operation.js
create mode 100644 node_modules/mongodb/lib/operations/options_operation.js.map
create mode 100644 node_modules/mongodb/lib/operations/profiling_level.js
create mode 100644 node_modules/mongodb/lib/operations/profiling_level.js.map
create mode 100644 node_modules/mongodb/lib/operations/remove_user.js
create mode 100644 node_modules/mongodb/lib/operations/remove_user.js.map
create mode 100644 node_modules/mongodb/lib/operations/rename.js
create mode 100644 node_modules/mongodb/lib/operations/rename.js.map
create mode 100644 node_modules/mongodb/lib/operations/run_command.js
create mode 100644 node_modules/mongodb/lib/operations/run_command.js.map
create mode 100644 node_modules/mongodb/lib/operations/set_profiling_level.js
create mode 100644 node_modules/mongodb/lib/operations/set_profiling_level.js.map
create mode 100644 node_modules/mongodb/lib/operations/stats.js
create mode 100644 node_modules/mongodb/lib/operations/stats.js.map
create mode 100644 node_modules/mongodb/lib/operations/update.js
create mode 100644 node_modules/mongodb/lib/operations/update.js.map
create mode 100644 node_modules/mongodb/lib/operations/validate_collection.js
create mode 100644 node_modules/mongodb/lib/operations/validate_collection.js.map
create mode 100644 node_modules/mongodb/lib/promise_provider.js
create mode 100644 node_modules/mongodb/lib/promise_provider.js.map
create mode 100644 node_modules/mongodb/lib/read_concern.js
create mode 100644 node_modules/mongodb/lib/read_concern.js.map
create mode 100644 node_modules/mongodb/lib/read_preference.js
create mode 100644 node_modules/mongodb/lib/read_preference.js.map
create mode 100644 node_modules/mongodb/lib/sdam/common.js
create mode 100644 node_modules/mongodb/lib/sdam/common.js.map
create mode 100644 node_modules/mongodb/lib/sdam/events.js
create mode 100644 node_modules/mongodb/lib/sdam/events.js.map
create mode 100644 node_modules/mongodb/lib/sdam/monitor.js
create mode 100644 node_modules/mongodb/lib/sdam/monitor.js.map
create mode 100644 node_modules/mongodb/lib/sdam/server.js
create mode 100644 node_modules/mongodb/lib/sdam/server.js.map
create mode 100644 node_modules/mongodb/lib/sdam/server_description.js
create mode 100644 node_modules/mongodb/lib/sdam/server_description.js.map
create mode 100644 node_modules/mongodb/lib/sdam/server_selection.js
create mode 100644 node_modules/mongodb/lib/sdam/server_selection.js.map
create mode 100644 node_modules/mongodb/lib/sdam/srv_polling.js
create mode 100644 node_modules/mongodb/lib/sdam/srv_polling.js.map
create mode 100644 node_modules/mongodb/lib/sdam/topology.js
create mode 100644 node_modules/mongodb/lib/sdam/topology.js.map
create mode 100644 node_modules/mongodb/lib/sdam/topology_description.js
create mode 100644 node_modules/mongodb/lib/sdam/topology_description.js.map
create mode 100644 node_modules/mongodb/lib/sessions.js
create mode 100644 node_modules/mongodb/lib/sessions.js.map
create mode 100644 node_modules/mongodb/lib/sort.js
create mode 100644 node_modules/mongodb/lib/sort.js.map
create mode 100644 node_modules/mongodb/lib/transactions.js
create mode 100644 node_modules/mongodb/lib/transactions.js.map
create mode 100644 node_modules/mongodb/lib/utils.js
create mode 100644 node_modules/mongodb/lib/utils.js.map
create mode 100644 node_modules/mongodb/lib/write_concern.js
create mode 100644 node_modules/mongodb/lib/write_concern.js.map
create mode 100644 node_modules/mongodb/mongodb.d.ts
create mode 100644 node_modules/mongodb/package.json
create mode 100644 node_modules/mongodb/src/admin.ts
create mode 100644 node_modules/mongodb/src/bson.ts
create mode 100644 node_modules/mongodb/src/bulk/common.ts
create mode 100644 node_modules/mongodb/src/bulk/ordered.ts
create mode 100644 node_modules/mongodb/src/bulk/unordered.ts
create mode 100644 node_modules/mongodb/src/change_stream.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/auth_provider.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/gssapi.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/mongo_credentials.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/mongocr.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/mongodb_aws.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/plain.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/providers.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/scram.ts
create mode 100644 node_modules/mongodb/src/cmap/auth/x509.ts
create mode 100644 node_modules/mongodb/src/cmap/command_monitoring_events.ts
create mode 100644 node_modules/mongodb/src/cmap/commands.ts
create mode 100644 node_modules/mongodb/src/cmap/connect.ts
create mode 100644 node_modules/mongodb/src/cmap/connection.ts
create mode 100644 node_modules/mongodb/src/cmap/connection_pool.ts
create mode 100644 node_modules/mongodb/src/cmap/connection_pool_events.ts
create mode 100644 node_modules/mongodb/src/cmap/errors.ts
create mode 100644 node_modules/mongodb/src/cmap/message_stream.ts
create mode 100644 node_modules/mongodb/src/cmap/metrics.ts
create mode 100644 node_modules/mongodb/src/cmap/stream_description.ts
create mode 100644 node_modules/mongodb/src/cmap/wire_protocol/compression.ts
create mode 100644 node_modules/mongodb/src/cmap/wire_protocol/constants.ts
create mode 100644 node_modules/mongodb/src/cmap/wire_protocol/shared.ts
create mode 100644 node_modules/mongodb/src/collection.ts
create mode 100644 node_modules/mongodb/src/connection_string.ts
create mode 100644 node_modules/mongodb/src/constants.ts
create mode 100644 node_modules/mongodb/src/cursor/abstract_cursor.ts
create mode 100644 node_modules/mongodb/src/cursor/aggregation_cursor.ts
create mode 100644 node_modules/mongodb/src/cursor/change_stream_cursor.ts
create mode 100644 node_modules/mongodb/src/cursor/find_cursor.ts
create mode 100644 node_modules/mongodb/src/cursor/list_collections_cursor.ts
create mode 100644 node_modules/mongodb/src/cursor/list_indexes_cursor.ts
create mode 100644 node_modules/mongodb/src/db.ts
create mode 100644 node_modules/mongodb/src/deps.ts
create mode 100644 node_modules/mongodb/src/encrypter.ts
create mode 100644 node_modules/mongodb/src/error.ts
create mode 100644 node_modules/mongodb/src/explain.ts
create mode 100644 node_modules/mongodb/src/gridfs/download.ts
create mode 100644 node_modules/mongodb/src/gridfs/index.ts
create mode 100644 node_modules/mongodb/src/gridfs/upload.ts
create mode 100644 node_modules/mongodb/src/index.ts
create mode 100644 node_modules/mongodb/src/logger.ts
create mode 100644 node_modules/mongodb/src/mongo_client.ts
create mode 100644 node_modules/mongodb/src/mongo_types.ts
create mode 100644 node_modules/mongodb/src/operations/add_user.ts
create mode 100644 node_modules/mongodb/src/operations/aggregate.ts
create mode 100644 node_modules/mongodb/src/operations/bulk_write.ts
create mode 100644 node_modules/mongodb/src/operations/collections.ts
create mode 100644 node_modules/mongodb/src/operations/command.ts
create mode 100644 node_modules/mongodb/src/operations/common_functions.ts
create mode 100644 node_modules/mongodb/src/operations/connect.ts
create mode 100644 node_modules/mongodb/src/operations/count.ts
create mode 100644 node_modules/mongodb/src/operations/count_documents.ts
create mode 100644 node_modules/mongodb/src/operations/create_collection.ts
create mode 100644 node_modules/mongodb/src/operations/delete.ts
create mode 100644 node_modules/mongodb/src/operations/distinct.ts
create mode 100644 node_modules/mongodb/src/operations/drop.ts
create mode 100644 node_modules/mongodb/src/operations/estimated_document_count.ts
create mode 100644 node_modules/mongodb/src/operations/eval.ts
create mode 100644 node_modules/mongodb/src/operations/execute_operation.ts
create mode 100644 node_modules/mongodb/src/operations/find.ts
create mode 100644 node_modules/mongodb/src/operations/find_and_modify.ts
create mode 100644 node_modules/mongodb/src/operations/get_more.ts
create mode 100644 node_modules/mongodb/src/operations/indexes.ts
create mode 100644 node_modules/mongodb/src/operations/insert.ts
create mode 100644 node_modules/mongodb/src/operations/is_capped.ts
create mode 100644 node_modules/mongodb/src/operations/kill_cursors.ts
create mode 100644 node_modules/mongodb/src/operations/list_collections.ts
create mode 100644 node_modules/mongodb/src/operations/list_databases.ts
create mode 100644 node_modules/mongodb/src/operations/map_reduce.ts
create mode 100644 node_modules/mongodb/src/operations/operation.ts
create mode 100644 node_modules/mongodb/src/operations/options_operation.ts
create mode 100644 node_modules/mongodb/src/operations/profiling_level.ts
create mode 100644 node_modules/mongodb/src/operations/remove_user.ts
create mode 100644 node_modules/mongodb/src/operations/rename.ts
create mode 100644 node_modules/mongodb/src/operations/run_command.ts
create mode 100644 node_modules/mongodb/src/operations/set_profiling_level.ts
create mode 100644 node_modules/mongodb/src/operations/stats.ts
create mode 100644 node_modules/mongodb/src/operations/update.ts
create mode 100644 node_modules/mongodb/src/operations/validate_collection.ts
create mode 100644 node_modules/mongodb/src/promise_provider.ts
create mode 100644 node_modules/mongodb/src/read_concern.ts
create mode 100644 node_modules/mongodb/src/read_preference.ts
create mode 100644 node_modules/mongodb/src/sdam/common.ts
create mode 100644 node_modules/mongodb/src/sdam/events.ts
create mode 100644 node_modules/mongodb/src/sdam/monitor.ts
create mode 100644 node_modules/mongodb/src/sdam/server.ts
create mode 100644 node_modules/mongodb/src/sdam/server_description.ts
create mode 100644 node_modules/mongodb/src/sdam/server_selection.ts
create mode 100644 node_modules/mongodb/src/sdam/srv_polling.ts
create mode 100644 node_modules/mongodb/src/sdam/topology.ts
create mode 100644 node_modules/mongodb/src/sdam/topology_description.ts
create mode 100644 node_modules/mongodb/src/sessions.ts
create mode 100644 node_modules/mongodb/src/sort.ts
create mode 100644 node_modules/mongodb/src/transactions.ts
create mode 100644 node_modules/mongodb/src/utils.ts
create mode 100644 node_modules/mongodb/src/write_concern.ts
create mode 100644 node_modules/mongodb/tsconfig.json
create mode 100644 node_modules/mongoose/.eslintrc.json
create mode 100644 node_modules/mongoose/.mocharc.yml
create mode 100644 node_modules/mongoose/LICENSE.md
create mode 100644 node_modules/mongoose/README.md
create mode 100644 node_modules/mongoose/SECURITY.md
create mode 100644 node_modules/mongoose/browser.js
create mode 100644 node_modules/mongoose/dist/browser.umd.js
create mode 100644 node_modules/mongoose/index.js
create mode 100644 node_modules/mongoose/lgtm.yml
create mode 100644 node_modules/mongoose/lib/aggregate.js
create mode 100644 node_modules/mongoose/lib/browser.js
create mode 100644 node_modules/mongoose/lib/browserDocument.js
create mode 100644 node_modules/mongoose/lib/cast.js
create mode 100644 node_modules/mongoose/lib/cast/boolean.js
create mode 100644 node_modules/mongoose/lib/cast/date.js
create mode 100644 node_modules/mongoose/lib/cast/decimal128.js
create mode 100644 node_modules/mongoose/lib/cast/number.js
create mode 100644 node_modules/mongoose/lib/cast/objectid.js
create mode 100644 node_modules/mongoose/lib/cast/string.js
create mode 100644 node_modules/mongoose/lib/collection.js
create mode 100644 node_modules/mongoose/lib/connection.js
create mode 100644 node_modules/mongoose/lib/connectionstate.js
create mode 100644 node_modules/mongoose/lib/cursor/AggregationCursor.js
create mode 100644 node_modules/mongoose/lib/cursor/ChangeStream.js
create mode 100644 node_modules/mongoose/lib/cursor/QueryCursor.js
create mode 100644 node_modules/mongoose/lib/document.js
create mode 100644 node_modules/mongoose/lib/document_provider.js
create mode 100644 node_modules/mongoose/lib/driver.js
create mode 100644 node_modules/mongoose/lib/drivers/SPEC.md
create mode 100644 node_modules/mongoose/lib/drivers/browser/ReadPreference.js
create mode 100644 node_modules/mongoose/lib/drivers/browser/binary.js
create mode 100644 node_modules/mongoose/lib/drivers/browser/decimal128.js
create mode 100644 node_modules/mongoose/lib/drivers/browser/index.js
create mode 100644 node_modules/mongoose/lib/drivers/browser/objectid.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/binary.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/decimal128.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/index.js
create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js
create mode 100644 node_modules/mongoose/lib/error/browserMissingSchema.js
create mode 100644 node_modules/mongoose/lib/error/cast.js
create mode 100644 node_modules/mongoose/lib/error/disconnected.js
create mode 100644 node_modules/mongoose/lib/error/divergentArray.js
create mode 100644 node_modules/mongoose/lib/error/eachAsyncMultiError.js
create mode 100644 node_modules/mongoose/lib/error/index.js
create mode 100644 node_modules/mongoose/lib/error/messages.js
create mode 100644 node_modules/mongoose/lib/error/missingSchema.js
create mode 100644 node_modules/mongoose/lib/error/mongooseError.js
create mode 100644 node_modules/mongoose/lib/error/notFound.js
create mode 100644 node_modules/mongoose/lib/error/objectExpected.js
create mode 100644 node_modules/mongoose/lib/error/objectParameter.js
create mode 100644 node_modules/mongoose/lib/error/overwriteModel.js
create mode 100644 node_modules/mongoose/lib/error/parallelSave.js
create mode 100644 node_modules/mongoose/lib/error/parallelValidate.js
create mode 100644 node_modules/mongoose/lib/error/serverSelection.js
create mode 100644 node_modules/mongoose/lib/error/strict.js
create mode 100644 node_modules/mongoose/lib/error/strictPopulate.js
create mode 100644 node_modules/mongoose/lib/error/syncIndexes.js
create mode 100644 node_modules/mongoose/lib/error/validation.js
create mode 100644 node_modules/mongoose/lib/error/validator.js
create mode 100644 node_modules/mongoose/lib/error/version.js
create mode 100644 node_modules/mongoose/lib/helpers/aggregate/prepareDiscriminatorPipeline.js
create mode 100644 node_modules/mongoose/lib/helpers/aggregate/stringifyFunctionOperators.js
create mode 100644 node_modules/mongoose/lib/helpers/arrayDepth.js
create mode 100644 node_modules/mongoose/lib/helpers/clone.js
create mode 100644 node_modules/mongoose/lib/helpers/common.js
create mode 100644 node_modules/mongoose/lib/helpers/cursor/eachAsync.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/areDiscriminatorValuesEqual.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getConstructor.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js
create mode 100644 node_modules/mongoose/lib/helpers/discriminator/mergeDiscriminatorSchema.js
create mode 100644 node_modules/mongoose/lib/helpers/document/applyDefaults.js
create mode 100644 node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js
create mode 100644 node_modules/mongoose/lib/helpers/document/compile.js
create mode 100644 node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js
create mode 100644 node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js
create mode 100644 node_modules/mongoose/lib/helpers/each.js
create mode 100644 node_modules/mongoose/lib/helpers/firstKey.js
create mode 100644 node_modules/mongoose/lib/helpers/get.js
create mode 100644 node_modules/mongoose/lib/helpers/getConstructorName.js
create mode 100644 node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js
create mode 100644 node_modules/mongoose/lib/helpers/getFunctionName.js
create mode 100644 node_modules/mongoose/lib/helpers/immediate.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/applySchemaCollation.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js
create mode 100644 node_modules/mongoose/lib/helpers/indexes/isTextIndex.js
create mode 100644 node_modules/mongoose/lib/helpers/isAsyncFunction.js
create mode 100644 node_modules/mongoose/lib/helpers/isBsonType.js
create mode 100644 node_modules/mongoose/lib/helpers/isMongooseObject.js
create mode 100644 node_modules/mongoose/lib/helpers/isObject.js
create mode 100644 node_modules/mongoose/lib/helpers/isPromise.js
create mode 100644 node_modules/mongoose/lib/helpers/isSimpleValidator.js
create mode 100644 node_modules/mongoose/lib/helpers/model/applyDefaultsToPOJO.js
create mode 100644 node_modules/mongoose/lib/helpers/model/applyHooks.js
create mode 100644 node_modules/mongoose/lib/helpers/model/applyMethods.js
create mode 100644 node_modules/mongoose/lib/helpers/model/applyStaticHooks.js
create mode 100644 node_modules/mongoose/lib/helpers/model/applyStatics.js
create mode 100644 node_modules/mongoose/lib/helpers/model/castBulkWrite.js
create mode 100644 node_modules/mongoose/lib/helpers/model/discriminator.js
create mode 100644 node_modules/mongoose/lib/helpers/model/pushNestedArrayPaths.js
create mode 100644 node_modules/mongoose/lib/helpers/once.js
create mode 100644 node_modules/mongoose/lib/helpers/parallelLimit.js
create mode 100644 node_modules/mongoose/lib/helpers/path/flattenObjectWithDottedPaths.js
create mode 100644 node_modules/mongoose/lib/helpers/path/parentPaths.js
create mode 100644 node_modules/mongoose/lib/helpers/path/setDottedPath.js
create mode 100644 node_modules/mongoose/lib/helpers/pluralize.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/SkipPopulateValue.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/assignVals.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/createPopulateQueryFilter.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/getVirtual.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/markArraySubdocsPopulated.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/modelNamesFromRefPath.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js
create mode 100644 node_modules/mongoose/lib/helpers/populate/validateRef.js
create mode 100644 node_modules/mongoose/lib/helpers/printJestWarning.js
create mode 100644 node_modules/mongoose/lib/helpers/processConnectionOptions.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/applyProjection.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/hasIncludedChildren.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isExclusive.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isInclusive.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isPathExcluded.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/isSubpath.js
create mode 100644 node_modules/mongoose/lib/helpers/projection/parseProjection.js
create mode 100644 node_modules/mongoose/lib/helpers/promiseOrCallback.js
create mode 100644 node_modules/mongoose/lib/helpers/query/applyGlobalOption.js
create mode 100644 node_modules/mongoose/lib/helpers/query/applyQueryMiddleware.js
create mode 100644 node_modules/mongoose/lib/helpers/query/cast$expr.js
create mode 100644 node_modules/mongoose/lib/helpers/query/castFilterPath.js
create mode 100644 node_modules/mongoose/lib/helpers/query/castUpdate.js
create mode 100644 node_modules/mongoose/lib/helpers/query/completeMany.js
create mode 100644 node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js
create mode 100644 node_modules/mongoose/lib/helpers/query/handleImmutable.js
create mode 100644 node_modules/mongoose/lib/helpers/query/hasDollarKeys.js
create mode 100644 node_modules/mongoose/lib/helpers/query/isOperator.js
create mode 100644 node_modules/mongoose/lib/helpers/query/sanitizeFilter.js
create mode 100644 node_modules/mongoose/lib/helpers/query/sanitizeProjection.js
create mode 100644 node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js
create mode 100644 node_modules/mongoose/lib/helpers/query/trusted.js
create mode 100644 node_modules/mongoose/lib/helpers/query/validOps.js
create mode 100644 node_modules/mongoose/lib/helpers/query/wrapThunk.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/addAutoId.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/applyPlugins.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/getIndexes.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/getKeysInSchemaOrder.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/getPath.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/handleIdOption.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/idGetter.js
create mode 100644 node_modules/mongoose/lib/helpers/schema/merge.js
create mode 100644 node_modules/mongoose/lib/helpers/schematype/handleImmutable.js
create mode 100644 node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js
create mode 100644 node_modules/mongoose/lib/helpers/specialProperties.js
create mode 100644 node_modules/mongoose/lib/helpers/symbols.js
create mode 100644 node_modules/mongoose/lib/helpers/timers.js
create mode 100644 node_modules/mongoose/lib/helpers/timestamps/setDocumentTimestamps.js
create mode 100644 node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js
create mode 100644 node_modules/mongoose/lib/helpers/topology/allServersUnknown.js
create mode 100644 node_modules/mongoose/lib/helpers/topology/isAtlas.js
create mode 100644 node_modules/mongoose/lib/helpers/topology/isSSLError.js
create mode 100644 node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js
create mode 100644 node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js
create mode 100644 node_modules/mongoose/lib/helpers/update/castArrayFilters.js
create mode 100644 node_modules/mongoose/lib/helpers/update/modifiedPaths.js
create mode 100644 node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js
create mode 100644 node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js
create mode 100644 node_modules/mongoose/lib/helpers/update/updatedPathsByArrayFilter.js
create mode 100644 node_modules/mongoose/lib/helpers/updateValidators.js
create mode 100644 node_modules/mongoose/lib/index.js
create mode 100644 node_modules/mongoose/lib/internal.js
create mode 100644 node_modules/mongoose/lib/model.js
create mode 100644 node_modules/mongoose/lib/options.js
create mode 100644 node_modules/mongoose/lib/options/PopulateOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaArrayOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaBufferOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaDateOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaDocumentArrayOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaMapOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaNumberOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaObjectIdOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaStringOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaSubdocumentOptions.js
create mode 100644 node_modules/mongoose/lib/options/SchemaTypeOptions.js
create mode 100644 node_modules/mongoose/lib/options/VirtualOptions.js
create mode 100644 node_modules/mongoose/lib/options/propertyOptions.js
create mode 100644 node_modules/mongoose/lib/options/removeOptions.js
create mode 100644 node_modules/mongoose/lib/options/saveOptions.js
create mode 100644 node_modules/mongoose/lib/plugins/clearValidating.js
create mode 100644 node_modules/mongoose/lib/plugins/removeSubdocs.js
create mode 100644 node_modules/mongoose/lib/plugins/saveSubdocs.js
create mode 100644 node_modules/mongoose/lib/plugins/sharding.js
create mode 100644 node_modules/mongoose/lib/plugins/trackTransaction.js
create mode 100644 node_modules/mongoose/lib/plugins/validateBeforeSave.js
create mode 100644 node_modules/mongoose/lib/promise_provider.js
create mode 100644 node_modules/mongoose/lib/query.js
create mode 100644 node_modules/mongoose/lib/queryhelpers.js
create mode 100644 node_modules/mongoose/lib/schema.js
create mode 100644 node_modules/mongoose/lib/schema/SubdocumentPath.js
create mode 100644 node_modules/mongoose/lib/schema/array.js
create mode 100644 node_modules/mongoose/lib/schema/boolean.js
create mode 100644 node_modules/mongoose/lib/schema/buffer.js
create mode 100644 node_modules/mongoose/lib/schema/date.js
create mode 100644 node_modules/mongoose/lib/schema/decimal128.js
create mode 100644 node_modules/mongoose/lib/schema/documentarray.js
create mode 100644 node_modules/mongoose/lib/schema/index.js
create mode 100644 node_modules/mongoose/lib/schema/map.js
create mode 100644 node_modules/mongoose/lib/schema/mixed.js
create mode 100644 node_modules/mongoose/lib/schema/number.js
create mode 100644 node_modules/mongoose/lib/schema/objectid.js
create mode 100644 node_modules/mongoose/lib/schema/operators/bitwise.js
create mode 100644 node_modules/mongoose/lib/schema/operators/exists.js
create mode 100644 node_modules/mongoose/lib/schema/operators/geospatial.js
create mode 100644 node_modules/mongoose/lib/schema/operators/helpers.js
create mode 100644 node_modules/mongoose/lib/schema/operators/text.js
create mode 100644 node_modules/mongoose/lib/schema/operators/type.js
create mode 100644 node_modules/mongoose/lib/schema/string.js
create mode 100644 node_modules/mongoose/lib/schema/symbols.js
create mode 100644 node_modules/mongoose/lib/schematype.js
create mode 100644 node_modules/mongoose/lib/statemachine.js
create mode 100644 node_modules/mongoose/lib/types/ArraySubdocument.js
create mode 100644 node_modules/mongoose/lib/types/DocumentArray/index.js
create mode 100644 node_modules/mongoose/lib/types/DocumentArray/isMongooseDocumentArray.js
create mode 100644 node_modules/mongoose/lib/types/DocumentArray/methods/index.js
create mode 100644 node_modules/mongoose/lib/types/array/index.js
create mode 100644 node_modules/mongoose/lib/types/array/isMongooseArray.js
create mode 100644 node_modules/mongoose/lib/types/array/methods/index.js
create mode 100644 node_modules/mongoose/lib/types/buffer.js
create mode 100644 node_modules/mongoose/lib/types/decimal128.js
create mode 100644 node_modules/mongoose/lib/types/index.js
create mode 100644 node_modules/mongoose/lib/types/map.js
create mode 100644 node_modules/mongoose/lib/types/objectid.js
create mode 100644 node_modules/mongoose/lib/types/subdocument.js
create mode 100644 node_modules/mongoose/lib/utils.js
create mode 100644 node_modules/mongoose/lib/validoptions.js
create mode 100644 node_modules/mongoose/lib/virtualtype.js
create mode 100644 node_modules/mongoose/mongoose-6.6.1.tgz
create mode 100644 node_modules/mongoose/node_modules/ms/index.js
create mode 100644 node_modules/mongoose/node_modules/ms/license.md
create mode 100644 node_modules/mongoose/node_modules/ms/package.json
create mode 100644 node_modules/mongoose/node_modules/ms/readme.md
create mode 100644 node_modules/mongoose/package.json
create mode 100644 node_modules/mongoose/scripts/build-browser.js
create mode 100644 node_modules/mongoose/scripts/create-tarball.js
create mode 100644 node_modules/mongoose/tools/auth.js
create mode 100644 node_modules/mongoose/tools/repl.js
create mode 100644 node_modules/mongoose/tools/sharded.js
create mode 100644 node_modules/mongoose/tsconfig.json
create mode 100644 node_modules/mongoose/types/aggregate.d.ts
create mode 100644 node_modules/mongoose/types/callback.d.ts
create mode 100644 node_modules/mongoose/types/collection.d.ts
create mode 100644 node_modules/mongoose/types/connection.d.ts
create mode 100644 node_modules/mongoose/types/cursor.d.ts
create mode 100644 node_modules/mongoose/types/document.d.ts
create mode 100644 node_modules/mongoose/types/error.d.ts
create mode 100644 node_modules/mongoose/types/expressions.d.ts
create mode 100644 node_modules/mongoose/types/helpers.d.ts
create mode 100644 node_modules/mongoose/types/index.d.ts
create mode 100644 node_modules/mongoose/types/indexes.d.ts
create mode 100644 node_modules/mongoose/types/inferschematype.d.ts
create mode 100644 node_modules/mongoose/types/middlewares.d.ts
create mode 100644 node_modules/mongoose/types/models.d.ts
create mode 100644 node_modules/mongoose/types/mongooseoptions.d.ts
create mode 100644 node_modules/mongoose/types/pipelinestage.d.ts
create mode 100644 node_modules/mongoose/types/populate.d.ts
create mode 100644 node_modules/mongoose/types/query.d.ts
create mode 100644 node_modules/mongoose/types/schemaoptions.d.ts
create mode 100644 node_modules/mongoose/types/schematypes.d.ts
create mode 100644 node_modules/mongoose/types/session.d.ts
create mode 100644 node_modules/mongoose/types/types.d.ts
create mode 100644 node_modules/mongoose/types/utility.d.ts
create mode 100644 node_modules/mongoose/types/validation.d.ts
create mode 100644 node_modules/mongoose/types/virtuals.d.ts
create mode 100644 node_modules/morgan/HISTORY.md
create mode 100644 node_modules/morgan/LICENSE
create mode 100644 node_modules/morgan/README.md
create mode 100644 node_modules/morgan/index.js
create mode 100644 node_modules/morgan/node_modules/on-finished/HISTORY.md
create mode 100644 node_modules/morgan/node_modules/on-finished/LICENSE
create mode 100644 node_modules/morgan/node_modules/on-finished/README.md
create mode 100644 node_modules/morgan/node_modules/on-finished/index.js
create mode 100644 node_modules/morgan/node_modules/on-finished/package.json
create mode 100644 node_modules/morgan/package.json
create mode 100644 node_modules/mpath/.travis.yml
create mode 100644 node_modules/mpath/History.md
create mode 100644 node_modules/mpath/LICENSE
create mode 100644 node_modules/mpath/README.md
create mode 100644 node_modules/mpath/SECURITY.md
create mode 100644 node_modules/mpath/index.js
create mode 100644 node_modules/mpath/lib/index.js
create mode 100644 node_modules/mpath/lib/stringToParts.js
create mode 100644 node_modules/mpath/package.json
create mode 100644 node_modules/mpath/test/.eslintrc.yml
create mode 100644 node_modules/mpath/test/index.js
create mode 100644 node_modules/mpath/test/stringToParts.js
create mode 100644 node_modules/mquery/.eslintignore
create mode 100644 node_modules/mquery/.eslintrc.json
create mode 100644 node_modules/mquery/.travis.yml
create mode 100644 node_modules/mquery/History.md
create mode 100644 node_modules/mquery/LICENSE
create mode 100644 node_modules/mquery/Makefile
create mode 100644 node_modules/mquery/README.md
create mode 100644 node_modules/mquery/SECURITY.md
create mode 100644 node_modules/mquery/lib/collection/collection.js
create mode 100644 node_modules/mquery/lib/collection/index.js
create mode 100644 node_modules/mquery/lib/collection/node.js
create mode 100644 node_modules/mquery/lib/env.js
create mode 100644 node_modules/mquery/lib/mquery.js
create mode 100644 node_modules/mquery/lib/permissions.js
create mode 100644 node_modules/mquery/lib/utils.js
create mode 100644 node_modules/mquery/node_modules/debug/LICENSE
create mode 100644 node_modules/mquery/node_modules/debug/README.md
create mode 100644 node_modules/mquery/node_modules/debug/package.json
create mode 100644 node_modules/mquery/node_modules/debug/src/browser.js
create mode 100644 node_modules/mquery/node_modules/debug/src/common.js
create mode 100644 node_modules/mquery/node_modules/debug/src/index.js
create mode 100644 node_modules/mquery/node_modules/debug/src/node.js
create mode 100644 node_modules/mquery/node_modules/ms/index.js
create mode 100644 node_modules/mquery/node_modules/ms/license.md
create mode 100644 node_modules/mquery/node_modules/ms/package.json
create mode 100644 node_modules/mquery/node_modules/ms/readme.md
create mode 100644 node_modules/mquery/package.json
create mode 100644 node_modules/mquery/test/.eslintrc.yml
create mode 100644 node_modules/mquery/test/collection/browser.js
create mode 100644 node_modules/mquery/test/collection/mongo.js
create mode 100644 node_modules/mquery/test/collection/node.js
create mode 100644 node_modules/mquery/test/env.js
create mode 100644 node_modules/mquery/test/index.js
create mode 100644 node_modules/mquery/test/utils.test.js
create mode 100644 node_modules/object-assign/index.js
create mode 100644 node_modules/object-assign/license
create mode 100644 node_modules/object-assign/package.json
create mode 100644 node_modules/object-assign/readme.md
create mode 100644 node_modules/on-headers/HISTORY.md
create mode 100644 node_modules/on-headers/LICENSE
create mode 100644 node_modules/on-headers/README.md
create mode 100644 node_modules/on-headers/index.js
create mode 100644 node_modules/on-headers/package.json
create mode 100644 node_modules/punycode/LICENSE-MIT.txt
create mode 100644 node_modules/punycode/README.md
create mode 100644 node_modules/punycode/package.json
create mode 100644 node_modules/punycode/punycode.es6.js
create mode 100644 node_modules/punycode/punycode.js
create mode 100644 node_modules/random-bytes/HISTORY.md
create mode 100644 node_modules/random-bytes/LICENSE
create mode 100644 node_modules/random-bytes/README.md
create mode 100644 node_modules/random-bytes/index.js
create mode 100644 node_modules/random-bytes/package.json
create mode 100644 node_modules/saslprep/.editorconfig
create mode 100644 node_modules/saslprep/.gitattributes
create mode 100644 node_modules/saslprep/.travis.yml
create mode 100644 node_modules/saslprep/CHANGELOG.md
create mode 100644 node_modules/saslprep/LICENSE
create mode 100644 node_modules/saslprep/code-points.mem
create mode 100644 node_modules/saslprep/generate-code-points.js
create mode 100644 node_modules/saslprep/index.js
create mode 100644 node_modules/saslprep/lib/code-points.js
create mode 100644 node_modules/saslprep/lib/memory-code-points.js
create mode 100644 node_modules/saslprep/lib/util.js
create mode 100644 node_modules/saslprep/package.json
create mode 100644 node_modules/saslprep/readme.md
create mode 100644 node_modules/saslprep/test/index.js
create mode 100644 node_modules/saslprep/test/util.js
create mode 100644 node_modules/sift/MIT-LICENSE.txt
create mode 100755 node_modules/sift/README.md
create mode 100644 node_modules/sift/es/index.js
create mode 100644 node_modules/sift/es/index.js.map
create mode 100644 node_modules/sift/es5m/index.js
create mode 100644 node_modules/sift/es5m/index.js.map
create mode 100644 node_modules/sift/index.d.ts
create mode 100644 node_modules/sift/index.js
create mode 100644 node_modules/sift/lib/core.d.ts
create mode 100644 node_modules/sift/lib/index.d.ts
create mode 100644 node_modules/sift/lib/index.js
create mode 100644 node_modules/sift/lib/index.js.map
create mode 100644 node_modules/sift/lib/operations.d.ts
create mode 100644 node_modules/sift/lib/utils.d.ts
create mode 100644 node_modules/sift/package.json
create mode 100644 node_modules/sift/sift.csp.min.js
create mode 100644 node_modules/sift/sift.csp.min.js.map
create mode 100644 node_modules/sift/sift.min.js
create mode 100644 node_modules/sift/sift.min.js.map
create mode 100644 node_modules/sift/src/core.d.ts
create mode 100644 node_modules/sift/src/core.js
create mode 100644 node_modules/sift/src/core.js.map
create mode 100644 node_modules/sift/src/core.ts
create mode 100644 node_modules/sift/src/index.d.ts
create mode 100644 node_modules/sift/src/index.js
create mode 100644 node_modules/sift/src/index.js.map
create mode 100644 node_modules/sift/src/index.ts
create mode 100644 node_modules/sift/src/operations.d.ts
create mode 100644 node_modules/sift/src/operations.js
create mode 100644 node_modules/sift/src/operations.js.map
create mode 100644 node_modules/sift/src/operations.ts
create mode 100644 node_modules/sift/src/utils.d.ts
create mode 100644 node_modules/sift/src/utils.js
create mode 100644 node_modules/sift/src/utils.js.map
create mode 100644 node_modules/sift/src/utils.ts
create mode 100644 node_modules/smart-buffer/.prettierrc.yaml
create mode 100644 node_modules/smart-buffer/.travis.yml
create mode 100644 node_modules/smart-buffer/LICENSE
create mode 100644 node_modules/smart-buffer/README.md
create mode 100644 node_modules/smart-buffer/build/smartbuffer.js
create mode 100644 node_modules/smart-buffer/build/smartbuffer.js.map
create mode 100644 node_modules/smart-buffer/build/utils.js
create mode 100644 node_modules/smart-buffer/build/utils.js.map
create mode 100644 node_modules/smart-buffer/docs/CHANGELOG.md
create mode 100644 node_modules/smart-buffer/docs/README_v3.md
create mode 100644 node_modules/smart-buffer/docs/ROADMAP.md
create mode 100644 node_modules/smart-buffer/package.json
create mode 100644 node_modules/smart-buffer/typings/smartbuffer.d.ts
create mode 100644 node_modules/smart-buffer/typings/utils.d.ts
create mode 100644 node_modules/socket.io-adapter/LICENSE
create mode 100644 node_modules/socket.io-adapter/Readme.md
create mode 100644 node_modules/socket.io-adapter/dist/index.d.ts
create mode 100644 node_modules/socket.io-adapter/dist/index.js
create mode 100644 node_modules/socket.io-adapter/package.json
create mode 100644 node_modules/socket.io-parser/LICENSE
create mode 100644 node_modules/socket.io-parser/Readme.md
create mode 100644 node_modules/socket.io-parser/build/cjs/binary.js
create mode 100644 node_modules/socket.io-parser/build/cjs/index.js
create mode 100644 node_modules/socket.io-parser/build/cjs/is-binary.js
create mode 100644 node_modules/socket.io-parser/build/cjs/package.json
create mode 100644 node_modules/socket.io-parser/build/esm-debug/binary.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm-debug/binary.js
create mode 100644 node_modules/socket.io-parser/build/esm-debug/index.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm-debug/index.js
create mode 100644 node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm-debug/is-binary.js
create mode 100644 node_modules/socket.io-parser/build/esm-debug/package.json
create mode 100644 node_modules/socket.io-parser/build/esm/binary.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm/binary.js
create mode 100644 node_modules/socket.io-parser/build/esm/index.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm/index.js
create mode 100644 node_modules/socket.io-parser/build/esm/is-binary.d.ts
create mode 100644 node_modules/socket.io-parser/build/esm/is-binary.js
create mode 100644 node_modules/socket.io-parser/build/esm/package.json
create mode 100644 node_modules/socket.io-parser/node_modules/debug/LICENSE
create mode 100644 node_modules/socket.io-parser/node_modules/debug/README.md
create mode 100644 node_modules/socket.io-parser/node_modules/debug/package.json
create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/browser.js
create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/common.js
create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/index.js
create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/node.js
create mode 100644 node_modules/socket.io-parser/node_modules/ms/index.js
create mode 100644 node_modules/socket.io-parser/node_modules/ms/license.md
create mode 100644 node_modules/socket.io-parser/node_modules/ms/package.json
create mode 100644 node_modules/socket.io-parser/node_modules/ms/readme.md
create mode 100644 node_modules/socket.io-parser/package.json
create mode 100644 node_modules/socket.io/LICENSE
create mode 100644 node_modules/socket.io/Readme.md
create mode 100644 node_modules/socket.io/client-dist/socket.io.esm.min.js
create mode 100644 node_modules/socket.io/client-dist/socket.io.esm.min.js.map
create mode 100644 node_modules/socket.io/client-dist/socket.io.js
create mode 100644 node_modules/socket.io/client-dist/socket.io.js.map
create mode 100644 node_modules/socket.io/client-dist/socket.io.min.js
create mode 100644 node_modules/socket.io/client-dist/socket.io.min.js.map
create mode 100644 node_modules/socket.io/client-dist/socket.io.msgpack.min.js
create mode 100644 node_modules/socket.io/client-dist/socket.io.msgpack.min.js.map
create mode 100644 node_modules/socket.io/dist/broadcast-operator.d.ts
create mode 100644 node_modules/socket.io/dist/broadcast-operator.js
create mode 100644 node_modules/socket.io/dist/client.d.ts
create mode 100644 node_modules/socket.io/dist/client.js
create mode 100644 node_modules/socket.io/dist/index.d.ts
create mode 100644 node_modules/socket.io/dist/index.js
create mode 100644 node_modules/socket.io/dist/namespace.d.ts
create mode 100644 node_modules/socket.io/dist/namespace.js
create mode 100644 node_modules/socket.io/dist/parent-namespace.d.ts
create mode 100644 node_modules/socket.io/dist/parent-namespace.js
create mode 100644 node_modules/socket.io/dist/socket.d.ts
create mode 100644 node_modules/socket.io/dist/socket.js
create mode 100644 node_modules/socket.io/dist/typed-events.d.ts
create mode 100644 node_modules/socket.io/dist/typed-events.js
create mode 100644 node_modules/socket.io/dist/uws.d.ts
create mode 100644 node_modules/socket.io/dist/uws.js
create mode 100644 node_modules/socket.io/node_modules/debug/LICENSE
create mode 100644 node_modules/socket.io/node_modules/debug/README.md
create mode 100644 node_modules/socket.io/node_modules/debug/package.json
create mode 100644 node_modules/socket.io/node_modules/debug/src/browser.js
create mode 100644 node_modules/socket.io/node_modules/debug/src/common.js
create mode 100644 node_modules/socket.io/node_modules/debug/src/index.js
create mode 100644 node_modules/socket.io/node_modules/debug/src/node.js
create mode 100644 node_modules/socket.io/node_modules/ms/index.js
create mode 100644 node_modules/socket.io/node_modules/ms/license.md
create mode 100644 node_modules/socket.io/node_modules/ms/package.json
create mode 100644 node_modules/socket.io/node_modules/ms/readme.md
create mode 100644 node_modules/socket.io/package.json
create mode 100644 node_modules/socket.io/wrapper.mjs
create mode 100644 node_modules/socks/.eslintrc.cjs
create mode 100644 node_modules/socks/.prettierrc.yaml
create mode 100644 node_modules/socks/LICENSE
create mode 100644 node_modules/socks/README.md
create mode 100644 node_modules/socks/build/client/socksclient.js
create mode 100644 node_modules/socks/build/client/socksclient.js.map
create mode 100644 node_modules/socks/build/common/constants.js
create mode 100644 node_modules/socks/build/common/constants.js.map
create mode 100644 node_modules/socks/build/common/helpers.js
create mode 100644 node_modules/socks/build/common/helpers.js.map
create mode 100644 node_modules/socks/build/common/receivebuffer.js
create mode 100644 node_modules/socks/build/common/receivebuffer.js.map
create mode 100644 node_modules/socks/build/common/util.js
create mode 100644 node_modules/socks/build/common/util.js.map
create mode 100644 node_modules/socks/build/index.js
create mode 100644 node_modules/socks/build/index.js.map
create mode 100644 node_modules/socks/docs/examples/index.md
create mode 100644 node_modules/socks/docs/examples/javascript/associateExample.md
create mode 100644 node_modules/socks/docs/examples/javascript/bindExample.md
create mode 100644 node_modules/socks/docs/examples/javascript/connectExample.md
create mode 100644 node_modules/socks/docs/examples/typescript/associateExample.md
create mode 100644 node_modules/socks/docs/examples/typescript/bindExample.md
create mode 100644 node_modules/socks/docs/examples/typescript/connectExample.md
create mode 100644 node_modules/socks/docs/index.md
create mode 100644 node_modules/socks/docs/migratingFromV1.md
create mode 100644 node_modules/socks/package.json
create mode 100644 node_modules/socks/typings/client/socksclient.d.ts
create mode 100644 node_modules/socks/typings/common/constants.d.ts
create mode 100644 node_modules/socks/typings/common/helpers.d.ts
create mode 100644 node_modules/socks/typings/common/receivebuffer.d.ts
create mode 100644 node_modules/socks/typings/common/util.d.ts
create mode 100644 node_modules/socks/typings/index.d.ts
create mode 100644 node_modules/sparse-bitfield/.npmignore
create mode 100644 node_modules/sparse-bitfield/.travis.yml
create mode 100644 node_modules/sparse-bitfield/LICENSE
create mode 100644 node_modules/sparse-bitfield/README.md
create mode 100644 node_modules/sparse-bitfield/index.js
create mode 100644 node_modules/sparse-bitfield/package.json
create mode 100644 node_modules/sparse-bitfield/test.js
create mode 100644 node_modules/tr46/LICENSE.md
create mode 100644 node_modules/tr46/README.md
create mode 100644 node_modules/tr46/index.js
create mode 100644 node_modules/tr46/lib/mappingTable.json
create mode 100644 node_modules/tr46/lib/regexes.js
create mode 100644 node_modules/tr46/lib/statusMapping.js
create mode 100644 node_modules/tr46/package.json
create mode 100644 node_modules/uid-safe/HISTORY.md
create mode 100644 node_modules/uid-safe/LICENSE
create mode 100644 node_modules/uid-safe/README.md
create mode 100644 node_modules/uid-safe/index.js
create mode 100644 node_modules/uid-safe/package.json
create mode 100644 node_modules/webidl-conversions/LICENSE.md
create mode 100644 node_modules/webidl-conversions/README.md
create mode 100644 node_modules/webidl-conversions/lib/index.js
create mode 100644 node_modules/webidl-conversions/package.json
create mode 100644 node_modules/whatwg-url/LICENSE.txt
create mode 100644 node_modules/whatwg-url/README.md
create mode 100644 node_modules/whatwg-url/index.js
create mode 100644 node_modules/whatwg-url/lib/Function.js
create mode 100644 node_modules/whatwg-url/lib/URL-impl.js
create mode 100644 node_modules/whatwg-url/lib/URL.js
create mode 100644 node_modules/whatwg-url/lib/URLSearchParams-impl.js
create mode 100644 node_modules/whatwg-url/lib/URLSearchParams.js
create mode 100644 node_modules/whatwg-url/lib/VoidFunction.js
create mode 100644 node_modules/whatwg-url/lib/encoding.js
create mode 100644 node_modules/whatwg-url/lib/infra.js
create mode 100644 node_modules/whatwg-url/lib/percent-encoding.js
create mode 100644 node_modules/whatwg-url/lib/url-state-machine.js
create mode 100644 node_modules/whatwg-url/lib/urlencoded.js
create mode 100644 node_modules/whatwg-url/lib/utils.js
create mode 100644 node_modules/whatwg-url/package.json
create mode 100644 node_modules/whatwg-url/webidl2js-wrapper.js
create mode 100644 node_modules/ws/LICENSE
create mode 100644 node_modules/ws/README.md
create mode 100644 node_modules/ws/browser.js
create mode 100644 node_modules/ws/index.js
create mode 100644 node_modules/ws/lib/buffer-util.js
create mode 100644 node_modules/ws/lib/constants.js
create mode 100644 node_modules/ws/lib/event-target.js
create mode 100644 node_modules/ws/lib/extension.js
create mode 100644 node_modules/ws/lib/limiter.js
create mode 100644 node_modules/ws/lib/permessage-deflate.js
create mode 100644 node_modules/ws/lib/receiver.js
create mode 100644 node_modules/ws/lib/sender.js
create mode 100644 node_modules/ws/lib/stream.js
create mode 100644 node_modules/ws/lib/subprotocol.js
create mode 100644 node_modules/ws/lib/validation.js
create mode 100644 node_modules/ws/lib/websocket-server.js
create mode 100644 node_modules/ws/lib/websocket.js
create mode 100644 node_modules/ws/package.json
create mode 100644 node_modules/ws/wrapper.mjs
create mode 100644 partials/footer.ejs
create mode 100644 partials/head.ejs
create mode 100644 partials/menu.ejs
create mode 100644 public/css/style.css
create mode 100644 public/js/home.js
create mode 100644 public/js/main.js
create mode 100644 public/js/post.js
create mode 100644 public/js/search.js
delete mode 100644 public/main.js
delete mode 100644 public/style.css
create mode 100644 replies.json
create mode 100644 view/index.ejs
create mode 100644 view/post.ejs
create mode 100644 view/search.ejs
delete mode 100644 views/index.ejs
delete mode 100644 views/post.ejs
diff --git a/.breakpoints b/.breakpoints
index ff2466a..5f19308 100644
--- a/.breakpoints
+++ b/.breakpoints
@@ -1,5 +1,13 @@
{
"files": {
+ "views/index.ejs": [
+ {
+ "id": "45d3f9e0-0855-4f49-9d54-00011c145d35",
+ "line": 16,
+ "version": 552,
+ "index": 453
+ }
+ ],
"views/post.ejs": [
{
"id": "728f013b-b0b8-42e7-afa4-46729eb5cb5d",
diff --git a/database.json b/database.json
index b6d75dc..0133266 100644
--- a/database.json
+++ b/database.json
@@ -1,5 +1,13 @@
-{
+
+[
+ {
"title": ["Hello world"],
"posturl": ["test"],
"content": ["My first blog post"]
-}
\ No newline at end of file
+ },
+ {
+ "title": ["Hello world2"],
+ "posturl": ["test2"],
+ "content": ["My first blog post2"]
+ }
+]
diff --git a/index.js b/index.js
index 5f2e1c2..f764756 100644
--- a/index.js
+++ b/index.js
@@ -1,41 +1,86 @@
-// Declare express
-const express = require('express');
+const express = require('express')
+const app = express()
+const http = require('http');
-// Declare database and requitment
-const JSONdb = require('simple-json-db');
-const db = new JSONdb('database.json');
+// Import socket.io
+const socketIo = require('socket.io');
+const server = http.Server(app);
-// Declare port
-const app = express();
-const port = 4040;
+// restart
+const io = socketIo(server);
+const path = require("path");
+const { writeFileSync, readFileSync } = require('fs');
+var data;
+let loadPosts = () => JSON.parse(readFileSync('database.json'));
+let loadReplies = () => JSON.parse(readFileSync('replies.json'));
+var replies = { id: 1, body: '3000', time: '12:00' };
+var config = [];
+const d = new Date();
+const dateFormat = d.toDateString();
+var writectx = null;
-// Set view engine
-app.set('view engine', 'ejs');
-// Set main page
-app.get('/', (req, res) => {
- app.locals.title = db.get('title');
- app.locals.postUrl = db.get('posturl');
+io.on('connection', function connection(ws) {
+ console.log('A new client Connected!');
+ ws.send('Welcome New Client!');
- res.render('index');
-})
+ ws.on("reply", function incoming(message) {
+ console.log('received: %s', message);
-// Set blog page
-app.get('/post/:posturl', (req, res) => {
- postUrl = req.params.posturl;
- dbIndex = db.get('posturl').indexOf(postUrl);
+ var replyArray = message.toString();
+ var reply = replyArray.split(",");
+
+ replies = { id: parseInt(reply[0], 10), body: reply[1], time: dateFormat };
+ writectx = message;
+ const path = './replies.json';
+ config.push(replies);
+ try {
+ writeFileSync(path, JSON.stringify(config, null, 2), 'utf8');
+ console.log('Data successfully saved to disk');
+ } catch (error) {
+ console.log('An error has occurred ', error);
+ }
+
+ });
+});
+
+server.listen(3000, () => console.log(`Lisening on port :3000`))
- if (dbIndex != -1) {
- app.locals.title = db.get('title')[dbIndex];
- app.locals.content = db.get('content')[dbIndex];
- res.render('post');
+app.use(express.static(__dirname + "/view"));
+app.use(express.static(__dirname + '/public'));
+//main page
+app.get("/", function(request, response) {
+ response.render(path.join(__dirname + "/view/index.ejs"));
+})
+//json
+app.get("/posts", function(request, response) {
+ response.send(loadPosts());
+});
+//search
+app.get("/search/:searchterm", function(request, response) {
+ app.locals.term = request.params.searchterm;
+ response.render(path.join(__dirname + "/view/search.ejs"));
+});
+//post
+app.get('/post/:posturl', (request, response) => {
+ postUrl = request.params.posturl;
+ for (var i = 0; i < loadPosts().length; i++) {
+ dbIndex = JSON.stringify(loadPosts()[i]).indexOf(postUrl);
+ if (loadPosts()[i].posturl == postUrl) {
+ app.locals.title = loadPosts()[i].title;
+ app.locals.content = loadPosts()[i].content;
+ app.locals.posturl = loadPosts()[i].posturl;
+ }
+ }
+ if (dbIndex != -1) {
+ response.render(path.join(__dirname + "/view/post.ejs"));
} else {
- res.send('Page not found :(')
+ //error
+ response.send('Page not found :(')
}
});
-// Run app
-app.listen(port, () => {
- console.log('App is live');
+app.get("/replies", function(request, response) {
+ response.send(loadReplies());
});
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index a11ef39..731aaa1 100644
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -4,11 +4,40 @@
"lockfileVersion": 2,
"requires": true,
"packages": {
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
+ "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
+ },
+ "node_modules/@types/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
+ },
+ "node_modules/@types/cors": {
+ "version": "2.8.12",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
+ "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
+ },
"node_modules/@types/node": {
"version": "18.0.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw=="
},
+ "node_modules/@types/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog=="
+ },
+ "node_modules/@types/whatwg-url": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
+ "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
+ },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -50,6 +79,49 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+ "engines": {
+ "node": "^4.5.0 || >= 5.9"
+ }
+ },
+ "node_modules/basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "dependencies": {
+ "safe-buffer": "5.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/basic-auth/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/body-parser": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
@@ -82,6 +154,40 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/bson": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz",
+ "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==",
+ "dependencies": {
+ "buffer": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -170,6 +276,18 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/data-uri-to-buffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
@@ -186,6 +304,14 @@
"ms": "2.0.0"
}
},
+ "node_modules/denque": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -230,6 +356,75 @@
"node": ">= 0.8"
}
},
+ "node_modules/engine.io": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz",
+ "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==",
+ "dependencies": {
+ "@types/cookie": "^0.4.1",
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.4.1",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.0.3",
+ "ws": "~8.2.3"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/engine.io-parser": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
+ "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/engine.io/node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/engine.io/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -284,6 +479,32 @@
"node": ">= 0.10.0"
}
},
+ "node_modules/express-session": {
+ "version": "1.17.3",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
+ "dependencies": {
+ "cookie": "0.4.2",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.1",
+ "uid-safe": "~2.1.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/express-session/node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/fetch-blob": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.5.tgz",
@@ -451,11 +672,35 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
+ "node_modules/ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
+ },
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
@@ -481,6 +726,11 @@
"node": ">=10"
}
},
+ "node_modules/kareem": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz",
+ "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA=="
+ },
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -489,6 +739,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@@ -543,6 +799,124 @@
"node": "*"
}
},
+ "node_modules/mongodb": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.9.1.tgz",
+ "integrity": "sha512-ZhgI/qBf84fD7sI4waZBoLBNJYPQN5IOC++SBCiPiyhzpNKOxN/fi0tBHvH2dEC42HXtNEbFB0zmNz4+oVtorQ==",
+ "dependencies": {
+ "bson": "^4.7.0",
+ "denque": "^2.1.0",
+ "mongodb-connection-string-url": "^2.5.3",
+ "socks": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=12.9.0"
+ },
+ "optionalDependencies": {
+ "saslprep": "^1.0.3"
+ }
+ },
+ "node_modules/mongodb-connection-string-url": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz",
+ "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==",
+ "dependencies": {
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^11.0.0"
+ }
+ },
+ "node_modules/mongoose": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.6.3.tgz",
+ "integrity": "sha512-2Ye018PNBBXJd717qhfjBGo7k8HQb/pKziO9d5wY14iZSUI7hxqL7bwNDg+poeBwnlhBYLncZkips15Blfgxbw==",
+ "dependencies": {
+ "bson": "^4.6.5",
+ "kareem": "2.4.1",
+ "mongodb": "4.9.1",
+ "mpath": "0.9.0",
+ "mquery": "4.0.3",
+ "ms": "2.1.3",
+ "sift": "16.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mongoose"
+ }
+ },
+ "node_modules/mongoose/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/morgan": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
+ "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
+ "dependencies": {
+ "basic-auth": "~2.0.1",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-finished": "~2.3.0",
+ "on-headers": "~1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/morgan/node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/mpath": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
+ "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
+ "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
+ "dependencies": {
+ "debug": "4.x"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/mquery/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mquery/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -591,6 +965,14 @@
"url": "https://opencollective.com/node-fetch"
}
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.12.2",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
@@ -610,6 +992,14 @@
"node": ">= 0.8"
}
},
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -635,6 +1025,14 @@
"node": ">= 0.10"
}
},
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
@@ -649,6 +1047,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -695,6 +1101,18 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
+ "node_modules/saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -755,6 +1173,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/sift": {
+ "version": "16.0.0",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
+ "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
+ },
"node_modules/simple-json-db": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-json-db/-/simple-json-db-2.0.0.tgz",
@@ -763,6 +1186,112 @@
"node": ">=10.0"
}
},
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socket.io": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.2.tgz",
+ "integrity": "sha512-6fCnk4ARMPZN448+SQcnn1u8OHUC72puJcNtSgg2xS34Cu7br1gQ09YKkO1PFfDn/wyUE9ZgMAwosJed003+NQ==",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "base64id": "~2.0.0",
+ "debug": "~4.3.2",
+ "engine.io": "~6.2.0",
+ "socket.io-adapter": "~2.4.0",
+ "socket.io-parser": "~4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-adapter": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
+ "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
+ },
+ "node_modules/socket.io-parser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
+ "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/socket.io/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/socks": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz",
+ "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==",
+ "dependencies": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
@@ -790,6 +1319,17 @@
"node": ">=0.6"
}
},
+ "node_modules/tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -802,6 +1342,17 @@
"node": ">= 0.6"
}
},
+ "node_modules/uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "dependencies": {
+ "random-bytes": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -833,6 +1384,46 @@
"engines": {
"node": ">= 8"
}
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "dependencies": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
}
}
}
diff --git a/node_modules/@socket.io/component-emitter/LICENSE b/node_modules/@socket.io/component-emitter/LICENSE
new file mode 100644
index 0000000..de51692
--- /dev/null
+++ b/node_modules/@socket.io/component-emitter/LICENSE
@@ -0,0 +1,24 @@
+(The MIT License)
+
+Copyright (c) 2014 Component contributors
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/@socket.io/component-emitter/Readme.md b/node_modules/@socket.io/component-emitter/Readme.md
new file mode 100644
index 0000000..0f3f9b9
--- /dev/null
+++ b/node_modules/@socket.io/component-emitter/Readme.md
@@ -0,0 +1,74 @@
+# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)
+
+ Event emitter component.
+
+## Installation
+
+```
+$ component install component/emitter
+```
+
+## API
+
+### Emitter(obj)
+
+ The `Emitter` may also be used as a mixin. For example
+ a "plain" object may become an emitter, or you may
+ extend an existing prototype.
+
+ As an `Emitter` instance:
+
+```js
+var Emitter = require('emitter');
+var emitter = new Emitter;
+emitter.emit('something');
+```
+
+ As a mixin:
+
+```js
+var Emitter = require('emitter');
+var user = { name: 'tobi' };
+Emitter(user);
+
+user.emit('im a user');
+```
+
+ As a prototype mixin:
+
+```js
+var Emitter = require('emitter');
+Emitter(User.prototype);
+```
+
+### Emitter#on(event, fn)
+
+ Register an `event` handler `fn`.
+
+### Emitter#once(event, fn)
+
+ Register a single-shot `event` handler `fn`,
+ removed immediately after it is invoked the
+ first time.
+
+### Emitter#off(event, fn)
+
+ * Pass `event` and `fn` to remove a listener.
+ * Pass `event` to remove all listeners on that event.
+ * Pass nothing to remove all listeners on all events.
+
+### Emitter#emit(event, ...)
+
+ Emit an `event` with variable option args.
+
+### Emitter#listeners(event)
+
+ Return an array of callbacks, or an empty array.
+
+### Emitter#hasListeners(event)
+
+ Check if this emitter has `event` handlers.
+
+## License
+
+MIT
diff --git a/node_modules/@socket.io/component-emitter/index.d.ts b/node_modules/@socket.io/component-emitter/index.d.ts
new file mode 100644
index 0000000..49a74e1
--- /dev/null
+++ b/node_modules/@socket.io/component-emitter/index.d.ts
@@ -0,0 +1,179 @@
+/**
+ * An events map is an interface that maps event names to their value, which
+ * represents the type of the `on` listener.
+ */
+export interface EventsMap {
+ [event: string]: any;
+}
+
+/**
+ * The default events map, used if no EventsMap is given. Using this EventsMap
+ * is equivalent to accepting all event names, and any data.
+ */
+export interface DefaultEventsMap {
+ [event: string]: (...args: any[]) => void;
+}
+
+/**
+ * Returns a union type containing all the keys of an event map.
+ */
+export type EventNames
diff --git a/node_modules/denque/index.d.ts b/node_modules/denque/index.d.ts
new file mode 100644
index 0000000..e125dd4
--- /dev/null
+++ b/node_modules/denque/index.d.ts
@@ -0,0 +1,47 @@
+declare class Denque {
+ length: number;
+
+ constructor();
+
+ constructor(array: T[]);
+
+ constructor(array: T[], options: IDenqueOptions);
+
+ push(item: T): number;
+
+ unshift(item: T): number;
+
+ pop(): T | undefined;
+
+ shift(): T | undefined;
+
+ peekBack(): T | undefined;
+
+ peekFront(): T | undefined;
+
+ peekAt(index: number): T | undefined;
+
+ get(index: number): T | undefined;
+
+ remove(index: number, count: number): T[];
+
+ removeOne(index: number): T | undefined;
+
+ splice(index: number, count: number, ...item: T[]): T[] | undefined;
+
+ isEmpty(): boolean;
+
+ clear(): void;
+
+ size(): number;
+
+ toString(): string;
+
+ toArray(): T[];
+}
+
+interface IDenqueOptions {
+ capacity?: number
+}
+
+export = Denque;
diff --git a/node_modules/denque/index.js b/node_modules/denque/index.js
new file mode 100644
index 0000000..6b2e9d8
--- /dev/null
+++ b/node_modules/denque/index.js
@@ -0,0 +1,481 @@
+'use strict';
+
+/**
+ * Custom implementation of a double ended queue.
+ */
+function Denque(array, options) {
+ var options = options || {};
+ this._capacity = options.capacity;
+
+ this._head = 0;
+ this._tail = 0;
+
+ if (Array.isArray(array)) {
+ this._fromArray(array);
+ } else {
+ this._capacityMask = 0x3;
+ this._list = new Array(4);
+ }
+}
+
+/**
+ * --------------
+ * PUBLIC API
+ * -------------
+ */
+
+/**
+ * Returns the item at the specified index from the list.
+ * 0 is the first element, 1 is the second, and so on...
+ * Elements at negative values are that many from the end: -1 is one before the end
+ * (the last element), -2 is two before the end (one before last), etc.
+ * @param index
+ * @returns {*}
+ */
+Denque.prototype.peekAt = function peekAt(index) {
+ var i = index;
+ // expect a number or return undefined
+ if ((i !== (i | 0))) {
+ return void 0;
+ }
+ var len = this.size();
+ if (i >= len || i < -len) return undefined;
+ if (i < 0) i += len;
+ i = (this._head + i) & this._capacityMask;
+ return this._list[i];
+};
+
+/**
+ * Alias for peekAt()
+ * @param i
+ * @returns {*}
+ */
+Denque.prototype.get = function get(i) {
+ return this.peekAt(i);
+};
+
+/**
+ * Returns the first item in the list without removing it.
+ * @returns {*}
+ */
+Denque.prototype.peek = function peek() {
+ if (this._head === this._tail) return undefined;
+ return this._list[this._head];
+};
+
+/**
+ * Alias for peek()
+ * @returns {*}
+ */
+Denque.prototype.peekFront = function peekFront() {
+ return this.peek();
+};
+
+/**
+ * Returns the item that is at the back of the queue without removing it.
+ * Uses peekAt(-1)
+ */
+Denque.prototype.peekBack = function peekBack() {
+ return this.peekAt(-1);
+};
+
+/**
+ * Returns the current length of the queue
+ * @return {Number}
+ */
+Object.defineProperty(Denque.prototype, 'length', {
+ get: function length() {
+ return this.size();
+ }
+});
+
+/**
+ * Return the number of items on the list, or 0 if empty.
+ * @returns {number}
+ */
+Denque.prototype.size = function size() {
+ if (this._head === this._tail) return 0;
+ if (this._head < this._tail) return this._tail - this._head;
+ else return this._capacityMask + 1 - (this._head - this._tail);
+};
+
+/**
+ * Add an item at the beginning of the list.
+ * @param item
+ */
+Denque.prototype.unshift = function unshift(item) {
+ if (arguments.length === 0) return this.size();
+ var len = this._list.length;
+ this._head = (this._head - 1 + len) & this._capacityMask;
+ this._list[this._head] = item;
+ if (this._tail === this._head) this._growArray();
+ if (this._capacity && this.size() > this._capacity) this.pop();
+ if (this._head < this._tail) return this._tail - this._head;
+ else return this._capacityMask + 1 - (this._head - this._tail);
+};
+
+/**
+ * Remove and return the first item on the list,
+ * Returns undefined if the list is empty.
+ * @returns {*}
+ */
+Denque.prototype.shift = function shift() {
+ var head = this._head;
+ if (head === this._tail) return undefined;
+ var item = this._list[head];
+ this._list[head] = undefined;
+ this._head = (head + 1) & this._capacityMask;
+ if (head < 2 && this._tail > 10000 && this._tail <= this._list.length >>> 2) this._shrinkArray();
+ return item;
+};
+
+/**
+ * Add an item to the bottom of the list.
+ * @param item
+ */
+Denque.prototype.push = function push(item) {
+ if (arguments.length === 0) return this.size();
+ var tail = this._tail;
+ this._list[tail] = item;
+ this._tail = (tail + 1) & this._capacityMask;
+ if (this._tail === this._head) {
+ this._growArray();
+ }
+ if (this._capacity && this.size() > this._capacity) {
+ this.shift();
+ }
+ if (this._head < this._tail) return this._tail - this._head;
+ else return this._capacityMask + 1 - (this._head - this._tail);
+};
+
+/**
+ * Remove and return the last item on the list.
+ * Returns undefined if the list is empty.
+ * @returns {*}
+ */
+Denque.prototype.pop = function pop() {
+ var tail = this._tail;
+ if (tail === this._head) return undefined;
+ var len = this._list.length;
+ this._tail = (tail - 1 + len) & this._capacityMask;
+ var item = this._list[this._tail];
+ this._list[this._tail] = undefined;
+ if (this._head < 2 && tail > 10000 && tail <= len >>> 2) this._shrinkArray();
+ return item;
+};
+
+/**
+ * Remove and return the item at the specified index from the list.
+ * Returns undefined if the list is empty.
+ * @param index
+ * @returns {*}
+ */
+Denque.prototype.removeOne = function removeOne(index) {
+ var i = index;
+ // expect a number or return undefined
+ if ((i !== (i | 0))) {
+ return void 0;
+ }
+ if (this._head === this._tail) return void 0;
+ var size = this.size();
+ var len = this._list.length;
+ if (i >= size || i < -size) return void 0;
+ if (i < 0) i += size;
+ i = (this._head + i) & this._capacityMask;
+ var item = this._list[i];
+ var k;
+ if (index < size / 2) {
+ for (k = index; k > 0; k--) {
+ this._list[i] = this._list[i = (i - 1 + len) & this._capacityMask];
+ }
+ this._list[i] = void 0;
+ this._head = (this._head + 1 + len) & this._capacityMask;
+ } else {
+ for (k = size - 1 - index; k > 0; k--) {
+ this._list[i] = this._list[i = (i + 1 + len) & this._capacityMask];
+ }
+ this._list[i] = void 0;
+ this._tail = (this._tail - 1 + len) & this._capacityMask;
+ }
+ return item;
+};
+
+/**
+ * Remove number of items from the specified index from the list.
+ * Returns array of removed items.
+ * Returns undefined if the list is empty.
+ * @param index
+ * @param count
+ * @returns {array}
+ */
+Denque.prototype.remove = function remove(index, count) {
+ var i = index;
+ var removed;
+ var del_count = count;
+ // expect a number or return undefined
+ if ((i !== (i | 0))) {
+ return void 0;
+ }
+ if (this._head === this._tail) return void 0;
+ var size = this.size();
+ var len = this._list.length;
+ if (i >= size || i < -size || count < 1) return void 0;
+ if (i < 0) i += size;
+ if (count === 1 || !count) {
+ removed = new Array(1);
+ removed[0] = this.removeOne(i);
+ return removed;
+ }
+ if (i === 0 && i + count >= size) {
+ removed = this.toArray();
+ this.clear();
+ return removed;
+ }
+ if (i + count > size) count = size - i;
+ var k;
+ removed = new Array(count);
+ for (k = 0; k < count; k++) {
+ removed[k] = this._list[(this._head + i + k) & this._capacityMask];
+ }
+ i = (this._head + i) & this._capacityMask;
+ if (index + count === size) {
+ this._tail = (this._tail - count + len) & this._capacityMask;
+ for (k = count; k > 0; k--) {
+ this._list[i = (i + 1 + len) & this._capacityMask] = void 0;
+ }
+ return removed;
+ }
+ if (index === 0) {
+ this._head = (this._head + count + len) & this._capacityMask;
+ for (k = count - 1; k > 0; k--) {
+ this._list[i = (i + 1 + len) & this._capacityMask] = void 0;
+ }
+ return removed;
+ }
+ if (i < size / 2) {
+ this._head = (this._head + index + count + len) & this._capacityMask;
+ for (k = index; k > 0; k--) {
+ this.unshift(this._list[i = (i - 1 + len) & this._capacityMask]);
+ }
+ i = (this._head - 1 + len) & this._capacityMask;
+ while (del_count > 0) {
+ this._list[i = (i - 1 + len) & this._capacityMask] = void 0;
+ del_count--;
+ }
+ if (index < 0) this._tail = i;
+ } else {
+ this._tail = i;
+ i = (i + count + len) & this._capacityMask;
+ for (k = size - (count + index); k > 0; k--) {
+ this.push(this._list[i++]);
+ }
+ i = this._tail;
+ while (del_count > 0) {
+ this._list[i = (i + 1 + len) & this._capacityMask] = void 0;
+ del_count--;
+ }
+ }
+ if (this._head < 2 && this._tail > 10000 && this._tail <= len >>> 2) this._shrinkArray();
+ return removed;
+};
+
+/**
+ * Native splice implementation.
+ * Remove number of items from the specified index from the list and/or add new elements.
+ * Returns array of removed items or empty array if count == 0.
+ * Returns undefined if the list is empty.
+ *
+ * @param index
+ * @param count
+ * @param {...*} [elements]
+ * @returns {array}
+ */
+Denque.prototype.splice = function splice(index, count) {
+ var i = index;
+ // expect a number or return undefined
+ if ((i !== (i | 0))) {
+ return void 0;
+ }
+ var size = this.size();
+ if (i < 0) i += size;
+ if (i > size) return void 0;
+ if (arguments.length > 2) {
+ var k;
+ var temp;
+ var removed;
+ var arg_len = arguments.length;
+ var len = this._list.length;
+ var arguments_index = 2;
+ if (!size || i < size / 2) {
+ temp = new Array(i);
+ for (k = 0; k < i; k++) {
+ temp[k] = this._list[(this._head + k) & this._capacityMask];
+ }
+ if (count === 0) {
+ removed = [];
+ if (i > 0) {
+ this._head = (this._head + i + len) & this._capacityMask;
+ }
+ } else {
+ removed = this.remove(i, count);
+ this._head = (this._head + i + len) & this._capacityMask;
+ }
+ while (arg_len > arguments_index) {
+ this.unshift(arguments[--arg_len]);
+ }
+ for (k = i; k > 0; k--) {
+ this.unshift(temp[k - 1]);
+ }
+ } else {
+ temp = new Array(size - (i + count));
+ var leng = temp.length;
+ for (k = 0; k < leng; k++) {
+ temp[k] = this._list[(this._head + i + count + k) & this._capacityMask];
+ }
+ if (count === 0) {
+ removed = [];
+ if (i != size) {
+ this._tail = (this._head + i + len) & this._capacityMask;
+ }
+ } else {
+ removed = this.remove(i, count);
+ this._tail = (this._tail - leng + len) & this._capacityMask;
+ }
+ while (arguments_index < arg_len) {
+ this.push(arguments[arguments_index++]);
+ }
+ for (k = 0; k < leng; k++) {
+ this.push(temp[k]);
+ }
+ }
+ return removed;
+ } else {
+ return this.remove(i, count);
+ }
+};
+
+/**
+ * Soft clear - does not reset capacity.
+ */
+Denque.prototype.clear = function clear() {
+ this._list = new Array(this._list.length);
+ this._head = 0;
+ this._tail = 0;
+};
+
+/**
+ * Returns true or false whether the list is empty.
+ * @returns {boolean}
+ */
+Denque.prototype.isEmpty = function isEmpty() {
+ return this._head === this._tail;
+};
+
+/**
+ * Returns an array of all queue items.
+ * @returns {Array}
+ */
+Denque.prototype.toArray = function toArray() {
+ return this._copyArray(false);
+};
+
+/**
+ * -------------
+ * INTERNALS
+ * -------------
+ */
+
+/**
+ * Fills the queue with items from an array
+ * For use in the constructor
+ * @param array
+ * @private
+ */
+Denque.prototype._fromArray = function _fromArray(array) {
+ var length = array.length;
+ var capacity = this._nextPowerOf2(length);
+
+ this._list = new Array(capacity);
+ this._capacityMask = capacity - 1;
+ this._tail = length;
+
+ for (var i = 0; i < length; i++) this._list[i] = array[i];
+};
+
+/**
+ *
+ * @param fullCopy
+ * @param size Initialize the array with a specific size. Will default to the current list size
+ * @returns {Array}
+ * @private
+ */
+Denque.prototype._copyArray = function _copyArray(fullCopy, size) {
+ var src = this._list;
+ var capacity = src.length;
+ var length = this.length;
+ size = size | length;
+
+ // No prealloc requested and the buffer is contiguous
+ if (size == length && this._head < this._tail) {
+ // Simply do a fast slice copy
+ return this._list.slice(this._head, this._tail);
+ }
+
+ var dest = new Array(size);
+
+ var k = 0;
+ var i;
+ if (fullCopy || this._head > this._tail) {
+ for (i = this._head; i < capacity; i++) dest[k++] = src[i];
+ for (i = 0; i < this._tail; i++) dest[k++] = src[i];
+ } else {
+ for (i = this._head; i < this._tail; i++) dest[k++] = src[i];
+ }
+
+ return dest;
+}
+
+/**
+ * Grows the internal list array.
+ * @private
+ */
+Denque.prototype._growArray = function _growArray() {
+ if (this._head != 0) {
+ // double array size and copy existing data, head to end, then beginning to tail.
+ var newList = this._copyArray(true, this._list.length << 1);
+
+ this._tail = this._list.length;
+ this._head = 0;
+
+ this._list = newList;
+ } else {
+ this._tail = this._list.length;
+ this._list.length <<= 1;
+ }
+
+ this._capacityMask = (this._capacityMask << 1) | 1;
+};
+
+/**
+ * Shrinks the internal list array.
+ * @private
+ */
+Denque.prototype._shrinkArray = function _shrinkArray() {
+ this._list.length >>>= 1;
+ this._capacityMask >>>= 1;
+};
+
+/**
+ * Find the next power of 2, at least 4
+ * @private
+ * @param {number} num
+ * @returns {number}
+ */
+Denque.prototype._nextPowerOf2 = function _nextPowerOf2(num) {
+ var log2 = Math.log(num) / Math.log(2);
+ var nextPow2 = 1 << (log2 + 1);
+
+ return Math.max(nextPow2, 4);
+}
+
+module.exports = Denque;
diff --git a/node_modules/denque/package.json b/node_modules/denque/package.json
new file mode 100644
index 0000000..a635910
--- /dev/null
+++ b/node_modules/denque/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "denque",
+ "version": "2.1.0",
+ "description": "The fastest javascript implementation of a double-ended queue. Used by the official Redis, MongoDB, MariaDB & MySQL libraries for Node.js and many other libraries. Maintains compatability with deque.",
+ "main": "index.js",
+ "engines": {
+ "node": ">=0.10"
+ },
+ "keywords": [
+ "data-structure",
+ "data-structures",
+ "queue",
+ "double",
+ "end",
+ "ended",
+ "deque",
+ "denque",
+ "double-ended-queue"
+ ],
+ "scripts": {
+ "test": "istanbul cover --report lcov _mocha && npm run typescript",
+ "coveralls": "cat ./coverage/lcov.info | coveralls",
+ "typescript": "tsc --project ./test/type/tsconfig.json",
+ "benchmark_thousand": "node benchmark/thousand",
+ "benchmark_2mil": "node benchmark/two_million",
+ "benchmark_splice": "node benchmark/splice",
+ "benchmark_remove": "node benchmark/remove",
+ "benchmark_removeOne": "node benchmark/removeOne",
+ "benchmark_growth": "node benchmark/growth",
+ "benchmark_toArray": "node benchmark/toArray",
+ "benchmark_fromArray": "node benchmark/fromArray"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/invertase/denque.git"
+ },
+ "license": "Apache-2.0",
+ "author": {
+ "name": "Invertase",
+ "email": "oss@invertase.io",
+ "url": "http://github.com/invertase/"
+ },
+ "contributors": [
+ "Mike Diarmid (Salakar) "
+ ],
+ "bugs": {
+ "url": "https://github.com/invertase/denque/issues"
+ },
+ "homepage": "https://docs.page/invertase/denque",
+ "devDependencies": {
+ "benchmark": "^2.1.4",
+ "codecov": "^3.8.3",
+ "double-ended-queue": "^2.1.0-0",
+ "istanbul": "^0.4.5",
+ "mocha": "^3.5.3",
+ "typescript": "^3.4.1"
+ }
+}
diff --git a/node_modules/engine.io-parser/LICENSE b/node_modules/engine.io-parser/LICENSE
new file mode 100644
index 0000000..d8fdaec
--- /dev/null
+++ b/node_modules/engine.io-parser/LICENSE
@@ -0,0 +1,22 @@
+(The MIT License)
+
+Copyright (c) 2016 Guillermo Rauch (@rauchg)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/node_modules/engine.io-parser/Readme.md b/node_modules/engine.io-parser/Readme.md
new file mode 100644
index 0000000..b109650
--- /dev/null
+++ b/node_modules/engine.io-parser/Readme.md
@@ -0,0 +1,158 @@
+
+# engine.io-parser
+
+[![Build Status](https://github.com/socketio/engine.io-parser/workflows/CI/badge.svg?branch=main)](https://github.com/socketio/engine.io-parser/actions)
+[![NPM version](https://badge.fury.io/js/engine.io-parser.svg)](https://npmjs.com/package/engine.io-parser)
+
+This is the JavaScript parser for the engine.io protocol encoding,
+shared by both
+[engine.io-client](https://github.com/socketio/engine.io-client) and
+[engine.io](https://github.com/socketio/engine.io).
+
+## How to use
+
+### Standalone
+
+The parser can encode/decode packets, payloads, and payloads as binary
+with the following methods: `encodePacket`, `decodePacket`, `encodePayload`,
+`decodePayload`.
+
+Example:
+
+```js
+const parser = require("engine.io-parser");
+const data = Buffer.from([ 1, 2, 3, 4 ]);
+
+parser.encodePacket({ type: "message", data }, encoded => {
+ const decodedData = parser.decodePacket(encoded); // decodedData === data
+});
+```
+
+### With browserify
+
+Engine.IO Parser is a commonjs module, which means you can include it by using
+`require` on the browser and package using [browserify](http://browserify.org/):
+
+1. install the parser package
+
+ ```shell
+ npm install engine.io-parser
+ ```
+
+1. write your app code
+
+ ```js
+ const parser = require("engine.io-parser");
+
+ const testBuffer = new Int8Array(10);
+ for (let i = 0; i < testBuffer.length; i++) testBuffer[i] = i;
+
+ const packets = [{ type: "message", data: testBuffer.buffer }, { type: "message", data: "hello" }];
+
+ parser.encodePayload(packets, encoded => {
+ parser.decodePayload(encoded,
+ (packet, index, total) => {
+ const isLast = index + 1 == total;
+ if (!isLast) {
+ const buffer = new Int8Array(packet.data); // testBuffer
+ } else {
+ const message = packet.data; // "hello"
+ }
+ });
+ });
+ ```
+
+1. build your app bundle
+
+ ```bash
+ $ browserify app.js > bundle.js
+ ```
+
+1. include on your page
+
+ ```html
+
+ ```
+
+## Features
+
+- Runs on browser and node.js seamlessly
+- Runs inside HTML5 WebWorker
+- Can encode and decode packets
+ - Encodes from/to ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer in Node
+
+## API
+
+Note: `cb(type)` means the type is a callback function that contains a parameter of type `type` when called.
+
+### Node
+
+- `encodePacket`
+ - Encodes a packet.
+ - **Parameters**
+ - `Object`: the packet to encode, has `type` and `data`.
+ - `data`: can be a `String`, `Number`, `Buffer`, `ArrayBuffer`
+ - `Boolean`: binary support
+ - `Function`: callback, returns the encoded packet (`cb(String)`)
+- `decodePacket`
+ - Decodes a packet. Data also available as an ArrayBuffer if requested.
+ - Returns data as `String` or (`Blob` on browser, `ArrayBuffer` on Node)
+ - **Parameters**
+ - `String` | `ArrayBuffer`: the packet to decode, has `type` and `data`
+ - `String`: optional, the binary type
+
+- `encodePayload`
+ - Encodes multiple messages (payload).
+ - If any contents are binary, they will be encoded as base64 strings. Base64
+ encoded strings are marked with a b before the length specifier
+ - **Parameters**
+ - `Array`: an array of packets
+ - `Function`: callback, returns the encoded payload (`cb(String)`)
+- `decodePayload`
+ - Decodes data when a payload is maybe expected. Possible binary contents are
+ decoded from their base64 representation.
+ - **Parameters**
+ - `String`: the payload
+ - `Function`: callback, returns (cb(`Object`: packet, `Number`:packet index, `Number`:packet total))
+
+## Tests
+
+Standalone tests can be run with `npm test` which will run the node.js tests.
+
+Browser tests are run using [zuul](https://github.com/defunctzombie/zuul).
+(You must have zuul setup with a saucelabs account.)
+
+You can run the tests locally using the following command:
+
+```
+npm run test:browser
+```
+
+## Support
+
+The support channels for `engine.io-parser` are the same as `socket.io`:
+ - irc.freenode.net **#socket.io**
+ - [Github Discussions](https://github.com/socketio/socket.io/discussions)
+ - [Website](https://socket.io)
+
+## Development
+
+To contribute patches, run tests or benchmarks, make sure to clone the
+repository:
+
+```bash
+git clone git://github.com/socketio/engine.io-parser.git
+```
+
+Then:
+
+```bash
+cd engine.io-parser
+npm ci
+```
+
+See the `Tests` section above for how to run tests before submitting any patches.
+
+## License
+
+MIT
diff --git a/node_modules/engine.io-parser/build/cjs/commons.js b/node_modules/engine.io-parser/build/cjs/commons.js
new file mode 100644
index 0000000..4a0b629
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/commons.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ERROR_PACKET = exports.PACKET_TYPES_REVERSE = exports.PACKET_TYPES = void 0;
+const PACKET_TYPES = Object.create(null); // no Map = no polyfill
+exports.PACKET_TYPES = PACKET_TYPES;
+PACKET_TYPES["open"] = "0";
+PACKET_TYPES["close"] = "1";
+PACKET_TYPES["ping"] = "2";
+PACKET_TYPES["pong"] = "3";
+PACKET_TYPES["message"] = "4";
+PACKET_TYPES["upgrade"] = "5";
+PACKET_TYPES["noop"] = "6";
+const PACKET_TYPES_REVERSE = Object.create(null);
+exports.PACKET_TYPES_REVERSE = PACKET_TYPES_REVERSE;
+Object.keys(PACKET_TYPES).forEach(key => {
+ PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;
+});
+const ERROR_PACKET = { type: "error", data: "parser error" };
+exports.ERROR_PACKET = ERROR_PACKET;
diff --git a/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js b/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js
new file mode 100644
index 0000000..d5801d2
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js
@@ -0,0 +1,47 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.decode = exports.encode = void 0;
+const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+// Use a lookup table to find the index.
+const lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
+for (let i = 0; i < chars.length; i++) {
+ lookup[chars.charCodeAt(i)] = i;
+}
+const encode = (arraybuffer) => {
+ let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
+ for (i = 0; i < len; i += 3) {
+ base64 += chars[bytes[i] >> 2];
+ base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
+ base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
+ base64 += chars[bytes[i + 2] & 63];
+ }
+ if (len % 3 === 2) {
+ base64 = base64.substring(0, base64.length - 1) + '=';
+ }
+ else if (len % 3 === 1) {
+ base64 = base64.substring(0, base64.length - 2) + '==';
+ }
+ return base64;
+};
+exports.encode = encode;
+const decode = (base64) => {
+ let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
+ if (base64[base64.length - 1] === '=') {
+ bufferLength--;
+ if (base64[base64.length - 2] === '=') {
+ bufferLength--;
+ }
+ }
+ const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
+ for (i = 0; i < len; i += 4) {
+ encoded1 = lookup[base64.charCodeAt(i)];
+ encoded2 = lookup[base64.charCodeAt(i + 1)];
+ encoded3 = lookup[base64.charCodeAt(i + 2)];
+ encoded4 = lookup[base64.charCodeAt(i + 3)];
+ bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
+ bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
+ bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
+ }
+ return arraybuffer;
+};
+exports.decode = decode;
diff --git a/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js b/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js
new file mode 100644
index 0000000..fb8b7ab
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js
@@ -0,0 +1,51 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const commons_js_1 = require("./commons.js");
+const base64_arraybuffer_js_1 = require("./contrib/base64-arraybuffer.js");
+const withNativeArrayBuffer = typeof ArrayBuffer === "function";
+const decodePacket = (encodedPacket, binaryType) => {
+ if (typeof encodedPacket !== "string") {
+ return {
+ type: "message",
+ data: mapBinary(encodedPacket, binaryType)
+ };
+ }
+ const type = encodedPacket.charAt(0);
+ if (type === "b") {
+ return {
+ type: "message",
+ data: decodeBase64Packet(encodedPacket.substring(1), binaryType)
+ };
+ }
+ const packetType = commons_js_1.PACKET_TYPES_REVERSE[type];
+ if (!packetType) {
+ return commons_js_1.ERROR_PACKET;
+ }
+ return encodedPacket.length > 1
+ ? {
+ type: commons_js_1.PACKET_TYPES_REVERSE[type],
+ data: encodedPacket.substring(1)
+ }
+ : {
+ type: commons_js_1.PACKET_TYPES_REVERSE[type]
+ };
+};
+const decodeBase64Packet = (data, binaryType) => {
+ if (withNativeArrayBuffer) {
+ const decoded = (0, base64_arraybuffer_js_1.decode)(data);
+ return mapBinary(decoded, binaryType);
+ }
+ else {
+ return { base64: true, data }; // fallback for old browsers
+ }
+};
+const mapBinary = (data, binaryType) => {
+ switch (binaryType) {
+ case "blob":
+ return data instanceof ArrayBuffer ? new Blob([data]) : data;
+ case "arraybuffer":
+ default:
+ return data; // assuming the data is already an ArrayBuffer
+ }
+};
+exports.default = decodePacket;
diff --git a/node_modules/engine.io-parser/build/cjs/decodePacket.js b/node_modules/engine.io-parser/build/cjs/decodePacket.js
new file mode 100644
index 0000000..2dbe0f8
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/decodePacket.js
@@ -0,0 +1,49 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const commons_js_1 = require("./commons.js");
+const decodePacket = (encodedPacket, binaryType) => {
+ if (typeof encodedPacket !== "string") {
+ return {
+ type: "message",
+ data: mapBinary(encodedPacket, binaryType)
+ };
+ }
+ const type = encodedPacket.charAt(0);
+ if (type === "b") {
+ const buffer = Buffer.from(encodedPacket.substring(1), "base64");
+ return {
+ type: "message",
+ data: mapBinary(buffer, binaryType)
+ };
+ }
+ if (!commons_js_1.PACKET_TYPES_REVERSE[type]) {
+ return commons_js_1.ERROR_PACKET;
+ }
+ return encodedPacket.length > 1
+ ? {
+ type: commons_js_1.PACKET_TYPES_REVERSE[type],
+ data: encodedPacket.substring(1)
+ }
+ : {
+ type: commons_js_1.PACKET_TYPES_REVERSE[type]
+ };
+};
+const mapBinary = (data, binaryType) => {
+ const isBuffer = Buffer.isBuffer(data);
+ switch (binaryType) {
+ case "arraybuffer":
+ return isBuffer ? toArrayBuffer(data) : data;
+ case "nodebuffer":
+ default:
+ return data; // assuming the data is already a Buffer
+ }
+};
+const toArrayBuffer = (buffer) => {
+ const arrayBuffer = new ArrayBuffer(buffer.length);
+ const view = new Uint8Array(arrayBuffer);
+ for (let i = 0; i < buffer.length; i++) {
+ view[i] = buffer[i];
+ }
+ return arrayBuffer;
+};
+exports.default = decodePacket;
diff --git a/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js b/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js
new file mode 100644
index 0000000..b06ec9b
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const commons_js_1 = require("./commons.js");
+const withNativeBlob = typeof Blob === "function" ||
+ (typeof Blob !== "undefined" &&
+ Object.prototype.toString.call(Blob) === "[object BlobConstructor]");
+const withNativeArrayBuffer = typeof ArrayBuffer === "function";
+// ArrayBuffer.isView method is not defined in IE10
+const isView = obj => {
+ return typeof ArrayBuffer.isView === "function"
+ ? ArrayBuffer.isView(obj)
+ : obj && obj.buffer instanceof ArrayBuffer;
+};
+const encodePacket = ({ type, data }, supportsBinary, callback) => {
+ if (withNativeBlob && data instanceof Blob) {
+ if (supportsBinary) {
+ return callback(data);
+ }
+ else {
+ return encodeBlobAsBase64(data, callback);
+ }
+ }
+ else if (withNativeArrayBuffer &&
+ (data instanceof ArrayBuffer || isView(data))) {
+ if (supportsBinary) {
+ return callback(data);
+ }
+ else {
+ return encodeBlobAsBase64(new Blob([data]), callback);
+ }
+ }
+ // plain string
+ return callback(commons_js_1.PACKET_TYPES[type] + (data || ""));
+};
+const encodeBlobAsBase64 = (data, callback) => {
+ const fileReader = new FileReader();
+ fileReader.onload = function () {
+ const content = fileReader.result.split(",")[1];
+ callback("b" + content);
+ };
+ return fileReader.readAsDataURL(data);
+};
+exports.default = encodePacket;
diff --git a/node_modules/engine.io-parser/build/cjs/encodePacket.js b/node_modules/engine.io-parser/build/cjs/encodePacket.js
new file mode 100644
index 0000000..bd81d02
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/encodePacket.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const commons_js_1 = require("./commons.js");
+const encodePacket = ({ type, data }, supportsBinary, callback) => {
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
+ const buffer = toBuffer(data);
+ return callback(encodeBuffer(buffer, supportsBinary));
+ }
+ // plain string
+ return callback(commons_js_1.PACKET_TYPES[type] + (data || ""));
+};
+const toBuffer = data => {
+ if (Buffer.isBuffer(data)) {
+ return data;
+ }
+ else if (data instanceof ArrayBuffer) {
+ return Buffer.from(data);
+ }
+ else {
+ return Buffer.from(data.buffer, data.byteOffset, data.byteLength);
+ }
+};
+// only 'message' packets can contain binary, so the type prefix is not needed
+const encodeBuffer = (data, supportsBinary) => {
+ return supportsBinary ? data : "b" + data.toString("base64");
+};
+exports.default = encodePacket;
diff --git a/node_modules/engine.io-parser/build/cjs/index.js b/node_modules/engine.io-parser/build/cjs/index.js
new file mode 100644
index 0000000..858f247
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/index.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.decodePayload = exports.decodePacket = exports.encodePayload = exports.encodePacket = exports.protocol = void 0;
+const encodePacket_js_1 = require("./encodePacket.js");
+exports.encodePacket = encodePacket_js_1.default;
+const decodePacket_js_1 = require("./decodePacket.js");
+exports.decodePacket = decodePacket_js_1.default;
+const SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text
+const encodePayload = (packets, callback) => {
+ // some packets may be added to the array while encoding, so the initial length must be saved
+ const length = packets.length;
+ const encodedPackets = new Array(length);
+ let count = 0;
+ packets.forEach((packet, i) => {
+ // force base64 encoding for binary packets
+ (0, encodePacket_js_1.default)(packet, false, encodedPacket => {
+ encodedPackets[i] = encodedPacket;
+ if (++count === length) {
+ callback(encodedPackets.join(SEPARATOR));
+ }
+ });
+ });
+};
+exports.encodePayload = encodePayload;
+const decodePayload = (encodedPayload, binaryType) => {
+ const encodedPackets = encodedPayload.split(SEPARATOR);
+ const packets = [];
+ for (let i = 0; i < encodedPackets.length; i++) {
+ const decodedPacket = (0, decodePacket_js_1.default)(encodedPackets[i], binaryType);
+ packets.push(decodedPacket);
+ if (decodedPacket.type === "error") {
+ break;
+ }
+ }
+ return packets;
+};
+exports.decodePayload = decodePayload;
+exports.protocol = 4;
diff --git a/node_modules/engine.io-parser/build/cjs/package.json b/node_modules/engine.io-parser/build/cjs/package.json
new file mode 100644
index 0000000..bdc4dbd
--- /dev/null
+++ b/node_modules/engine.io-parser/build/cjs/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "engine.io-parser",
+ "type": "commonjs",
+ "browser": {
+ "./encodePacket.js": "./encodePacket.browser.js",
+ "./decodePacket.js": "./decodePacket.browser.js"
+ }
+}
diff --git a/node_modules/engine.io-parser/build/esm/commons.d.ts b/node_modules/engine.io-parser/build/esm/commons.d.ts
new file mode 100644
index 0000000..2eec1dd
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/commons.d.ts
@@ -0,0 +1,14 @@
+declare const PACKET_TYPES: any;
+declare const PACKET_TYPES_REVERSE: any;
+declare const ERROR_PACKET: Packet;
+export { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };
+export declare type PacketType = "open" | "close" | "ping" | "pong" | "message" | "upgrade" | "noop" | "error";
+export declare type RawData = any;
+export interface Packet {
+ type: PacketType;
+ options?: {
+ compress: boolean;
+ };
+ data?: RawData;
+}
+export declare type BinaryType = "nodebuffer" | "arraybuffer" | "blob";
diff --git a/node_modules/engine.io-parser/build/esm/commons.js b/node_modules/engine.io-parser/build/esm/commons.js
new file mode 100644
index 0000000..c003b58
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/commons.js
@@ -0,0 +1,14 @@
+const PACKET_TYPES = Object.create(null); // no Map = no polyfill
+PACKET_TYPES["open"] = "0";
+PACKET_TYPES["close"] = "1";
+PACKET_TYPES["ping"] = "2";
+PACKET_TYPES["pong"] = "3";
+PACKET_TYPES["message"] = "4";
+PACKET_TYPES["upgrade"] = "5";
+PACKET_TYPES["noop"] = "6";
+const PACKET_TYPES_REVERSE = Object.create(null);
+Object.keys(PACKET_TYPES).forEach(key => {
+ PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;
+});
+const ERROR_PACKET = { type: "error", data: "parser error" };
+export { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };
diff --git a/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts b/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts
new file mode 100644
index 0000000..6e0fa6b
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts
@@ -0,0 +1,2 @@
+export declare const encode: (arraybuffer: ArrayBuffer) => string;
+export declare const decode: (base64: string) => ArrayBuffer;
diff --git a/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js b/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js
new file mode 100644
index 0000000..dd9ba62
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js
@@ -0,0 +1,42 @@
+const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+// Use a lookup table to find the index.
+const lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
+for (let i = 0; i < chars.length; i++) {
+ lookup[chars.charCodeAt(i)] = i;
+}
+export const encode = (arraybuffer) => {
+ let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
+ for (i = 0; i < len; i += 3) {
+ base64 += chars[bytes[i] >> 2];
+ base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
+ base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
+ base64 += chars[bytes[i + 2] & 63];
+ }
+ if (len % 3 === 2) {
+ base64 = base64.substring(0, base64.length - 1) + '=';
+ }
+ else if (len % 3 === 1) {
+ base64 = base64.substring(0, base64.length - 2) + '==';
+ }
+ return base64;
+};
+export const decode = (base64) => {
+ let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
+ if (base64[base64.length - 1] === '=') {
+ bufferLength--;
+ if (base64[base64.length - 2] === '=') {
+ bufferLength--;
+ }
+ }
+ const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
+ for (i = 0; i < len; i += 4) {
+ encoded1 = lookup[base64.charCodeAt(i)];
+ encoded2 = lookup[base64.charCodeAt(i + 1)];
+ encoded3 = lookup[base64.charCodeAt(i + 2)];
+ encoded4 = lookup[base64.charCodeAt(i + 3)];
+ bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
+ bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
+ bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
+ }
+ return arraybuffer;
+};
diff --git a/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts b/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts
new file mode 100644
index 0000000..e4045d6
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts
@@ -0,0 +1,3 @@
+import { Packet, BinaryType, RawData } from "./commons.js";
+declare const decodePacket: (encodedPacket: RawData, binaryType?: BinaryType) => Packet;
+export default decodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/decodePacket.browser.js b/node_modules/engine.io-parser/build/esm/decodePacket.browser.js
new file mode 100644
index 0000000..1d8453d
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/decodePacket.browser.js
@@ -0,0 +1,49 @@
+import { ERROR_PACKET, PACKET_TYPES_REVERSE } from "./commons.js";
+import { decode } from "./contrib/base64-arraybuffer.js";
+const withNativeArrayBuffer = typeof ArrayBuffer === "function";
+const decodePacket = (encodedPacket, binaryType) => {
+ if (typeof encodedPacket !== "string") {
+ return {
+ type: "message",
+ data: mapBinary(encodedPacket, binaryType)
+ };
+ }
+ const type = encodedPacket.charAt(0);
+ if (type === "b") {
+ return {
+ type: "message",
+ data: decodeBase64Packet(encodedPacket.substring(1), binaryType)
+ };
+ }
+ const packetType = PACKET_TYPES_REVERSE[type];
+ if (!packetType) {
+ return ERROR_PACKET;
+ }
+ return encodedPacket.length > 1
+ ? {
+ type: PACKET_TYPES_REVERSE[type],
+ data: encodedPacket.substring(1)
+ }
+ : {
+ type: PACKET_TYPES_REVERSE[type]
+ };
+};
+const decodeBase64Packet = (data, binaryType) => {
+ if (withNativeArrayBuffer) {
+ const decoded = decode(data);
+ return mapBinary(decoded, binaryType);
+ }
+ else {
+ return { base64: true, data }; // fallback for old browsers
+ }
+};
+const mapBinary = (data, binaryType) => {
+ switch (binaryType) {
+ case "blob":
+ return data instanceof ArrayBuffer ? new Blob([data]) : data;
+ case "arraybuffer":
+ default:
+ return data; // assuming the data is already an ArrayBuffer
+ }
+};
+export default decodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/decodePacket.d.ts b/node_modules/engine.io-parser/build/esm/decodePacket.d.ts
new file mode 100644
index 0000000..e4045d6
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/decodePacket.d.ts
@@ -0,0 +1,3 @@
+import { Packet, BinaryType, RawData } from "./commons.js";
+declare const decodePacket: (encodedPacket: RawData, binaryType?: BinaryType) => Packet;
+export default decodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/decodePacket.js b/node_modules/engine.io-parser/build/esm/decodePacket.js
new file mode 100644
index 0000000..58ca8eb
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/decodePacket.js
@@ -0,0 +1,47 @@
+import { ERROR_PACKET, PACKET_TYPES_REVERSE } from "./commons.js";
+const decodePacket = (encodedPacket, binaryType) => {
+ if (typeof encodedPacket !== "string") {
+ return {
+ type: "message",
+ data: mapBinary(encodedPacket, binaryType)
+ };
+ }
+ const type = encodedPacket.charAt(0);
+ if (type === "b") {
+ const buffer = Buffer.from(encodedPacket.substring(1), "base64");
+ return {
+ type: "message",
+ data: mapBinary(buffer, binaryType)
+ };
+ }
+ if (!PACKET_TYPES_REVERSE[type]) {
+ return ERROR_PACKET;
+ }
+ return encodedPacket.length > 1
+ ? {
+ type: PACKET_TYPES_REVERSE[type],
+ data: encodedPacket.substring(1)
+ }
+ : {
+ type: PACKET_TYPES_REVERSE[type]
+ };
+};
+const mapBinary = (data, binaryType) => {
+ const isBuffer = Buffer.isBuffer(data);
+ switch (binaryType) {
+ case "arraybuffer":
+ return isBuffer ? toArrayBuffer(data) : data;
+ case "nodebuffer":
+ default:
+ return data; // assuming the data is already a Buffer
+ }
+};
+const toArrayBuffer = (buffer) => {
+ const arrayBuffer = new ArrayBuffer(buffer.length);
+ const view = new Uint8Array(arrayBuffer);
+ for (let i = 0; i < buffer.length; i++) {
+ view[i] = buffer[i];
+ }
+ return arrayBuffer;
+};
+export default decodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts b/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts
new file mode 100644
index 0000000..9ca28c8
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts
@@ -0,0 +1,3 @@
+import { Packet, RawData } from "./commons.js";
+declare const encodePacket: ({ type, data }: Packet, supportsBinary: boolean, callback: (encodedPacket: RawData) => void) => void;
+export default encodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/encodePacket.browser.js b/node_modules/engine.io-parser/build/esm/encodePacket.browser.js
new file mode 100644
index 0000000..37d19e4
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/encodePacket.browser.js
@@ -0,0 +1,41 @@
+import { PACKET_TYPES } from "./commons.js";
+const withNativeBlob = typeof Blob === "function" ||
+ (typeof Blob !== "undefined" &&
+ Object.prototype.toString.call(Blob) === "[object BlobConstructor]");
+const withNativeArrayBuffer = typeof ArrayBuffer === "function";
+// ArrayBuffer.isView method is not defined in IE10
+const isView = obj => {
+ return typeof ArrayBuffer.isView === "function"
+ ? ArrayBuffer.isView(obj)
+ : obj && obj.buffer instanceof ArrayBuffer;
+};
+const encodePacket = ({ type, data }, supportsBinary, callback) => {
+ if (withNativeBlob && data instanceof Blob) {
+ if (supportsBinary) {
+ return callback(data);
+ }
+ else {
+ return encodeBlobAsBase64(data, callback);
+ }
+ }
+ else if (withNativeArrayBuffer &&
+ (data instanceof ArrayBuffer || isView(data))) {
+ if (supportsBinary) {
+ return callback(data);
+ }
+ else {
+ return encodeBlobAsBase64(new Blob([data]), callback);
+ }
+ }
+ // plain string
+ return callback(PACKET_TYPES[type] + (data || ""));
+};
+const encodeBlobAsBase64 = (data, callback) => {
+ const fileReader = new FileReader();
+ fileReader.onload = function () {
+ const content = fileReader.result.split(",")[1];
+ callback("b" + content);
+ };
+ return fileReader.readAsDataURL(data);
+};
+export default encodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/encodePacket.d.ts b/node_modules/engine.io-parser/build/esm/encodePacket.d.ts
new file mode 100644
index 0000000..9ca28c8
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/encodePacket.d.ts
@@ -0,0 +1,3 @@
+import { Packet, RawData } from "./commons.js";
+declare const encodePacket: ({ type, data }: Packet, supportsBinary: boolean, callback: (encodedPacket: RawData) => void) => void;
+export default encodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/encodePacket.js b/node_modules/engine.io-parser/build/esm/encodePacket.js
new file mode 100644
index 0000000..789eb74
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/encodePacket.js
@@ -0,0 +1,25 @@
+import { PACKET_TYPES } from "./commons.js";
+const encodePacket = ({ type, data }, supportsBinary, callback) => {
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
+ const buffer = toBuffer(data);
+ return callback(encodeBuffer(buffer, supportsBinary));
+ }
+ // plain string
+ return callback(PACKET_TYPES[type] + (data || ""));
+};
+const toBuffer = data => {
+ if (Buffer.isBuffer(data)) {
+ return data;
+ }
+ else if (data instanceof ArrayBuffer) {
+ return Buffer.from(data);
+ }
+ else {
+ return Buffer.from(data.buffer, data.byteOffset, data.byteLength);
+ }
+};
+// only 'message' packets can contain binary, so the type prefix is not needed
+const encodeBuffer = (data, supportsBinary) => {
+ return supportsBinary ? data : "b" + data.toString("base64");
+};
+export default encodePacket;
diff --git a/node_modules/engine.io-parser/build/esm/index.d.ts b/node_modules/engine.io-parser/build/esm/index.d.ts
new file mode 100644
index 0000000..e79de35
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/index.d.ts
@@ -0,0 +1,7 @@
+import encodePacket from "./encodePacket.js";
+import decodePacket from "./decodePacket.js";
+import { Packet, PacketType, RawData, BinaryType } from "./commons.js";
+declare const encodePayload: (packets: Packet[], callback: (encodedPayload: string) => void) => void;
+declare const decodePayload: (encodedPayload: string, binaryType?: BinaryType) => Packet[];
+export declare const protocol = 4;
+export { encodePacket, encodePayload, decodePacket, decodePayload, Packet, PacketType, RawData, BinaryType };
diff --git a/node_modules/engine.io-parser/build/esm/index.js b/node_modules/engine.io-parser/build/esm/index.js
new file mode 100644
index 0000000..237a472
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/index.js
@@ -0,0 +1,32 @@
+import encodePacket from "./encodePacket.js";
+import decodePacket from "./decodePacket.js";
+const SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text
+const encodePayload = (packets, callback) => {
+ // some packets may be added to the array while encoding, so the initial length must be saved
+ const length = packets.length;
+ const encodedPackets = new Array(length);
+ let count = 0;
+ packets.forEach((packet, i) => {
+ // force base64 encoding for binary packets
+ encodePacket(packet, false, encodedPacket => {
+ encodedPackets[i] = encodedPacket;
+ if (++count === length) {
+ callback(encodedPackets.join(SEPARATOR));
+ }
+ });
+ });
+};
+const decodePayload = (encodedPayload, binaryType) => {
+ const encodedPackets = encodedPayload.split(SEPARATOR);
+ const packets = [];
+ for (let i = 0; i < encodedPackets.length; i++) {
+ const decodedPacket = decodePacket(encodedPackets[i], binaryType);
+ packets.push(decodedPacket);
+ if (decodedPacket.type === "error") {
+ break;
+ }
+ }
+ return packets;
+};
+export const protocol = 4;
+export { encodePacket, encodePayload, decodePacket, decodePayload };
diff --git a/node_modules/engine.io-parser/build/esm/package.json b/node_modules/engine.io-parser/build/esm/package.json
new file mode 100644
index 0000000..6f2c74a
--- /dev/null
+++ b/node_modules/engine.io-parser/build/esm/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "engine.io-parser",
+ "type": "module",
+ "browser": {
+ "./encodePacket.js": "./encodePacket.browser.js",
+ "./decodePacket.js": "./decodePacket.browser.js"
+ }
+}
diff --git a/node_modules/engine.io-parser/package.json b/node_modules/engine.io-parser/package.json
new file mode 100644
index 0000000..76f7db7
--- /dev/null
+++ b/node_modules/engine.io-parser/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "engine.io-parser",
+ "description": "Parser for the client for the realtime Engine",
+ "license": "MIT",
+ "version": "5.0.4",
+ "main": "./build/cjs/index.js",
+ "module": "./build/esm/index.js",
+ "exports": {
+ "import": "./build/esm/index.js",
+ "require": "./build/cjs/index.js"
+ },
+ "types": "build/esm/index.d.ts",
+ "homepage": "https://github.com/socketio/engine.io-parser",
+ "devDependencies": {
+ "@babel/core": "~7.9.6",
+ "@babel/preset-env": "~7.9.6",
+ "@types/mocha": "^9.0.0",
+ "@types/node": "^16.9.6",
+ "babelify": "^10.0.0",
+ "benchmark": "^2.1.4",
+ "expect.js": "0.3.1",
+ "mocha": "^5.2.0",
+ "nyc": "~15.0.1",
+ "prettier": "^1.19.1",
+ "rimraf": "^3.0.2",
+ "socket.io-browsers": "^1.0.4",
+ "ts-node": "^10.2.1",
+ "tsify": "^5.0.4",
+ "typescript": "^4.4.3",
+ "zuul": "3.11.1",
+ "zuul-ngrok": "4.0.0"
+ },
+ "scripts": {
+ "compile": "rimraf ./build && tsc && tsc -p tsconfig.esm.json && ./postcompile.sh",
+ "test": "npm run format:check && npm run compile && if test \"$BROWSERS\" = \"1\" ; then npm run test:browser; else npm run test:node; fi",
+ "test:node": "nyc mocha -r ts-node/register test/index.ts",
+ "test:browser": "zuul test/index.ts --no-coverage",
+ "format:check": "prettier --check 'lib/**/*.ts' 'test/**/*.ts'",
+ "format:fix": "prettier --write 'lib/**/*.ts' 'test/**/*.ts'"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:socketio/engine.io-parser.git"
+ },
+ "files": [
+ "build/"
+ ],
+ "browser": {
+ "./test/node": "./test/browser",
+ "./build/esm/encodePacket.js": "./build/esm/encodePacket.browser.js",
+ "./build/esm/decodePacket.js": "./build/esm/decodePacket.browser.js",
+ "./build/cjs/encodePacket.js": "./build/cjs/encodePacket.browser.js",
+ "./build/cjs/decodePacket.js": "./build/cjs/decodePacket.browser.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+}
diff --git a/node_modules/engine.io/LICENSE b/node_modules/engine.io/LICENSE
new file mode 100644
index 0000000..6494c3c
--- /dev/null
+++ b/node_modules/engine.io/LICENSE
@@ -0,0 +1,19 @@
+(The MIT License)
+
+Copyright (c) 2014 Guillermo Rauch
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the 'Software'), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/node_modules/engine.io/README.md b/node_modules/engine.io/README.md
new file mode 100644
index 0000000..163077f
--- /dev/null
+++ b/node_modules/engine.io/README.md
@@ -0,0 +1,596 @@
+
+# Engine.IO: the realtime engine
+
+[![Build Status](https://github.com/socketio/engine.io/workflows/CI/badge.svg?branch=master)](https://github.com/socketio/engine.io/actions)
+[![NPM version](https://badge.fury.io/js/engine.io.svg)](http://badge.fury.io/js/engine.io)
+
+`Engine.IO` is the implementation of transport-based
+cross-browser/cross-device bi-directional communication layer for
+[Socket.IO](http://github.com/socketio/socket.io).
+
+## How to use
+
+### Server
+
+#### (A) Listening on a port
+
+```js
+const engine = require('engine.io');
+const server = engine.listen(80);
+
+server.on('connection', socket => {
+ socket.send('utf 8 string');
+ socket.send(Buffer.from([0, 1, 2, 3, 4, 5])); // binary data
+});
+```
+
+#### (B) Intercepting requests for a http.Server
+
+```js
+const engine = require('engine.io');
+const http = require('http').createServer().listen(3000);
+const server = engine.attach(http);
+
+server.on('connection', socket => {
+ socket.on('message', data => { });
+ socket.on('close', () => { });
+});
+```
+
+#### (C) Passing in requests
+
+```js
+const engine = require('engine.io');
+const server = new engine.Server();
+
+server.on('connection', socket => {
+ socket.send('hi');
+});
+
+// …
+httpServer.on('upgrade', (req, socket, head) => {
+ server.handleUpgrade(req, socket, head);
+});
+
+httpServer.on('request', (req, res) => {
+ server.handleRequest(req, res);
+});
+```
+
+### Client
+
+```html
+
+
+```
+
+For more information on the client refer to the
+[engine-client](http://github.com/socketio/engine.io-client) repository.
+
+## What features does it have?
+
+- **Maximum reliability**. Connections are established even in the presence of:
+ - proxies and load balancers.
+ - personal firewall and antivirus software.
+ - for more information refer to **Goals** and **Architecture** sections
+- **Minimal client size** aided by:
+ - lazy loading of flash transports.
+ - lack of redundant transports.
+- **Scalable**
+ - load balancer friendly
+- **Future proof**
+- **100% Node.JS core style**
+ - No API sugar (left for higher level projects)
+ - Written in readable vanilla JavaScript
+
+## API
+
+### Server
+
+
+
+#### Top-level
+
+These are exposed by `require('engine.io')`:
+
+##### Events
+
+- `flush`
+ - Called when a socket buffer is being flushed.
+ - **Arguments**
+ - `Socket`: socket being flushed
+ - `Array`: write buffer
+- `drain`
+ - Called when a socket buffer is drained
+ - **Arguments**
+ - `Socket`: socket being flushed
+
+##### Properties
+
+- `protocol` _(Number)_: protocol revision number
+- `Server`: Server class constructor
+- `Socket`: Socket class constructor
+- `Transport` _(Function)_: transport constructor
+- `transports` _(Object)_: map of available transports
+
+##### Methods
+
+- `()`
+ - Returns a new `Server` instance. If the first argument is an `http.Server` then the
+ new `Server` instance will be attached to it. Otherwise, the arguments are passed
+ directly to the `Server` constructor.
+ - **Parameters**
+ - `http.Server`: optional, server to attach to.
+ - `Object`: optional, options object (see `Server#constructor` api docs below)
+
+ The following are identical ways to instantiate a server and then attach it.
+
+```js
+const httpServer; // previously created with `http.createServer();` from node.js api.
+
+// create a server first, and then attach
+const eioServer = require('engine.io').Server();
+eioServer.attach(httpServer);
+
+// or call the module as a function to get `Server`
+const eioServer = require('engine.io')();
+eioServer.attach(httpServer);
+
+// immediately attach
+const eioServer = require('engine.io')(httpServer);
+
+// with custom options
+const eioServer = require('engine.io')(httpServer, {
+ maxHttpBufferSize: 1e3
+});
+```
+
+- `listen`
+ - Creates an `http.Server` which listens on the given port and attaches WS
+ to it. It returns `501 Not Implemented` for regular http requests.
+ - **Parameters**
+ - `Number`: port to listen on.
+ - `Object`: optional, options object
+ - `Function`: callback for `listen`.
+ - **Options**
+ - All options from `Server.attach` method, documented below.
+ - **Additionally** See Server `constructor` below for options you can pass for creating the new Server
+ - **Returns** `Server`
+
+```js
+const engine = require('engine.io');
+const server = engine.listen(3000, {
+ pingTimeout: 2000,
+ pingInterval: 10000
+});
+
+server.on('connection', /* ... */);
+```
+
+- `attach`
+ - Captures `upgrade` requests for a `http.Server`. In other words, makes
+ a regular http.Server WebSocket-compatible.
+ - **Parameters**
+ - `http.Server`: server to attach to.
+ - `Object`: optional, options object
+ - **Options**
+ - All options from `Server.attach` method, documented below.
+ - **Additionally** See Server `constructor` below for options you can pass for creating the new Server
+ - **Returns** `Server` a new Server instance.
+
+```js
+const engine = require('engine.io');
+const httpServer = require('http').createServer().listen(3000);
+const server = engine.attach(httpServer, {
+ wsEngine: require('eiows').Server // requires having eiows as dependency
+});
+
+server.on('connection', /* ... */);
+```
+
+#### Server
+
+The main server/manager. _Inherits from EventEmitter_.
+
+##### Events
+
+- `connection`
+ - Fired when a new connection is established.
+ - **Arguments**
+ - `Socket`: a Socket object
+
+- `initial_headers`
+ - Fired on the first request of the connection, before writing the response headers
+ - **Arguments**
+ - `headers` (`Object`): a hash of headers
+ - `req` (`http.IncomingMessage`): the request
+
+- `headers`
+ - Fired on the all requests of the connection, before writing the response headers
+ - **Arguments**
+ - `headers` (`Object`): a hash of headers
+ - `req` (`http.IncomingMessage`): the request
+
+- `connection_error`
+ - Fired when an error occurs when establishing the connection.
+ - **Arguments**
+ - `error`: an object with following properties:
+ - `req` (`http.IncomingMessage`): the request that was dropped
+ - `code` (`Number`): one of `Server.errors`
+ - `message` (`string`): one of `Server.errorMessages`
+ - `context` (`Object`): extra info about the error
+
+| Code | Message |
+| ---- | ------- |
+| 0 | "Transport unknown"
+| 1 | "Session ID unknown"
+| 2 | "Bad handshake method"
+| 3 | "Bad request"
+| 4 | "Forbidden"
+| 5 | "Unsupported protocol version"
+
+
+##### Properties
+
+**Important**: if you plan to use Engine.IO in a scalable way, please
+keep in mind the properties below will only reflect the clients connected
+to a single process.
+
+- `clients` _(Object)_: hash of connected clients by id.
+- `clientsCount` _(Number)_: number of connected clients.
+
+##### Methods
+
+- **constructor**
+ - Initializes the server
+ - **Parameters**
+ - `Object`: optional, options object
+ - **Options**
+ - `pingTimeout` (`Number`): how many ms without a pong packet to
+ consider the connection closed (`20000`)
+ - `pingInterval` (`Number`): how many ms before sending a new ping
+ packet (`25000`)
+ - `upgradeTimeout` (`Number`): how many ms before an uncompleted transport upgrade is cancelled (`10000`)
+ - `maxHttpBufferSize` (`Number`): how many bytes or characters a message
+ can be, before closing the session (to avoid DoS). Default
+ value is `1E6`.
+ - `allowRequest` (`Function`): A function that receives a given handshake
+ or upgrade request as its first parameter, and can decide whether to
+ continue or not. The second argument is a function that needs to be
+ called with the decided information: `fn(err, success)`, where
+ `success` is a boolean value where false means that the request is
+ rejected, and err is an error code.
+ - `transports` (` String`): transports to allow connections
+ to (`['polling', 'websocket']`)
+ - `allowUpgrades` (`Boolean`): whether to allow transport upgrades
+ (`true`)
+ - `perMessageDeflate` (`Object|Boolean`): parameters of the WebSocket permessage-deflate extension
+ (see [ws module](https://github.com/einaros/ws) api docs). Set to `true` to enable. (defaults to `false`)
+ - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`)
+ - `httpCompression` (`Object|Boolean`): parameters of the http compression for the polling transports
+ (see [zlib](http://nodejs.org/api/zlib.html#zlib_options) api docs). Set to `false` to disable. (`true`)
+ - `threshold` (`Number`): data is compressed only if the byte size is above this value (`1024`)
+ - `cookie` (`Object|Boolean`): configuration of the cookie that
+ contains the client sid to send as part of handshake response
+ headers. This cookie might be used for sticky-session. Defaults to not sending any cookie (`false`).
+ See [here](https://github.com/jshttp/cookie#options-1) for all supported options.
+ - `wsEngine` (`Function`): what WebSocket server implementation to use. Specified module must conform to the `ws` interface (see [ws module api docs](https://github.com/websockets/ws/blob/master/doc/ws.md)). Default value is `ws`. An alternative c++ addon is also available by installing `eiows` module.
+ - `cors` (`Object`): the options that will be forwarded to the cors module. See [there](https://github.com/expressjs/cors#configuration-options) for all available options. Defaults to no CORS allowed.
+ - `initialPacket` (`Object`): an optional packet which will be concatenated to the handshake packet emitted by Engine.IO.
+ - `allowEIO3` (`Boolean`): whether to support v3 Engine.IO clients (defaults to `false`)
+- `close`
+ - Closes all clients
+ - **Returns** `Server` for chaining
+- `handleRequest`
+ - Called internally when a `Engine` request is intercepted.
+ - **Parameters**
+ - `http.IncomingMessage`: a node request object
+ - `http.ServerResponse`: a node response object
+ - **Returns** `Server` for chaining
+- `handleUpgrade`
+ - Called internally when a `Engine` ws upgrade is intercepted.
+ - **Parameters** (same as `upgrade` event)
+ - `http.IncomingMessage`: a node request object
+ - `net.Stream`: TCP socket for the request
+ - `Buffer`: legacy tail bytes
+ - **Returns** `Server` for chaining
+- `attach`
+ - Attach this Server instance to an `http.Server`
+ - Captures `upgrade` requests for a `http.Server`. In other words, makes
+ a regular http.Server WebSocket-compatible.
+ - **Parameters**
+ - `http.Server`: server to attach to.
+ - `Object`: optional, options object
+ - **Options**
+ - `path` (`String`): name of the path to capture (`/engine.io`).
+ - `destroyUpgrade` (`Boolean`): destroy unhandled upgrade requests (`true`)
+ - `destroyUpgradeTimeout` (`Number`): milliseconds after which unhandled requests are ended (`1000`)
+- `generateId`
+ - Generate a socket id.
+ - Overwrite this method to generate your custom socket id.
+ - **Parameters**
+ - `http.IncomingMessage`: a node request object
+ - **Returns** A socket id for connected client.
+
+
+
+#### Socket
+
+A representation of a client. _Inherits from EventEmitter_.
+
+##### Events
+
+- `close`
+ - Fired when the client is disconnected.
+ - **Arguments**
+ - `String`: reason for closing
+ - `Object`: description object (optional)
+- `message`
+ - Fired when the client sends a message.
+ - **Arguments**
+ - `String` or `Buffer`: Unicode string or Buffer with binary contents
+- `error`
+ - Fired when an error occurs.
+ - **Arguments**
+ - `Error`: error object
+- `flush`
+ - Called when the write buffer is being flushed.
+ - **Arguments**
+ - `Array`: write buffer
+- `drain`
+ - Called when the write buffer is drained
+- `packet`
+ - Called when a socket received a packet (`message`, `ping`)
+ - **Arguments**
+ - `type`: packet type
+ - `data`: packet data (if type is message)
+- `packetCreate`
+ - Called before a socket sends a packet (`message`, `ping`)
+ - **Arguments**
+ - `type`: packet type
+ - `data`: packet data (if type is message)
+- `heartbeat`
+ - Called when `ping` or `pong` packed is received (depends of client version)
+
+##### Properties
+
+- `id` _(String)_: unique identifier
+- `server` _(Server)_: engine parent reference
+- `request` _(http.IncomingMessage)_: request that originated the Socket
+- `upgraded` _(Boolean)_: whether the transport has been upgraded
+- `readyState` _(String)_: opening|open|closing|closed
+- `transport` _(Transport)_: transport reference
+
+##### Methods
+
+- `send`:
+ - Sends a message, performing `message = toString(arguments[0])` unless
+ sending binary data, which is sent as is.
+ - **Parameters**
+ - `String` | `Buffer` | `ArrayBuffer` | `ArrayBufferView`: a string or any object implementing `toString()`, with outgoing data, or a Buffer or ArrayBuffer with binary data. Also any ArrayBufferView can be sent as is.
+ - `Object`: optional, options object
+ - `Function`: optional, a callback executed when the message gets flushed out by the transport
+ - **Options**
+ - `compress` (`Boolean`): whether to compress sending data. This option might be ignored and forced to be `true` when using polling. (`true`)
+ - **Returns** `Socket` for chaining
+- `close`
+ - Disconnects the client
+ - **Returns** `Socket` for chaining
+
+### Client
+
+
+
+Exposed in the `eio` global namespace (in the browser), or by
+`require('engine.io-client')` (in Node.JS).
+
+For the client API refer to the
+[engine-client](http://github.com/learnboost/engine.io-client) repository.
+
+## Debug / logging
+
+Engine.IO is powered by [debug](http://github.com/visionmedia/debug).
+In order to see all the debug output, run your app with the environment variable
+`DEBUG` including the desired scope.
+
+To see the output from all of Engine.IO's debugging scopes you can use:
+
+```
+DEBUG=engine* node myapp
+```
+
+## Transports
+
+- `polling`: XHR / JSONP polling transport.
+- `websocket`: WebSocket transport.
+
+## Plugins
+
+- [engine.io-conflation](https://github.com/EugenDueck/engine.io-conflation): Makes **conflation and aggregation** of messages straightforward.
+
+## Support
+
+The support channels for `engine.io` are the same as `socket.io`:
+ - irc.freenode.net **#socket.io**
+ - [Google Groups](http://groups.google.com/group/socket_io)
+ - [Website](http://socket.io)
+
+## Development
+
+To contribute patches, run tests or benchmarks, make sure to clone the
+repository:
+
+```
+git clone git://github.com/LearnBoost/engine.io.git
+```
+
+Then:
+
+```
+cd engine.io
+npm install
+```
+
+## Tests
+
+Tests run with `npm test`. It runs the server tests that are aided by
+the usage of `engine.io-client`.
+
+Make sure `npm install` is run first.
+
+## Goals
+
+The main goal of `Engine` is ensuring the most reliable realtime communication.
+Unlike the previous Socket.IO core, it always establishes a long-polling
+connection first, then tries to upgrade to better transports that are "tested" on
+the side.
+
+During the lifetime of the Socket.IO projects, we've found countless drawbacks
+to relying on `HTML5 WebSocket` or `Flash Socket` as the first connection
+mechanisms.
+
+Both are clearly the _right way_ of establishing a bidirectional communication,
+with HTML5 WebSocket being the way of the future. However, to answer most business
+needs, alternative traditional HTTP 1.1 mechanisms are just as good as delivering
+the same solution.
+
+WebSocket based connections have two fundamental benefits:
+
+1. **Better server performance**
+ - _A: Load balancers_
+ Load balancing a long polling connection poses a serious architectural nightmare
+ since requests can come from any number of open sockets by the user agent, but
+ they all need to be routed to the process and computer that owns the `Engine`
+ connection. This negatively impacts RAM and CPU usage.
+ - _B: Network traffic_
+ WebSocket is designed around the premise that each message frame has to be
+ surrounded by the least amount of data. In HTTP 1.1 transports, each message
+ frame is surrounded by HTTP headers and chunked encoding frames. If you try to
+ send the message _"Hello world"_ with xhr-polling, the message ultimately
+ becomes larger than if you were to send it with WebSocket.
+ - _C: Lightweight parser_
+ As an effect of **B**, the server has to do a lot more work to parse the network
+ data and figure out the message when traditional HTTP requests are used
+ (as in long polling). This means that another advantage of WebSocket is
+ less server CPU usage.
+
+2. **Better user experience**
+
+ Due to the reasons stated in point **1**, the most important effect of being able
+ to establish a WebSocket connection is raw data transfer speed, which translates
+ in _some_ cases in better user experience.
+
+ Applications with heavy realtime interaction (such as games) will benefit greatly,
+ whereas applications like realtime chat (Gmail/Facebook), newsfeeds (Facebook) or
+ timelines (Twitter) will have negligible user experience improvements.
+
+Having said this, attempting to establish a WebSocket connection directly so far has
+proven problematic:
+
+1. **Proxies**
+ Many corporate proxies block WebSocket traffic.
+
+2. **Personal firewall and antivirus software**
+ As a result of our research, we've found that at least 3 personal security
+ applications block WebSocket traffic.
+
+3. **Cloud application platforms**
+ Platforms like Heroku or No.de have had trouble keeping up with the fast-paced
+ nature of the evolution of the WebSocket protocol. Applications therefore end up
+ inevitably using long polling, but the seamless installation experience of
+ Socket.IO we strive for (_"require() it and it just works"_) disappears.
+
+Some of these problems have solutions. In the case of proxies and personal programs,
+however, the solutions many times involve upgrading software. Experience has shown
+that relying on client software upgrades to deliver a business solution is
+fruitless: the very existence of this project has to do with a fragmented panorama
+of user agent distribution, with clients connecting with latest versions of the most
+modern user agents (Chrome, Firefox and Safari), but others with versions as low as
+IE 5.5.
+
+From the user perspective, an unsuccessful WebSocket connection can translate in
+up to at least 10 seconds of waiting for the realtime application to begin
+exchanging data. This **perceptively** hurts user experience.
+
+To summarize, **Engine** focuses on reliability and user experience first, marginal
+potential UX improvements and increased server performance second. `Engine` is the
+result of all the lessons learned with WebSocket in the wild.
+
+## Architecture
+
+The main premise of `Engine`, and the core of its existence, is the ability to
+swap transports on the fly. A connection starts as xhr-polling, but it can
+switch to WebSocket.
+
+The central problem this poses is: how do we switch transports without losing
+messages?
+
+`Engine` only switches from polling to another transport in between polling
+cycles. Since the server closes the connection after a certain timeout when
+there's no activity, and the polling transport implementation buffers messages
+in between connections, this ensures no message loss and optimal performance.
+
+Another benefit of this design is that we workaround almost all the limitations
+of **Flash Socket**, such as slow connection times, increased file size (we can
+safely lazy load it without hurting user experience), etc.
+
+## FAQ
+
+### Can I use engine without Socket.IO ?
+
+Absolutely. Although the recommended framework for building realtime applications
+is Socket.IO, since it provides fundamental features for real-world applications
+such as multiplexing, reconnection support, etc.
+
+`Engine` is to Socket.IO what Connect is to Express. An essential piece for building
+realtime frameworks, but something you _probably_ won't be using for building
+actual applications.
+
+### Does the server serve the client?
+
+No. The main reason is that `Engine` is meant to be bundled with frameworks.
+Socket.IO includes `Engine`, therefore serving two clients is not necessary. If
+you use Socket.IO, including
+
+```html
+
+
+