From ddcf028f086b1e29339cad0cbfa9c40095f1f116 Mon Sep 17 00:00:00 2001 From: cha0s Date: Wed, 2 Dec 2020 17:25:29 -0600 Subject: [PATCH] flow: sockies --- packages/socket/package.json | 8 +- packages/socket/src/client/index.js | 11 + packages/socket/src/client/socket.js | 103 ++++++ packages/socket/src/index.js | 7 +- packages/socket/src/lifecycle.js | 4 +- packages/socket/src/packet/packets.js | 6 +- .../socket/src/packet/socket.io-parser.js | 3 + packages/socket/src/server.js | 20 +- packages/socket/src/session.js | 2 +- packages/socket/src/socket.js | 26 +- packages/socket/yarn.lock | 349 ++++++++++-------- 11 files changed, 358 insertions(+), 181 deletions(-) create mode 100644 packages/socket/src/client/index.js create mode 100644 packages/socket/src/client/socket.js diff --git a/packages/socket/package.json b/packages/socket/package.json index 071172a..a470a4d 100644 --- a/packages/socket/package.json +++ b/packages/socket/package.json @@ -12,6 +12,8 @@ "watch": "NODE_PATH=./node_modules webpack --watch --mode development" }, "files": [ + "client.js", + "client.js.map", "index.js", "index.js.map", "passport.js", @@ -22,10 +24,12 @@ "dependencies": { "@latus/core": "^1.0.0", "@latus/http": "^1.0.0", + "buffer": "^6.0.3", + "debug": "^4.3.1", "express-socket.io-session": "^1.3.5", "passport": "^0.4.1", - "socket.io": "^3.0.3", - "socket.io-client": "^3.0.3" + "socket.io": "2.3.0", + "socket.io-client": "2.3.0" }, "devDependencies": { "@neutrinojs/airbnb-base": "^9.4.0", diff --git a/packages/socket/src/client/index.js b/packages/socket/src/client/index.js new file mode 100644 index 0000000..cd101f9 --- /dev/null +++ b/packages/socket/src/client/index.js @@ -0,0 +1,11 @@ +import SocketClient from './socket'; + +// eslint-disable-next-line import/prefer-default-export +export const $$latus = { + hooks: { + '@latus/http/client/up': (plugins) => { + const socket = new SocketClient(plugins); + socket.connect(); + }, + }, +}; diff --git a/packages/socket/src/client/socket.js b/packages/socket/src/client/socket.js new file mode 100644 index 0000000..1703249 --- /dev/null +++ b/packages/socket/src/client/socket.js @@ -0,0 +1,103 @@ +import D from 'debug'; +import io from 'socket.io-client'; + +import {Class, compose, EventEmitter} from '@latus/core'; + +import SocketIoParser from '../packet/socket.io-parser'; +import {all} from '../packet/packets'; + +const debug = D('@latus/socket/client/socket'); + +const decorate = compose( + EventEmitter, +); + +export default class SocketClient extends decorate(Class) { + + constructor(plugins) { + super(); + const { + config: { + '@latus/core/client': {id}, + }, + } = plugins; + this.isConnected = false; + this.isReconnecting = false; + this.options = { + parser: SocketIoParser(plugins), + path: `/${id}`, + perMessageDeflate: false, + ...plugins.invokeReduce('@latus/socket/client', {}, (r, o) => ({...r, ...o})), + }; + this.plugins = plugins; + this.socket = null; + } + + connect(address) { + if (this.socket) { + this.socket.destroy(); + } + this.address = address; + debug('connecting to %s', this.address); + this.socket = io(this.address, { + ...this.options, + }); + this.socket.on('connect', () => { + debug('connect'); + this.isConnected = true; + this.emit('connect'); + }); + [ + 'connect', + 'connect_error', + 'connect_timeout', + 'error', + 'disconnect', + 'reconnect', + 'reconnect_attempt', + 'reconnecting', + 'reconnect_error', + 'reconnect_failed', + 'ping', + 'pong’', + ].forEach((type) => this.socket.on('type', (...args) => this.emit(type, ...args))); + const Packets = all(this.plugins); + for (let i = 0; i < Packets.length; i++) { + const Packet = Packets[i]; + const {id} = Packet; + this.socket.on(id, (data, fn) => { + const packet = new Packet(data); + debug('recieved packet %s(%o)', Packet.name, packet.data); + this.emit('packet', packet, fn); + }); + } + } + + disconnect() { + this.socket.disconnect(); + } + + get id() { + return this.socket ? this.socket.id : undefined; + } + + send(packet, fn) { + const {id} = packet.constructor; + debug('sending packet %s(%o)', packet.constructor.name, packet.data); + this.socket.binary(true).emit(id, packet.data, fn); + } + + get session() { + return this.socket.handshake.session; + } + + to(channel) { + return { + send: (packet) => { + const {id} = packet.constructor; + this.socket.binary(true).to(channel).emit(id, packet.data); + }, + }; + } + +} diff --git a/packages/socket/src/index.js b/packages/socket/src/index.js index 7f7fbd5..9606727 100644 --- a/packages/socket/src/index.js +++ b/packages/socket/src/index.js @@ -8,9 +8,12 @@ export const $$latus = { '@latus/core/config': () => ({ middleware: [], }), + '@latus/http/plugins': () => ({ + '@latus/socket/client': {}, + }), '@latus/http/server/up': async (httpServer, plugins) => { - socketServer = createSocketServer(); - socketServer.open(httpServer, plugins); + socketServer = createSocketServer(plugins); + socketServer.open(httpServer); }, '@latus/repl/context': () => ({ socketServer, diff --git a/packages/socket/src/lifecycle.js b/packages/socket/src/lifecycle.js index 6a4d43b..6d20736 100644 --- a/packages/socket/src/lifecycle.js +++ b/packages/socket/src/lifecycle.js @@ -1,7 +1,7 @@ import SocketServer from './server'; -export function createSocketServer() { - return new SocketServer(); +export function createSocketServer(plugins) { + return new SocketServer(plugins); } export function destroySocketServer(socketServer) { diff --git a/packages/socket/src/packet/packets.js b/packages/socket/src/packet/packets.js index fcab97b..f4c6c54 100644 --- a/packages/socket/src/packet/packets.js +++ b/packages/socket/src/packet/packets.js @@ -1,16 +1,16 @@ import {arrayFlatten} from '@latus/core'; const ensurePackets = (plugins) => { - if (!plugins['@latus/socket'].packets) { + if (!plugins.config['%packets']) { const Packets = arrayFlatten(plugins.invokeFlat('@latus/socket/packets')); /* eslint-disable no-param-reassign */ Packets.forEach((Packet, i) => { Packet.id = i; }); - plugins['@latus/socket'].packets = Packets; + plugins.config['%packets'] = Packets; /* eslint-enable no-param-reassign */ } - return plugins['@latus/socket'].packets; + return plugins.config['%packets']; }; export const all = (plugins) => ensurePackets(plugins); diff --git a/packages/socket/src/packet/socket.io-parser.js b/packages/socket/src/packet/socket.io-parser.js index e72a3aa..d403499 100644 --- a/packages/socket/src/packet/socket.io-parser.js +++ b/packages/socket/src/packet/socket.io-parser.js @@ -62,6 +62,9 @@ const Decoder = (plugins) => class Decoder extends decorate(class {}) { } } + // eslint-disable-next-line class-methods-use-this + destroy() {} + parseBinary(binary) { const packet = inflate(Buffer.from(binary)); const view = new Uint8Array(packet); diff --git a/packages/socket/src/server.js b/packages/socket/src/server.js index b172d7c..fcc90cc 100644 --- a/packages/socket/src/server.js +++ b/packages/socket/src/server.js @@ -10,9 +10,10 @@ const decorate = compose( export default class SocketServer extends decorate(Class) { - constructor() { + constructor(plugins) { super(); this.onConnect = this.onConnect.bind(this); + this.plugins = plugins; } close(fn) { @@ -26,29 +27,30 @@ export default class SocketServer extends decorate(Class) { onConnect(socket) { const serverSocket = new ServerSocket(socket, this.plugins); - serverSocket.handshake.adapter = this.io.of('/').adapter; + serverSocket.req.adapter = this.io.of('/').adapter; this.emit('connect', serverSocket); } - open(httpServer, plugins) { + open(httpServer) { const { config: { '@latus/core': {id}, '@latus/socket': {middleware}, }, - } = plugins; + } = this.plugins; this.io = SocketIoServer(httpServer, { - parser: SocketIoParser(plugins), + parser: SocketIoParser(this.plugins), path: `/${id}`, perMessageDeflate: false, serveClient: false, - ...plugins.invokeReduce('@latus/socket/server', {}, (r, o) => ({...r, ...o})), + ...this.plugins.invokeReduce('@latus/socket/server', {}, (r, o) => ({...r, ...o})), }); this.io.on('connect', this.onConnect); for (let i = 0; i < middleware.length; i++) { - this.io.use( - plugins.invokePlugin('@latus/socket/middleware', middleware[i], this), - ); + const fn = this.plugins.invokePlugin('@latus/socket/middleware', middleware[i], this); + if (fn) { + this.io.use(fn); + } } } diff --git a/packages/socket/src/session.js b/packages/socket/src/session.js index 8aad752..2a60e00 100644 --- a/packages/socket/src/session.js +++ b/packages/socket/src/session.js @@ -5,7 +5,7 @@ import {session} from '@latus/http/session'; // eslint-disable-next-line import/prefer-default-export export const $$latus = { hooks: { - '@latus/socket/middleware': (plugins) => ( + '@latus/socket/middleware': (socketServer, plugins) => ( socketSession(session( plugins.invokeReduce('@latus/socket/session', {}, (r, o) => ({...r, ...o})), )) diff --git a/packages/socket/src/socket.js b/packages/socket/src/socket.js index 54cfe4d..49cc065 100644 --- a/packages/socket/src/socket.js +++ b/packages/socket/src/socket.js @@ -1,17 +1,27 @@ +import {Class, compose, EventEmitter} from '@latus/core'; +import D from 'debug'; + import {all} from './packet/packets'; -export default class ServerSocket { +const debug = D('@latus/socket/server/socket'); + +const decorate = compose( + EventEmitter, +); + +export default class ServerSocket extends decorate(Class) { constructor(socket, plugins) { + super(); this.socket = socket; - const entries = Object.entries(all(plugins)); - for (let i = 0; i < entries.length; i++) { - const [, Packet] = entries[i]; + const Packets = all(plugins); + for (let i = 0; i < Packets.length; i++) { + const Packet = Packets[i]; const {id} = Packet; - // debug('Registering packet %s(id: %s)', Packet.name, id); + debug('Registering packet %s(id: %s)', Packet.name, id); this.socket.on(id, (data, fn) => { const packet = new Packet(data); - // debug('recieved packet %o', packet); + debug('recieved packet %o', packet); this.emit('packet', packet, fn); }); } @@ -48,7 +58,7 @@ export default class ServerSocket { } static send(socket, packet, fn) { - // debug('sending packet %o', packet); + debug('sending packet %o', packet); const {id} = packet.constructor; socket.binary(true).emit(id, packet.data, fn); } @@ -58,7 +68,7 @@ export default class ServerSocket { } to(room, packet, fn) { - // debug('broadcasting to %s', room); + debug('broadcasting to %s', room); this.constructor.send(this.socket.to(room), packet, fn); } diff --git a/packages/socket/yarn.lock b/packages/socket/yarn.lock index c6c5987..35b3470 100644 --- a/packages/socket/yarn.lock +++ b/packages/socket/yarn.lock @@ -844,16 +844,16 @@ "@latus/core@1.0.0", "@latus/core@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fcore/-/core-1.0.0.tgz#a2a03605061c9d4d4b5ad2125c16b1f723f8e914" - integrity sha512-Yn59OuFEVdoczn8OGaBgcqxoh0XUq9SCyA/ozEW4vXzjFrEBFLStdvzUL+el1LsnHbVlLCgoFAzAleipgJXwHg== + resolved "https://npm.i12e.cha0s.io/@latus%2fcore/-/core-1.0.0.tgz#35e03f8961882020c06a7b0054860cda15c68fc2" + integrity sha512-9LZtmBR/cYInKNuY8yOUD6dYJqpXU0EhiLrDr3wW5aFJNZL1D9qYlkQxf+h6PZHU2icTTqSfmkTcjj+q2qJ8ig== dependencies: js-yaml "3.14.0" webpack-virtual-modules "0.3.2" "@latus/http@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fhttp/-/http-1.0.0.tgz#734cb9de2a5149ad1795fb69115a2b34ccb9168c" - integrity sha512-dmOFRKrrY8ODpM+QPOCKUGTsXM9e80M5D2crm2LTQ5u8LUzLtz7rZIKuvC0Fff1l3Pe3HdXjpcyAQPuY6SItgg== + resolved "https://npm.i12e.cha0s.io/@latus%2fhttp/-/http-1.0.0.tgz#ca016b659e5073e82eea65e9ce7a52bc85d4b028" + integrity sha512-dywTB24dnCdveN4IwWVKzv7AjtBLgQuiY4R+GLCI/R1NqFARL53pgi/BJd/Van1JR+TZRUH4qYyerpNo/76ong== dependencies: "@latus/core" "1.0.0" "@neutrinojs/web" "^9.1.0" @@ -1006,57 +1006,6 @@ resolved "https://npm.i12e.cha0s.io/@types%2fanymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== -"@types/body-parser@*": - version "1.19.0" - resolved "https://npm.i12e.cha0s.io/@types%2fbody-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/component-emitter@^1.2.10": - version "1.2.10" - resolved "https://npm.i12e.cha0s.io/@types%2fcomponent-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" - integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== - -"@types/connect@*": - version "3.4.33" - resolved "https://npm.i12e.cha0s.io/@types%2fconnect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.4.0": - version "0.4.0" - resolved "https://npm.i12e.cha0s.io/@types%2fcookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" - integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== - -"@types/cors@^2.8.8": - version "2.8.8" - resolved "https://npm.i12e.cha0s.io/@types%2fcors/-/cors-2.8.8.tgz#317a8d8561995c60e35b9e0fcaa8d36660c98092" - integrity sha512-fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w== - dependencies: - "@types/express" "*" - -"@types/express-serve-static-core@*": - version "4.17.14" - resolved "https://npm.i12e.cha0s.io/@types%2fexpress-serve-static-core/-/express-serve-static-core-4.17.14.tgz#cabf91debeeb3cb04b798e2cff908864e89b6106" - integrity sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.9" - resolved "https://npm.i12e.cha0s.io/@types%2fexpress/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" - integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/glob@^7.1.1": version "7.1.3" resolved "https://npm.i12e.cha0s.io/@types%2fglob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -1080,39 +1029,16 @@ resolved "https://npm.i12e.cha0s.io/@types%2fjson5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/mime@*": - version "2.0.3" - resolved "https://npm.i12e.cha0s.io/@types%2fmime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" - integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== - "@types/minimatch@*": version "3.0.3" resolved "https://npm.i12e.cha0s.io/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@^14.14.7": +"@types/node@*": version "14.14.10" resolved "https://npm.i12e.cha0s.io/@types%2fnode/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== -"@types/qs@*": - version "6.9.5" - resolved "https://npm.i12e.cha0s.io/@types%2fqs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" - integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== - -"@types/range-parser@*": - version "1.2.3" - resolved "https://npm.i12e.cha0s.io/@types%2frange-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - -"@types/serve-static@*": - version "1.13.8" - resolved "https://npm.i12e.cha0s.io/@types%2fserve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" - integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== - dependencies: - "@types/mime" "*" - "@types/node" "*" - "@types/source-list-map@*": version "0.1.2" resolved "https://npm.i12e.cha0s.io/@types%2fsource-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -1334,6 +1260,11 @@ acorn@^7.4.0: resolved "https://npm.i12e.cha0s.io/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +after@0.8.2: + version "0.8.2" + resolved "https://npm.i12e.cha0s.io/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + ajv-errors@^1.0.0: version "1.0.1" resolved "https://npm.i12e.cha0s.io/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -1493,6 +1424,11 @@ array.prototype.flat@^1.2.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://npm.i12e.cha0s.io/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + asn1.js@^5.2.0: version "5.4.1" resolved "https://npm.i12e.cha0s.io/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -1536,6 +1472,11 @@ async-each@^1.0.1: resolved "https://npm.i12e.cha0s.io/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://npm.i12e.cha0s.io/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + atob@^2.1.2: version "2.1.2" resolved "https://npm.i12e.cha0s.io/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -1593,12 +1534,17 @@ base64-arraybuffer@0.1.4: resolved "https://npm.i12e.cha0s.io/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://npm.i12e.cha0s.io/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://npm.i12e.cha0s.io/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0, base64id@~2.0.0: +base64id@2.0.0: version "2.0.0" resolved "https://npm.i12e.cha0s.io/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== @@ -1616,6 +1562,13 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +better-assert@~1.0.0: + version "1.0.2" + resolved "https://npm.i12e.cha0s.io/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + big.js@^5.2.2: version "5.2.2" resolved "https://npm.i12e.cha0s.io/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1638,6 +1591,11 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +blob@0.0.5: + version "0.0.5" + resolved "https://npm.i12e.cha0s.io/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + bluebird@^3.5.5: version "3.7.2" resolved "https://npm.i12e.cha0s.io/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -1814,6 +1772,14 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://npm.i12e.cha0s.io/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://npm.i12e.cha0s.io/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -1868,6 +1834,11 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.0" +callsite@1.0.0: + version "1.0.0" + resolved "https://npm.i12e.cha0s.io/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + callsites@^3.0.0: version "3.1.0" resolved "https://npm.i12e.cha0s.io/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2093,11 +2064,21 @@ component-bind@1.0.0: resolved "https://npm.i12e.cha0s.io/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= +component-emitter@1.2.1: + version "1.2.1" + resolved "https://npm.i12e.cha0s.io/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://npm.i12e.cha0s.io/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +component-inherit@0.0.3: + version "0.0.3" + resolved "https://npm.i12e.cha0s.io/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + concat-map@0.0.1: version "0.0.1" resolved "https://npm.i12e.cha0s.io/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2170,16 +2151,16 @@ cookie@0.1.3: resolved "https://npm.i12e.cha0s.io/cookie/-/cookie-0.1.3.tgz#e734a5c1417fce472d5aef82c381cabb64d1a435" integrity sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU= +cookie@0.3.1: + version "0.3.1" + resolved "https://npm.i12e.cha0s.io/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + cookie@0.4.0: version "0.4.0" resolved "https://npm.i12e.cha0s.io/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -cookie@~0.4.1: - version "0.4.1" - resolved "https://npm.i12e.cha0s.io/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - copy-concurrently@^1.0.0: version "1.0.5" resolved "https://npm.i12e.cha0s.io/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -2228,14 +2209,6 @@ core-util-is@~1.0.0: resolved "https://npm.i12e.cha0s.io/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@~2.8.5: - version "2.8.5" - resolved "https://npm.i12e.cha0s.io/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - crc@^3.3.0: version "3.8.0" resolved "https://npm.i12e.cha0s.io/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -2376,13 +2349,20 @@ debug@^3.0.0: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.1" resolved "https://npm.i12e.cha0s.io/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" +debug@~3.1.0: + version "3.1.0" + resolved "https://npm.i12e.cha0s.io/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + debug@~4.1.0: version "4.1.1" resolved "https://npm.i12e.cha0s.io/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -2610,9 +2590,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.612: - version "1.3.613" - resolved "https://npm.i12e.cha0s.io/electron-to-chromium/-/electron-to-chromium-1.3.613.tgz#5ad7ec1e19d28c81edb6d61b9d4990d1c9716182" - integrity sha512-c3gkahddiUalk7HLhTC7PsKzPZmovYFtgh+g3rZJ+dGokk4n4dzEoOBnoV8VU8ptvnGJMhrjM/lyXKSltqf2hQ== + version "1.3.614" + resolved "https://npm.i12e.cha0s.io/electron-to-chromium/-/electron-to-chromium-1.3.614.tgz#ff359e8d2249e2ce859a4c2bc34c22bd2e2eb0a2" + integrity sha512-JMDl46mg4G+n6q/hAJkwy9eMTj5FJjsE+8f/irAGRMLM4yeRVbMuRrdZrbbGGOrGVcZc4vJPjUpEUWNb/fA6hg== elliptic@^6.5.3: version "6.5.3" @@ -2649,38 +2629,44 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~4.0.0: - version "4.0.4" - resolved "https://npm.i12e.cha0s.io/engine.io-client/-/engine.io-client-4.0.4.tgz#973d312ab9c8dc41e64d2c323982f3b04a7f749d" - integrity sha512-and4JRvjv+BQ4WBLopYUFePxju3ms3aBRk0XjaLdh/t9TKv2LCKtKKWFRoRzIfUZsu3U38FcYqNLuXhfS16vqw== +engine.io-client@~3.4.0: + version "3.4.4" + resolved "https://npm.i12e.cha0s.io/engine.io-client/-/engine.io-client-3.4.4.tgz#77d8003f502b0782dd792b073a4d2cf7ca5ab967" + integrity sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ== dependencies: - base64-arraybuffer "0.1.4" component-emitter "~1.3.0" - debug "~4.1.0" - engine.io-parser "~4.0.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" has-cors "1.1.0" + indexof "0.0.1" parseqs "0.0.6" parseuri "0.0.6" - ws "~7.2.1" + ws "~6.1.0" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~4.0.0, engine.io-parser@~4.0.1: - version "4.0.1" - resolved "https://npm.i12e.cha0s.io/engine.io-parser/-/engine.io-parser-4.0.1.tgz#6444c3cf2523ba4fc3bbaedd4fe425e6bcb16479" - integrity sha512-v5aZK1hlckcJDGmHz3W8xvI3NUHYc9t8QtTbqdR5OaH3S9iJZilPubauOm+vLWOMMWzpE3hiq92l9lTAHamRCg== +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://npm.i12e.cha0s.io/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" -engine.io@~4.0.0: - version "4.0.4" - resolved "https://npm.i12e.cha0s.io/engine.io/-/engine.io-4.0.4.tgz#8e4af130824e8d3a4db1dbf4f718b384a0de926a" - integrity sha512-4ggUX5pICZU17OTZNFv5+uFE/ZyoK+TIXv2SvxWWX8lwStllQ6Lvvs4lDBqvKpV9EYXNcvlNOcjKChd/mo+8Tw== +engine.io@~3.4.0: + version "3.4.2" + resolved "https://npm.i12e.cha0s.io/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" + integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== dependencies: accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" - cors "~2.8.5" + cookie "0.3.1" debug "~4.1.0" - engine.io-parser "~4.0.0" + engine.io-parser "~2.2.0" ws "^7.1.2" enhanced-resolve@^0.9.1: @@ -3504,6 +3490,13 @@ growl@1.10.5: resolved "https://npm.i12e.cha0s.io/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://npm.i12e.cha0s.io/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + has-cors@1.1.0: version "1.1.0" resolved "https://npm.i12e.cha0s.io/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" @@ -3715,7 +3708,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://npm.i12e.cha0s.io/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -3761,6 +3754,11 @@ indexes-of@^1.0.1: resolved "https://npm.i12e.cha0s.io/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= +indexof@0.0.1: + version "0.0.1" + resolved "https://npm.i12e.cha0s.io/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + infer-owner@^1.0.3: version "1.0.4" resolved "https://npm.i12e.cha0s.io/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -4014,6 +4012,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://npm.i12e.cha0s.io/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@2.0.1: + version "2.0.1" + resolved "https://npm.i12e.cha0s.io/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + isexe@^2.0.0: version "2.0.0" resolved "https://npm.i12e.cha0s.io/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4652,11 +4655,16 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://npm.i12e.cha0s.io/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-component@0.0.3: + version "0.0.3" + resolved "https://npm.i12e.cha0s.io/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + object-copy@^0.1.0: version "0.1.0" resolved "https://npm.i12e.cha0s.io/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -4905,11 +4913,25 @@ parse-passwd@^1.0.0: resolved "https://npm.i12e.cha0s.io/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parseqs@0.0.5: + version "0.0.5" + resolved "https://npm.i12e.cha0s.io/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + parseqs@0.0.6: version "0.0.6" resolved "https://npm.i12e.cha0s.io/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== +parseuri@0.0.5: + version "0.0.5" + resolved "https://npm.i12e.cha0s.io/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + parseuri@0.0.6: version "0.0.6" resolved "https://npm.i12e.cha0s.io/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" @@ -5778,48 +5800,60 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~2.0.3: - version "2.0.3" - resolved "https://npm.i12e.cha0s.io/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz#372b7cde7a535fc4f4f0d5ac7f73952a3062d438" - integrity sha512-2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ== +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://npm.i12e.cha0s.io/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@^3.0.3: - version "3.0.3" - resolved "https://npm.i12e.cha0s.io/socket.io-client/-/socket.io-client-3.0.3.tgz#37890e24fc386e9de34358a1b7c4a2968f5d2630" - integrity sha512-kwCJAKb6JMqE9ZYXg78Dgt8rYLSwtJ/g/LJqpb/pOTFRZMSr1cKAsCaisHZ+IBwKHBY7DYOOkjtkHqseY3ZLpw== +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://npm.i12e.cha0s.io/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== dependencies: - "@types/component-emitter" "^1.2.10" backo2 "1.0.2" + base64-arraybuffer "0.1.5" component-bind "1.0.0" - component-emitter "~1.3.0" + component-emitter "1.2.1" debug "~4.1.0" - engine.io-client "~4.0.0" - parseuri "0.0.6" - socket.io-parser "~4.0.1" + engine.io-client "~3.4.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" -socket.io-parser@~4.0.1: - version "4.0.2" - resolved "https://npm.i12e.cha0s.io/socket.io-parser/-/socket.io-parser-4.0.2.tgz#3d021a9c86671bb079e7c6c806db6a1d9b1bc780" - integrity sha512-Bs3IYHDivwf+bAAuW/8xwJgIiBNtlvnjYRc4PbXgniLmcP1BrakBoq/QhO24rgtgW7VZ7uAaswRGxutUnlAK7g== +socket.io-parser@~3.3.0: + version "3.3.1" + resolved "https://npm.i12e.cha0s.io/socket.io-parser/-/socket.io-parser-3.3.1.tgz#f07d9c8cb3fb92633aa93e76d98fd3a334623199" + integrity sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ== dependencies: - "@types/component-emitter" "^1.2.10" component-emitter "~1.3.0" - debug "~4.1.0" + debug "~3.1.0" + isarray "2.0.1" -socket.io@^3.0.3: - version "3.0.3" - resolved "https://npm.i12e.cha0s.io/socket.io/-/socket.io-3.0.3.tgz#f296e95b14077d30e77e695849621514191a59f5" - integrity sha512-TC1GnSXhDVmd3bHji5aG7AgWB8UL7E6quACbKra8uFXBqlMwEDbrJFK+tjuIY5Pe9N0L+MAPPDv3pycnn0000A== +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://npm.i12e.cha0s.io/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: - "@types/cookie" "^0.4.0" - "@types/cors" "^2.8.8" - "@types/node" "^14.14.7" - accepts "~1.3.4" - base64id "~2.0.0" + component-emitter "1.2.1" debug "~4.1.0" - engine.io "~4.0.0" - socket.io-adapter "~2.0.3" - socket.io-parser "~4.0.1" + isarray "2.0.1" + +socket.io@2.3.0: + version "2.3.0" + resolved "https://npm.i12e.cha0s.io/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" sort-keys@^1.0.0: version "1.1.2" @@ -6150,6 +6184,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +to-array@0.1.4: + version "0.1.4" + resolved "https://npm.i12e.cha0s.io/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://npm.i12e.cha0s.io/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -6436,7 +6475,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vary@^1, vary@~1.1.2: +vary@~1.1.2: version "1.1.2" resolved "https://npm.i12e.cha0s.io/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -6636,10 +6675,12 @@ ws@^7.1.2: resolved "https://npm.i12e.cha0s.io/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== -ws@~7.2.1: - version "7.2.5" - resolved "https://npm.i12e.cha0s.io/ws/-/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d" - integrity sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA== +ws@~6.1.0: + version "6.1.4" + resolved "https://npm.i12e.cha0s.io/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" xmlhttprequest-ssl@~1.5.4: version "1.5.5"