"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dist/socket.io.min.js.map" between
socket.io-client-4.5.1.tar.gz and socket.io-client-4.5.2.tar.gz

About: Socket.IO client is a Javascript client library for the browser (or a Node.js client) that enables real-time communication with an Socket.IO server.

socket.io.min.js.map  (socket.io-client-4.5.1):socket.io.min.js.map  (socket.io-client-4.5.2)
{"version":3,"file":"socket.io.min.js","sources":["../node_modules/engine.io-cli ent/node_modules/engine.io-parser/build/esm/commons.js","../node_modules/@socket .io/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/engine.i o-client/node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../no de_modules/engine.io-client/node_modules/engine.io-parser/build/esm/decodePacket .browser.js","../node_modules/engine.io-client/node_modules/engine.io-parser/bui ld/esm/index.js","../node_modules/@socket.io/component-emitter/index.mjs","../no de_modules/engine.io-client/build/esm/globalThis.browser.js","../node_modules/en gine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/co ntrib/yeast.js","../node_modules/engine.io-client/build/esm/transport.js","../no de_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engin e.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/bui ld/esm/transports/xmlhttprequest.browser.js","../node_modules/engine.io-client/b uild/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/tran sports/websocket-constructor.browser.js","../node_modules/engine.io-client/build /esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transp orts/index.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js", "../node_modules/engine.io-client/build/esm/socket.js","../node_modules/socket.i o-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/bin ary.js","../node_modules/socket.io-parser/build/esm/index.js","../build/esm/on.j s","../build/esm/socket.js","../build/esm/contrib/backo2.js","../build/esm/manag er.js","../build/esm/index.js","../build/esm/url.js"],"sourcesContent":["const P ACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\ "] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\n PACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPE S[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REV ERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PAC KET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \ "error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE , ERROR_PACKET };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklas vh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertze n.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVW XYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the i ndex.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256) ;\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i ;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arra ybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.subst ring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.l ength, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64. length - 1] === '=') {\n bufferLength--;\n if (base64[base64.lengt h - 2] === '=') {\n bufferLength--;\n }\n }\n var arrayb uffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)] ;\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = look up[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3 )];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { deco de, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { P ACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"f unction\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.to String.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffe r = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not de fined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer in stanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if ( supportsBinary) {\n return callback(data);\n }\n else { \n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isVie w(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data] ), callback);\n }\n }\n // plain string\n return callback(PACKET _TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = functio n () {\n const content = fileReader.result.split(\",\")[1];\n call back(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\n export default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } f rom \"./commons.js\";\nimport { decode } from \"@socket.io/base64-arraybuffer\"; \nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst deco dePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \" string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encod edPacket.charAt(0);\n if (type === \"b\") {\n return {\n ty pe: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1 ), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[t ype];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return e ncodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[typ e],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packe t = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const dec oded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob ([data]) : data;\n case \"arraybuffer\":\n default:\n r eturn data; // assuming the data is already an ArrayBuffer\n }\n};\nexport de fault decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode( 30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to th e array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for b inary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n c onst encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\ n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPac ket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decoded Packet);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { e ncodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initializ e a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixi n(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototy pe[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn` .\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListene r = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._c allbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n r eturn this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a singl e\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on ce = function(event, fn){\n function on() {\n this.off(event, on);\n fn.a pply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return th is;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered c allbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Em itter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.remove Listener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEven tListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event ];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == argum ents.length) {\n delete this._callbacks['$' + event];\n return this;\n }\ n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.leng th; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak. \n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n } \n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @par am {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.p rototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks[ '$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0); \n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i ].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for rese rved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototy pe.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {Strin g} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._ callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` h andlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n * /\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listene rs(event).length;\n};\n","export default (() => {\n if (typeof self !== \"und efined\") {\n return self;\n }\n else if (typeof window !== \"undef ined\") {\n return window;\n }\n else {\n return Function(\" return this\")();\n }\n})();\n","import globalThis from \"./globalThis.js\";\ nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functio ns so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\n const NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunction s(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATI VE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIME OUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout. bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.o rg/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj ) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\ n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i );\n if (c < 0x80) {\n length += 1;\n }\n else i f (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd80 0 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n" ,"// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alph abet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split( ''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to co nvert.\n * @returns {String} The string representation of the number.\n * @api p ublic\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the int eger value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\ n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n f or (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str. charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id gen erator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport func tion yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n// \n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alph abet[i]] = i;\n","import { decodePacket } from \"engine.io-parser\";\nimport { E mitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(rea son, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportE rror\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Tra nsport abstract constructor.\n *\n * @param {Object} options.\n * @a pi private\n */\n constructor(opts) {\n super();\n this.wri table = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protecte d\n */\n onError(reason, description, context) {\n super.emitReser ved(\"error\", new TransportError(reason, description, context));\n retur n this;\n }\n /**\n * Opens the transport.\n *\n * @api public \n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this .doOpen();\n }\n return this;\n }\n /**\n * Closes the t ransport.\n *\n * @api public\n */\n close() {\n if (\"ope ning\" === this.readyState || \"open\" === this.readyState) {\n this. doClose();\n this.onClose();\n }\n return this;\n }\ n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\ n * @api public\n */\n send(packets) {\n if (\"open\" === this .readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the before unload event handler\n }\n }\n /**\n * Called upon open\n * \n * @api protected\n */\n onOpen() {\n this.readyState = \"op en\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePac ket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n / **\n * Called with a decoded packet.\n *\n * @api protected\n */ \n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n } \n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitR eserved(\"close\", details);\n }\n}\n","// imported from https://github.com/g alkn/querystring\n/**\n * Compiles a querystring\n * Returns string representati on of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasO wnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an obje ct\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pa irs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[ decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return q ry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = f alse;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'wit hCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp supp ort is disabled in IE then it will throw\n // when trying to create\n}\nexpor t const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport globalThis from \"../globalT his.js\";\nexport default function (opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\ " !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").jo in(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n ","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../co ntrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { e ncodePayload, decodePayload } from \"engine.io-parser\";\nimport XMLHttpRequest from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-em itter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport gl obalThis from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (func tion () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n }); \n return null != xhr.responseType;\n})();\nexport class Polling extends Tran sport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object } opts\n * @api public\n */\n constructor(opts) {\n super(opts );\n this.polling = false;\n if (typeof location !== \"undefined\" ) {\n const isSSL = \"https:\" === location.protocol;\n le t port = location.port;\n // some user agents have empty `location.po rt`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\ n }\n this.xd =\n (typeof location !== \"un defined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL; \n }\n /**\n * XHR supports binary\n */\n c onst forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasX HR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get n ame() {\n return \"polling\";\n }\n /**\n * Opens the socket (t riggers polling). We write a PING message to determine\n * when the transpor t is open.\n *\n * @api private\n */\n doOpen() {\n this.p oll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\ n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n on Pause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --tot al || pause();\n });\n }\n if (!this.writab le) {\n total++;\n this.once(\"drain\", function ( ) {\n --total || pause();\n });\n } \n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\ "poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packe t => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close pac ket, we close the ongoing requests\n if (\"close\" === packet.type) { \n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise byp ass onData and handle the message\n this.onPacket(packet);\n } ;\n // decode payload\n decodePayload(data, this.socket.binaryType ).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not pol ling\n this.polling = false;\n this.emitReserved(\"pollCom plete\");\n if (\"open\" === this.readyState) {\n this .poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're tr ying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a pac kets payload.\n *\n * @param {Array} data packets\n * @param {Functi on} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n th is.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n ur i() {\n let query = this.query || {};\n const schema = this.opts.s ecure ? \"https\" : \"http\";\n let port = \"\";\n // cache bustin g is forced\n if (false !== this.opts.timestampRequests) {\n q uery[this.opts.timestampParam] = yeast();\n }\n if (!this.supports Binary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"http s\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + thi s.opts.port;\n }\n const encodedQuery = encode(query);\n co nst ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api privat e\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doW rite(data, fn) {\n const req = this.request({\n method: \"POST \",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n cons t req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request construc tor\n *\n * @param {Object} options\n * @api public\n */\n co nstructor(uri, opts) {\n super();\n installTimerFunctions(this, op ts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n thi s.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \ "agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rej ectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpR equest(opts));\n try {\n xhr.open(this.method, this.uri, this. async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\") ;\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n } \n catch (e) { }\n // ie6 check\n if (\"withCre dentials\" in xhr) {\n xhr.withCredentials = this.opts.withCreden tials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onre adystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError( typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\ n }\n };\n xhr.send(this.data);\n }\ n catch (e) {\n // Need to defer since .create() is called dir ectly from the constructor\n // and thus the 'error' event can only b e only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requ estsCount++;\n Request.requests[this.index] = this;\n }\n } \n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n th is.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this. xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Reque st.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"succes s\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.clea nup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Ab orts pending requests when unloading the window. This is needed to prevent\n * m emory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emi tted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEv ent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener = == \"function\") {\n const terminationEvent = \"onpagehide\" in globalThi s ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloa dHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Reque st.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n R equest.requests[i].abort();\n }\n }\n}\n","import globalThis from \".. /globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailabl e = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\ n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb); \n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWeb Socket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryT ype = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimpor t { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib /yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\" ;\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative env ironment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeo f navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \ "reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n thi s.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket \";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\ n doOpen() {\n if (!this.check()) {\n // let probe timeout\ n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'hea ders' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\" , \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"c iphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origi n\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opt s.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n } \n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (e rr) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this .addEventListeners();\n }\n /**\n * Adds event listeners to the socket \n *\n * @api private\n */\n addEventListeners() {\n this. ws.onopen = () => {\n if (this.opts.autoUnref) {\n thi s.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \ "websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api privat e\n */\n write(packets) {\n this.writable = false;\n // enc odePacket efficient as it uses WS framing\n // no need for encodePayload\ n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // alway s create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has alrea dy been closed but the browser didn't\n // have a chance of infor ming us about it yet, in that case send will\n // throw an error\ n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Saf ari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n } \n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this. setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for con nection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\ n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port ) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // appen d timestamp to URI\n if (this.opts.timestampRequests) {\n quer y[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b6 4 = 1;\n }\n const encodedQuery = encode(query);\n const ip v6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.o pts.hostname) +\n port +\n this.opts.path +\n ( encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Fea ture detection for WebSocket.\n *\n * @return {Boolean} whether this tra nsport is available.\n * @api public\n */\n check() {\n return (!!WebSocket &&\n !(\"__initialize\" in WebSocket && this.name === W S.prototype.name));\n }\n}\n","import { Polling } from \"./polling.js\";\nimp ort { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/par seuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com > (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(htt p|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7} [a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?: [?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n ' source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port' , 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport functio n parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']'); \n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substri ng(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':') ;\n uri.authority = uri.authority.replace('[', '').replace(']', '').repla ce(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathName s(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n retur n uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.substr(0, 1) == '/' || p ath.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(pat h.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ( $1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","i mport { transports } from \"./transports/index.js\";\nimport { installTimerFunct ions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parse qs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } f rom \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-pars er\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor .\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n o pts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secur e = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.po rt = uri.port;\n if (uri.query)\n opts.query = uri.que ry;\n }\n else if (opts.host) {\n opts.hostname = parse (opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\ n : typeof location !== \"undefined\" && \"https:\" === location. protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.s ecure ? \"443\" : \"80\";\n }\n this.hostname =\n opts. hostname ||\n (typeof location !== \"undefined\" ? location.hostn ame : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"4 43\"\n : \"80\");\n this.transports = opts.transpo rts || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n t his.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Obje ct.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestam pParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthori zed: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunloa d: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/ $/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on h andshake\n this.id = null;\n this.upgrades = null;\n this.p ingInterval = null;\n this.pingTimeout = null;\n // set on heartbe at\n this.pingTimeoutTimer = null;\n if (typeof addEventListener = == \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitte d but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page i s\n // closed/reloaded)\n addEventListener(\"befor eunload\", () => {\n if (this.transport) {\n // silently close the transport\n this.transport.r emoveAllListeners();\n this.transport.close();\n }\n }, false);\n }\n if (this.ho stname !== \"localhost\") {\n this.offlineEventListener = () => { \n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListene r, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transpor t name\n * @return {Transport}\n * @api private\n */\n createTran sport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if w e already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hos tname,\n secure: this.secure,\n port: this.port\n } );\n return new transports[name](opts);\n }\n /**\n * Initializ es transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\" websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next t ick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = thi s.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open( );\n return;\n }\n transport.open();\n this.setT ransport(transport);\n }\n /**\n * Sets the current transport. Disable s the existing one (if any).\n *\n * @api private\n */\n setTrans port(transport) {\n if (this.transport) {\n this.transport.rem oveAllListeners();\n }\n // set up transport\n this.transpo rt = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this .onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transpo rt name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.prior WebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping \", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\ " === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === th is.readyState)\n return;\n cle anup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.e mitReserved(\"upgrade\", transport);\n transport = null;\ n this.upgrading = false;\n this.f lush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // H andle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts- ignore\n error.transport = transport.name;\n freezeTranspo rt();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n func tion onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transpo rt.removeListener(\"open\", onTransportOpen);\n transport.removeListe ner(\"error\", onerror);\n transport.removeListener(\"close\", onTran sportClose);\n this.off(\"close\", onclose);\n this.off(\" upgrading\", onupgrade);\n };\n transport.once(\"open\", onTranspo rtOpen);\n transport.once(\"error\", onerror);\n transport.once(\" close\", onTransportClose);\n this.once(\"close\", onclose);\n thi s.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n * /\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebs ocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved (\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.trans port.pause) {\n let i = 0;\n const l = this.upgrades.lengt h;\n for (; i < l; i++) {\n this.probe(this.upgrades[i ]);\n }\n }\n }\n /**\n * Handles a packet.\n *\ n * @api private\n */\n onPacket(packet) {\n if (\"opening\" = == this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", pa cket);\n // Socket is live - any packet counts\n this.emit Reserved(\"heartbeat\");\n switch (packet.type) {\n ca se \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n th is.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved( \"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @t s-ignore\n err.code = packet.data;\n this. onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called up on handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved( \"handshake\", data);\n this.id = data.sid;\n this.transport.query .sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.p ingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\ n // In case open handler closes socket\n if (\"closed\" === this. readyState)\n return;\n this.resetPingTimeout();\n }\n / **\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutF n(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingT imeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\ n *\n * @api private\n */\n onDrain() {\n this.writeBuffer .splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very im portant\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n t his.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flu sh();\n }\n }\n /**\n * Flush write buffers.\n *\n * @a pi private\n */\n flush() {\n if (\"closed\" !== this.readyState & &\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritableP ackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callback Buffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the enc oded size of the writeBuffer is below the maxPayload value sent by the server (o nly for HTTP\n * long-polling)\n *\n * @private\n */\n getWri tablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.le ngth > 1;\n if (!shouldCheckPayloadSize) {\n return this.write Buffer;\n }\n let payloadSize = 1; // first packet type\n f or (let i = 0; i < this.writeBuffer.length; i++) {\n const data = thi s.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.ma xPayload) {\n return this.writeBuffer.slice(0, i);\n } \n payloadSize += 2; // separator + packet type\n }\n r eturn this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @ param {Object} options.\n * @return {Socket} for chaining.\n * @api publ ic\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet typ e.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(typ e, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.re adyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\ n type: type,\n data: data,\n options: options\ n };\n this.emitReserved(\"packetCreate\", packet);\n this. writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn) ;\n this.flush();\n }\n /**\n * Closes the connection.\n *\ n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrad e\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose); \n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n t his.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\ " === this.readyState || \"open\" === this.readyState) {\n this.ready State = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n wa itForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * C alled upon transport close.\n *\n * @api private\n */\n onClose(r eason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeou tTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore furt her transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n r emoveEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buf fers on `close` event\n this.writeBuffer = [];\n this.prev BufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning on ly those matching client transports.\n *\n * @param {Array} server upgra des\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades. length;\n for (; i < j; i++) {\n if (~this.transports.indexOf( upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (o bj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? Array Buffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toSt ring = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"func tion\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) == = \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"funct ion\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an Arr ayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView( obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNati veFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n i f (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\ n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n r eturn true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"funct ion\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON (), true);\n }\n for (const key in obj) {\n if (Object.prototype.ha sOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\ n }\n }\n return false;\n}\n","import { isBinary } from \"./is-bina ry.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet wi th a numbered placeholder.\n *\n * @param {Object} packet - socket.io event pack et\n * @return {Object} with deconstructed packet and list of buffers\n * @publi c\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _de constructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\ n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: t rue, num: buffers.length };\n buffers.push(data);\n return placeho lder;\n }\n else if (Array.isArray(data)) {\n const newData = new A rray(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return n ewData;\n }\n else if (typeof data === \"object\" && !(data instanceof Dat e)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newDa ta[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to pu t in placeholder positions\n * @return {Object} reconstructed packet\n * @public \n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _ reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buff ers) {\n if (!data)\n return data;\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural o rder anyway)\n }\n else if (Array.isArray(data)) {\n for (let i = 0 ; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buf fers);\n }\n }\n else if (typeof data === \"object\") {\n fo r (const key in data) {\n if (Object.prototype.hasOwnProperty.call(da ta, key)) {\n data[key] = _reconstructPacket(data[key], buffers); \n }\n }\n }\n return data;\n}\n","import { Emitter } fr om \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPac ket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.j s\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5; \nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\" CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n Pa cketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNEC T_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\" ] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"B INARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.par se\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === Packe tType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) { \n obj.type =\n obj.type === PacketType.EVENT\ n ? PacketType.BINARY_EVENT\n : Pa cketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // fi rst is type\n let str = \"\" + obj.type;\n // attachments if we ha ve them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.ty pe === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringi fy(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstru cting packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket( obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder c onstructor\n *\n * @param {function} reviver - custom reviver to pass do wn to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet s tring into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\ ") {\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINAR Y_ACK) {\n // binary packet's json\n this.reconstr uctor = new BinaryReconstructor(packet);\n // no attachments, lab eled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary ful l packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // ra w binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj );\n if (packet) {\n // received final buffer\ n this.reconstructor = null;\n super.emitR eserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n ty pe: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undef ined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === Packe tType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != s tr.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Er ror(\"Illegal attachments\");\n }\n p.attachments = Number (buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number (next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Numbe r(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const pay load = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.t ype, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT: \n return payload === undefined;\n case PacketType.CON NECT_ERROR:\n return typeof payload === \"string\" || typeof payl oad === \"object\";\n case PacketType.EVENT:\n case Packet Type.BINARY_EVENT:\n return Array.isArray(payload) && payload.len gth > 0;\n case PacketType.ACK:\n case PacketType.BINARY_A CK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (t his.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Sh ould\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reco nstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = pack et;\n }\n /**\n * Method to be called when binary data received from c onnection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Obje ct} returns null if more binary data is expected or\n * a reconstructed pa cket object if all buffers have been received.\n */\n takeBinaryData(binD ata) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n t his.finishedReconstruction();\n return packet;\n }\n re turn null;\n }\n /**\n * Cleans up binary packet reconstruction variab les.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n o bj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst R ESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n di sconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https: //nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n *\n * @public\n */\n constructor(io, nsp, opts) {\n super();\n this.connected = false;\n this.receiv eBuffer = [];\n this.sendBuffer = [];\n this.ids = 0;\n thi s.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n */\n get disc onnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvent s() {\n if (this.subs)\n return;\n const io = this.io;\ n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"e rror\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bi nd(this)),\n ];\n }\n /**\n * Whether the Socket will try to re connect when its Manager connects or reconnects\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\ n * @public\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnectin g\"])\n this.io.open(); // ensure open\n if (\"open\" === this .io._readyState)\n this.onopen();\n return this;\n }\n / **\n * Alias for connect()\n */\n open() {\n return this.conne ct();\n }\n /**\n * Sends a `message` event.\n *\n * @return s elf\n * @public\n */\n send(...args) {\n args.unshift(\"messag e\");\n this.emit.apply(this, args);\n return this;\n }\n /* *\n * Override `emit`.\n * If the event is in `events`, it's emitted nor mally.\n *\n * @return self\n * @public\n */\n emit(ev, ...ar gs) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev + '\" is a reserved event name');\n }\n args.unshi ft(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.option s.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAck Callback(id, ack);\n packet.id = id;\n }\n const isTran sportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.f lags.volatile && (!isTransportWritable || !this.connected);\n if (discard Packet) {\n }\n else if (this.connected) {\n this.notif yOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.fla gs = {};\n return this;\n }\n /**\n * @private\n */\n _r egisterAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTime outFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\ n }, timeout);\n this.acks[id] = (...args) => {\n // @t s-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this , [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\ n * @param packet\n * @private\n */\n packet(packet) {\n p acket.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => { \n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNE CT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n oner ror(err) {\n if (!this.connected) {\n this.emitReserved(\"conn ect_error\", err);\n }\n }\n /**\n * Called upon engine `close` .\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, descriptio n);\n }\n /**\n * Called with socket packet.\n *\n * @param pa cket\n * @private\n */\n onpacket(packet) {\n const sameNamesp ace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return; \n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = pa cket.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/d ocs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n brea k;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT :\n this.onevent(packet);\n break;\n ca se PacketType.ACK:\n case PacketType.BINARY_ACK:\n thi s.onack(packet);\n break;\n case PacketType.DISCONNECT :\n this.ondisconnect();\n break;\n cas e PacketType.CONNECT_ERROR:\n this.destroy();\n co nst err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"conn ect_error\", err);\n break;\n }\n }\n /**\n * Ca lled upon a server event.\n *\n * @param packet\n * @private\n * /\n onevent(packet) {\n const args = packet.data || [];\n if (n ull != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListene rs.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, a rgs);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @ private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callb acks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[pac ket.id];\n if (\"function\" === typeof ack) {\n ack.apply(this , packet.data);\n delete this.acks[packet.id];\n }\n el se {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this. connected = true;\n this.emitBuffered();\n this.emitReserved(\"con nect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffe r.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingList eners(packet);\n this.packet(packet);\n });\n this.send Buffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n th is.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stop s tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEac h((subDestroy) => subDestroy());\n this.subs = undefined;\n }\ n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the so cket manually.\n *\n * @return self\n * @public\n */\n discon nect() {\n if (this.connected) {\n this.packet({ type: PacketT ype.DISCONNECT });\n }\n // remove socket from pool\n this. destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for disconnect()\n *\n * @return self\n * @public\n */\n close() {\n return this.disconnect();\n }\n / **\n * Sets the compress flag.\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n * @public\n */\n c ompress(compress) {\n this.flags.compress = compress;\n return thi s;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @returns self\n * @public\n */\n get volati le() {\n this.flags.volatile = true;\n return this;\n }\n /* *\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elap sed without an acknowledgement from the server:\n *\n * ```\n * sock et.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n * ```\n *\n * @returns self\n * @public\n */\n t imeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emit ted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n * @public\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners .push(listener);\n return this;\n }\n /**\n * Adds a listener t hat will be fired when any event is emitted. The event name is passed as the fir st argument to the\n * callback. The listener is added to the beginning of t he listeners array.\n *\n * @param listener\n * @public\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || []; \n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted. \n *\n * @param listener\n * @public\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener = == listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event tha t is specified. This array can be manipulated,\n * e.g. to remove listeners. \n *\n * @public\n */\n listenersAny() {\n return this._an yListeners || [];\n }\n /**\n * Adds a listener that will be fired whe n any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n *\n * <pre><code>\n *\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(eve nt);\n * });\n *\n * </pre></code>\n *\n * @public\n */\ n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOu tgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @param listener\n *\n * <pre><code>\n *\n * socket .prependAnyOutgoing((event, ...args) => {\n * console.log(event);\n * });\n *\n * </pre></code>\n *\n * @public\n */\n prependA nyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingLi steners || [];\n this._anyOutgoingListeners.unshift(listener);\n r eturn this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @param listener\n *\n * <pre><cod e>\n *\n * const handler = (event, ...args) => {\n * console.log(e vent);\n * }\n *\n * socket.onAnyOutgoing(handler);\n *\n * // then later\n * socket.offAnyOutgoing(handler);\n *\n * </pre></co de>\n *\n * @public\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n i f (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listene r === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this; \n }\n /**\n * Returns an array of listeners that are listening for an y event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n *\n * @public\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @pr ivate\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutg oingListeners && this._anyOutgoingListeners.length) {\n const listene rs = this._anyOutgoingListeners.slice();\n for (const listener of lis teners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `m in` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n * /\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.m in || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {N umber}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\ n var rand = Math.random();\n var deviation = Math.floor(rand * th is.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * R eset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n * \n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.p rototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jit ter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\ n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFuncti ons, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimpo rt * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimpo rt { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket .io/component-emitter\";\nexport class Manager extends Emitter {\n constructo r(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || { };\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\ n installTimerFunctions(this, opts);\n this.reconnection(opts.reco nnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempt s || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000); \n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== voi d 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.re connectionDelay(),\n max: this.reconnectionDelayMax(),\n j itter: this.randomizationFactor(),\n });\n this.timeout(null == op ts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n th is.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder( );\n this._autoConnect = opts.autoConnect !== false;\n if (this._a utoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._recon nection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnection Delay(v) {\n var _a;\n if (v === undefined)\n return th is._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this .backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return thi s;\n }\n randomizationFactor(v) {\n var _a;\n if (v === unde fined)\n return this._randomizationFactor;\n this._randomizati onFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnecti onDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff ) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._ti meout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * s tarted reconnecting yet\n *\n * @private\n */\n maybeReconnectOnO pen() {\n // Only try to reconnect if it's the first time we're connectin g\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from fir ing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._read yState = \"opening\";\n this.skipReconnect = false;\n // emit `ope n`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error` \n const errorSub = on(socket, \"error\", (err) => {\n self.cl eanup();\n self._readyState = \"closed\";\n this.emitReser ved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to h andle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = t his._timeout;\n if (timeout === 0) {\n openSubDestroy( ); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts- ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer .unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.sub s.push(openSubDestroy);\n this.subs.push(errorSub);\n return this; \n }\n /**\n * Alias for open()\n *\n * @return self\n * @ public\n */\n connect(fn) {\n return this.open(fn);\n }\n /* *\n * Called upon transport open.\n *\n * @private\n */\n ono pen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\"); \n // add new subs\n const socket = this.engine;\n this.sub s.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.o ndata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \" close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded. bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @priva te\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /* *\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n this.decoder.add(data);\n }\n /**\n * Called when parser fu lly decodes a packet.\n *\n * @private\n */\n ondecoded(packet) { \n this.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socke t for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */ \n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!so cket) {\n socket = new Socket(this, nsp, opts);\n this.nsp s[nsp] = socket;\n }\n return socket;\n }\n /**\n * Call ed upon a socket close.\n *\n * @param socket\n * @private\n */\ n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n f or (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @para m packet\n * @private\n */\n _packet(packet) {\n const encoded Packets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPacke ts.length; i++) {\n this.engine.write(encodedPackets[i], packet.optio ns);\n }\n }\n /**\n * Clean up transport subscriptions and pac ket buffer.\n *\n * @private\n */\n cleanup() {\n this.sub s.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true; \n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this. cleanup();\n this.backoff.reset();\n this._readyState = \"closed\" ;\n this.emitReserved(\"close\", reason, description);\n if (this. _reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.at tempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.dur ation();\n this._reconnecting = true;\n const timer = this .setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backo ff.attempts);\n // check again for the case socket closed in abov e events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnec t();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onre connect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clear Timeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false ;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attem pt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \" ./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache .\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n cons t source = parsed.source;\n const id = parsed.id;\n const path = parsed.pa th;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n co nst newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\ n false === opts.multiplex ||\n sameNamespace;\n let io;\n i f (newConnection) {\n io = new Manager(source, opts);\n }\n else {\ n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.pat h, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(... )`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\ nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connec t: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protoc ol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone buil d.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as conne ct, lookup as default, };\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of th e connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + ur i;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https ://\" + uri;\n }\n }\n // parse\n obj = parse(ur i);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protoco l)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.pat h || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\ n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n r eturn obj;\n}\n"],"names":["PACKET_TYPES","Object","create","PACKET_TYPES_REVERS E","keys","forEach","key","ERROR_PACKET","type","data","withNativeBlob","Blob"," prototype","toString","call","withNativeArrayBuffer","ArrayBuffer","encodePacket ","supportsBinary","callback","obj","encodeBlobAsBase64","isView","buffer","file Reader","FileReader","onload","content","result","split","readAsDataURL","chars" ,"lookup","Uint8Array","i","length","charCodeAt","decodePacket","encodedPacket", "binaryType","mapBinary","charAt","decodeBase64Packet","substring","decoded","ba se64","encoded1","encoded2","encoded3","encoded4","bufferLength","len","p","arra ybuffer","bytes","decode","SEPARATOR","String","fromCharCode","Emitter","mixin", "on","addEventListener","event","fn","_callbacks","this","push","once","off","ap ply","arguments","removeListener","removeAllListeners","removeEventListener","cb ","callbacks","splice","emit","args","Array","slice","emitReserved","listeners", "hasListeners","self","window","Function","pick","attr","reduce","acc","k","hasO wnProperty","NATIVE_SET_TIMEOUT","setTimeout","NATIVE_CLEAR_TIMEOUT","clearTimeo ut","installTimerFunctions","opts","useNativeTimers","setTimeoutFn","bind","glob alThis","clearTimeoutFn","prev","TransportError","reason","description","context ","Error","Transport","writable","query","readyState","socket","doOpen","doClose ","onClose","packets","write","packet","onPacket","details","alphabet","map","se ed","encode","num","encoded","Math","floor","yeast","now","Date","str","encodeUR IComponent","qs","qry","pairs","l","pair","decodeURIComponent","value","XMLHttpR equest","err","hasCORS","xdomain","e","concat","join","empty","hasXHR2","respons eType","Polling","polling","location","isSSL","protocol","port","xd","hostname", "xs","secure","forceBase64","poll","onPause","pause","_this2","total","doPoll"," encodedPayload","encodedPackets","decodedPacket","decodePayload","_this3","onOpe n","close","_this4","count","encodePayload","_this5","doWrite","schema","timesta mpRequests","timestampParam","sid","b64","Number","encodedQuery","indexOf","path ","Request","uri","req","request","method","xhrStatus","_this6","onError","onDat a","_this7","pollXhr","async","undefined","xscheme","xhr","open","extraHeaders", "setDisableHeaderCheck","setRequestHeader","withCredentials","requestTimeout","t imeout","onreadystatechange","status","_this9","onLoad","send","document","index ","requestsCount","requests","cleanup","fromError","abort","responseText","attac hEvent","unloadHandler","nextTick","Promise","resolve","then","WebSocket","MozWe bSocket","isReactNative","navigator","product","toLowerCase","WS","check","proto cols","headers","ws","addEventListeners","onopen","autoUnref","_socket","unref", "onclose","closeEvent","onmessage","ev","onerror","lastPacket","name","transport s","websocket","re","parts","parse","src","b","replace","m","exec","source","hos t","authority","ipv6uri","pathNames","regx","names","substr","queryKey","$0","$1 ","$2","Socket","_this","writeBuffer","prevBufferLen","_extends","agent","upgrad e","rememberUpgrade","rejectUnauthorized","perMessageDeflate","threshold","trans portOptions","closeOnBeforeunload","id","upgrades","pingInterval","pingTimeout", "pingTimeoutTimer","transport","offlineEventListener","EIO","priorWebsocketSucce ss","createTransport","shift","setTransport","onDrain","failed","onTransportOpen ","msg","upgrading","flush","freezeTransport","error","onTransportClose","onupgr ade","to","probe","onHandshake","JSON","resetPingTimeout","sendPacket","code","f ilterUpgrades","maxPayload","getWritablePackets","payloadSize","c","utf8Length", "ceil","byteLength","size","options","compress","cleanupAndClose","waitForUpgrad e","filteredUpgrades","j","withNativeFile","File","isBinary","hasBinary","toJSON ","_typeof","isArray","deconstructPacket","buffers","packetData","pack","_decons tructPacket","attachments","placeholder","_placeholder","newData","reconstructPa cket","_reconstructPacket","PacketType","Encoder","replacer","EVENT","ACK","enco deAsString","BINARY_EVENT","BINARY_ACK","encodeAsBinary","nsp","stringify","deco nstruction","unshift","Decoder","reviver","decodeString","reconstructor","Binary Reconstructor","takeBinaryData","start","buf","next","payload","tryParse","isPay loadValid","finishedReconstruction","CONNECT","DISCONNECT","CONNECT_ERROR","reco nPack","binData","RESERVED_EVENTS","freeze","connect","connect_error","disconnec t","disconnecting","newListener","io","connected","receiveBuffer","sendBuffer"," ids","acks","flags","auth","_autoConnect","subs","onpacket","subEvents","_readyS tate","ack","pop","_registerAckCallback","isTransportWritable","engine","discard Packet","notifyOutgoingListeners","timer","_packet","onconnect","onevent","onack ","ondisconnect","destroy","message","emitEvent","_anyListeners","sent","emitBuf fered","subDestroy","listener","_anyOutgoingListeners","Backoff","ms","min","max ","factor","jitter","attempts","duration","pow","rand","random","deviation","res et","setMin","setMax","setJitter","Manager","_a","nsps","reconnection","reconnec tionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizati onFactor","backoff","_parser","parser","encoder","decoder","autoConnect","v","_r econnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor" ,"_reconnectionDelayMax","_timeout","_reconnecting","reconnect","Engine","skipRe connect","openSubDestroy","errorSub","maybeReconnectOnOpen","onping","ondata","o ndecoded","add","active","_close","delay","onreconnect","attempt","cache","parse d","loc","test","href","url","sameNamespace","forceNew","multiplex"],"mappings": "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 ,QAASlW"} {"version":3,"file":"socket.io.min.js","sources":["../node_modules/engine.io-par ser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/contrib/ba se64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/encodePacket.br owser.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js"," ../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io /component-emitter/index.mjs","../node_modules/engine.io-client/build/esm/global This.browser.js","../node_modules/engine.io-client/build/esm/util.js","../node_m odules/engine.io-client/build/esm/contrib/yeast.js","../node_modules/engine.io-c lient/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contri b/parseqs.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js"," ../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js" ,"../node_modules/engine.io-client/build/esm/transports/polling.js","../node_mod ules/engine.io-client/build/esm/transports/websocket-constructor.browser.js",".. /node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modul es/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-cl ient/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/ socket.js","../node_modules/engine.io-client/build/esm/index.js","../node_module s/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/bui ld/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../buil d/esm/on.js","../build/esm/socket.js","../build/esm/contrib/backo2.js","../build /esm/manager.js","../build/esm/index.js","../build/esm/url.js"],"sourcesContent" :["const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYP ES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nP ACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET _TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYP ES_REVERSE, ERROR_PACKET };\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg hijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\ncon st lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor ( let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nex port const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuff er), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) < < 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring( 0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decod e = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.len gth, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.le ngth - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arrayb uffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)] ;\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = look up[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3 )];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { PAC KET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"fun ction\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toSt ring.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defi ned in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \ "function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer inst anceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, c allback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (su pportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n el se if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView( data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_T YPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) = > {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callba ck(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nex port default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } fro m \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\"; \nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst deco dePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \" string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encod edPacket.charAt(0);\n if (type === \"b\") {\n return {\n ty pe: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1 ), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[t ype];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return e ncodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[typ e],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packe t = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const dec oded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob ([data]) : data;\n case \"arraybuffer\":\n default:\n r eturn data; // assuming the data is already an ArrayBuffer\n }\n};\nexport de fault decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode( 30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to th e array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for b inary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n c onst encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\ n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPac ket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decoded Packet);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { e ncodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initializ e a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixi n(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototy pe[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn` .\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListene r = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._c allbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n r eturn this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a singl e\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on ce = function(event, fn){\n function on() {\n this.off(event, on);\n fn.a pply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return th is;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered c allbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Em itter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.remove Listener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEven tListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event ];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == argum ents.length) {\n delete this._callbacks['$' + event];\n return this;\n }\ n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.leng th; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak. \n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n } \n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @par am {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.p rototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks[ '$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0); \n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i ].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for rese rved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototy pe.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {Strin g} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._ callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` h andlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n * /\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listene rs(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof win dow !== \"undefined\") {\n return window;\n }\n else {\n ret urn Function(\"return this\")();\n }\n})();\n","import { globalThisShim as gl obalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\ncon st NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\ nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimer s) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n o bj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeout Fn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are abo ut 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1. 33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported i n IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return M ath.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Lengt h(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n le ngth += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/unshi ftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXY Zabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string rep resentation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + enco ded;\n num = Math.floor(num / length);\n } while (num > 0);\n retur n encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The inte ger value represented by the string.\n * @api public\n */\nexport function decod e(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\ n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n retu rn now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\n for (; i < length; i++)\n map[alphabet[i]] = i;\n","import { decodePacket } f rom \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitte r\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super (reason);\n this.description = description;\n this.context = conte xt;\n this.type = \"TransportError\";\n }\n}\nexport class Transport e xtends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctio ns(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /* *\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transpor t} for chaining\n * @api protected\n */\n onError(reason, description , context) {\n super.emitReserved(\"error\", new TransportError(reason, d escription, context));\n return this;\n }\n /**\n * Opens the t ransport.\n *\n * @api public\n */\n open() {\n if (\"clos ed\" === this.readyState || \"\" === this.readyState) {\n this.readyS tate = \"opening\";\n this.doOpen();\n }\n return this; \n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(pack ets) {\n if (\"open\" === this.readyState) {\n this.write(pack ets);\n }\n else {\n // this might happen if the transp ort was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpe n() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data ) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emi tReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readySta te = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n"," // imported from https://github.com/galkn/querystring\n/**\n * Compiles a querys tring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for ( let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.lengt h)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Par ses a simple querystring into an object\n *\n * @param {String} qs\n * @api priv ate\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.sp lit('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURICom ponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github. com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpReq uest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\n catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shi m for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\"; \nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport fun ction XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpReques t && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n re turn new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XML HTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } fr om \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayloa d } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhtt prequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimpor t { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling exten ds Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n sup er(opts);\n this.polling = false;\n if (typeof location !== \"unde fined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `loca tion.port`\n if (!port) {\n port = isSSL ? \"443\" : \ "80\";\n }\n this.xd =\n (typeof location ! == \"undefined\" &&\n opts.hostname !== location.hostname) || \n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the so cket (triggers polling). We write a PING message to determine\n * when the t ransport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Fu nction} callback upon buffers are flushed and transport is paused\n * @api p rivate\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++ ;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this .writable) {\n total++;\n this.once(\"drain\", fun ction () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll () {\n this.polling = true;\n this.doPoll();\n this.emitRes erved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open \") {\n this.onOpen();\n }\n // if its a cl ose packet, we close the ongoing requests\n if (\"close\" === packet. type) {\n this.onClose({ description: \"transport closed by the s erver\" });\n return false;\n }\n // otherw ise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.bin aryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\" pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api priv ate\n */\n doClose() {\n const close = () => {\n this.w rite([{ type: \"close\" }]);\n };\n if (\"open\" === this.readySta te) {\n close();\n }\n else {\n // in case w e're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Write s a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\ n uri() {\n let query = this.query || {};\n const schema = this .opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.s upportsBinary && !query.sid) {\n query.b64 = 1;\n }\n / / avoid port if default for schema\n if (this.opts.port &&\n ( (\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\" http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\ " + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (sch ema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \ "]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /* *\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: t his.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts) ;\n }\n /**\n * Sends data.\n *\n * @param {String} data to se nd.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn) ;\n req.on(\"error\", (xhrStatus, context) => {\n this.onError (\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * S tarts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this)) ;\n req.on(\"error\", (xhrStatus, context) => {\n this.onError (\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = r eq;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request c onstructor\n *\n * @param {Object} options\n * @api public\n */\ n constructor(uri, opts) {\n super();\n installTimerFunctions(t his, opts);\n this.opts = opts;\n this.method = opts.method || \"G ET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create ();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this. opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\" , \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd ;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new X MLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri , this.async);\n try {\n if (this.opts.extraHeaders) { \n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(tru e);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catc h (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=U TF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\" withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.wit hCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n x hr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr. status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user -set\n // does not throw in the same tick and gets caught her e\n this.setTimeoutFn(() => {\n this.o nError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is cal led directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, a lso, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Reque st.requestsCount++;\n Request.requests[this.index] = this;\n } \n }\n /**\n * Called upon error.\n *\n * @api private\n * /\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n tr y {\n this.xhr.abort();\n }\n catch (e) { } \n }\n if (typeof document !== \"undefined\") {\n delet e Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad () {\n const data = this.xhr.responseText;\n if (data !== null) {\ n this.emitReserved(\"data\", data);\n this.emitReserved(\ "success\");\n this.cleanup();\n }\n }\n /**\n * Abo rts the request.\n *\n * @api public\n */\n abort() {\n th is.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/** \n * Aborts pending requests when unloading the window. This is needed to preven t\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\ n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n a ttachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventLis tener === \"function\") {\n const terminationEvent = \"onpagehide\" in gl obalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent , unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i i n Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisS him as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => { \n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promi se.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb = > Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeout Fn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.W ebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true; \nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } fro m \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimpor t { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\ nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \ "./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\ ";\n// detect ReactNative environment\nconst isReactNative = typeof navigator != = \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigato r.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object } connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n / **\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passph rase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdent ity\");\n if (this.opts.extraHeaders) {\n opts.headers = this. opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts); \n }\n catch (err) {\n return this.emitReserved(\"error \", err);\n }\n this.ws.binaryType = this.socket.binaryType || def aultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEven tListeners() {\n this.ws.onopen = () => {\n if (this.opts.auto Unref) {\n this.ws._socket.unref();\n }\n t his.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose( {\n description: \"websocket connection closed\",\n contex t: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.dat a);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n } \n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writ able = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) { \n const packet = packets[i];\n const lastPacket = i === p ackets.length - 1;\n encodePacket(packet, this.supportsBinary, data = > {\n // always create a new object (GH-437)\n con st opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options. compress;\n }\n if (this.opts.perMessageDe flate) {\n const len = \n // @ts-i gnore\n \"string\" === typeof data ? Buffer.byteLength(da ta) : data.length;\n if (len < this.opts.perMessageDeflat e.threshold) {\n opts.compress = false;\n }\n }\n }\n // Some times the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usi ngBrowserWebSocket) {\n // TypeError is thrown when passi ng the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.w s.send(data, opts);\n }\n }\n c atch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket t o clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\ n }, this.setTimeoutFn);\n }\n });\ n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\ n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opt s.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === sc hema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema & & Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port; \n }\n // append timestamp to URI\n if (this.opts.timestamp Requests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBi nary) {\n query.b64 = 1;\n }\n const encodedQuery = enc ode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.o pts.hostname + \"]\" : this.opts.hostname) +\n port +\n th is.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\")) ;\n }\n /**\n * Feature detection for WebSocket.\n *\n * @retu rn {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transpo rts = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https ://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levit han <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(? ![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?( (?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^ ?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\ nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'pa ssword', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anch or'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('[') , e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substr ing(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length );\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\ n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '') .replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n u ri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, ur i['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const reg x = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.s ubstr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.le ngth - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimp ort { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\" ;\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n construc tor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeo f uri) {\n opts = uri;\n uri = null;\n }\n i f (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\ n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\ ";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctio ns(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \ "https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostna me =\n opts.hostname ||\n (typeof location !== \"undef ined\" ? location.hostname : \"localhost\");\n this.port =\n o pts.port ||\n (typeof location !== \"undefined\" && location.port \n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.tr ansports = opts.transports || [\"polling\", \"websocket\"];\n this.readyS tate = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true ,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this .opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query == = \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (ty peof addEventListener === \"function\") {\n if (this.opts.closeOnBefo reunload) {\n // Firefox closes the connection when the \"beforeu nload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.I O level when the page is\n // closed/reloaded)\n a ddEventListener(\"beforeunload\", () => {\n if (this.transpor t) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transp ort.close();\n }\n }, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offline EventListener = () => {\n this.onClose(\"transport close\", { \n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", t his.offlineEventListener, false);\n }\n }\n this.open() ;\n }\n /**\n * Creates transport of the given type.\n *\n * @ param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, th is.opts.query);\n // append engine.io protocol identifier\n query. EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n que ry.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOpt ions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n por t: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @ap i private\n */\n open() {\n let transport;\n if (this.opts. rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n thi s.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websock et\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeout Fn(() => {\n this.emitReserved(\"error\", \"No transports availab le\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \" opening\";\n // Retry with the next transport if the transport is disable d (jsonp: false)\n try {\n transport = this.createTransport(tr ansport);\n }\n catch (e) {\n this.transports.shift();\ n this.open();\n return;\n }\n transport.ope n();\n this.setTransport(transport);\n }\n /**\n * Sets the cur rent transport. Disables the existing one (if any).\n *\n * @api private \n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transpor t\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.on Error.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\ n let transport = this.createTransport(name);\n let failed = false ;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transpo rt.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"pa cket\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgradin g\", transport);\n if (!transport)\n r eturn;\n Socket.priorWebsocketSuccess = \"websocket\" === tra nsport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transp ort);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\ n // @ts-ignore\n err.transport = transpor t.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback call ed by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err );\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", er ror);\n };\n function onTransportClose() {\n onerror(\" transport closed\");\n }\n // When the socket is closed while we'r e probing\n function onclose() {\n onerror(\"socket closed\"); \n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.na me) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeLis tener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.o nce(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open ();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check f or `readyState` in case an `open`\n // listener already closed the socket \n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\ n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n thi s.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Han dles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.read yState ||\n \"closing\" === this.readyState) {\n this.emit Reserved(\"packet\", packet);\n // Socket is live - any packet counts \n this.emitReserved(\"heartbeat\");\n switch (packet.type ) {\n case \"open\":\n this.onHandshake(JSON.p arse(packet.data));\n break;\n case \"ping\":\ n this.resetPingTimeout();\n this.sendPack et(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n c ase \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data );\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgr ades(data.upgrades);\n this.pingInterval = data.pingInterval;\n th is.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n i f (\"closed\" === this.readyState)\n return;\n this.resetPingT imeout();\n }\n /**\n * Sets and resets ping timeout timer based on se rver pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\ n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * C alled on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevB ufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problem s on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffe r.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buff ers.\n *\n * @api private\n */\n flush() {\n if (\"closed\ " !== this.readyState &&\n this.transport.writable &&\n !t his.upgrading &&\n this.writeBuffer.length) {\n const pack ets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice w riteBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packe ts.length;\n this.emitReserved(\"flush\");\n }\n }\n /** \n * Ensure the encoded size of the writeBuffer is below the maxPayload valu e sent by the server (only for HTTP\n * long-polling)\n *\n * @priva te\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 & & payloadSize > this.maxPayload) {\n return this.writeBuffer.slic e(0, i);\n }\n payloadSize += 2; // separator + packet typ e\n }\n return this.writeBuffer;\n }\n /**\n * Sends a m essage.\n *\n * @param {String} message.\n * @param {Function} callb ack function.\n * @param {Object} options.\n * @return {Socket} for chai ning.\n * @api public\n */\n write(msg, options, fn) {\n this. sendPacket(\"message\", msg, options, fn);\n return this;\n }\n sen d(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @pa ram {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typ eof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n opti ons = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n t his.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes t he connection.\n *\n * @api public\n */\n close() {\n cons t close = () => {\n this.onClose(\"forced close\");\n this .transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeErr or\", cleanupAndClose);\n close();\n };\n const waitFor Upgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAn dClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\ n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\ n this.readyState = \"closing\";\n if (this.writeBuffer.le ngth) {\n this.once(\"drain\", () => {\n if (t his.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading ) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.e mitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\ n */\n onClose(reason, description) {\n if (\"opening\" === this.r eadyState ||\n \"open\" === this.readyState ||\n \"closing \" === this.readyState) {\n // clear timers\n this.clearTi meoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.r emoveAllListeners();\n if (typeof removeEventListener === \"function\ ") {\n removeEventListener(\"offline\", this.offlineEventListener , false);\n }\n // set ready state\n this.ready State = \"closed\";\n // clear session id\n this.id = null ;\n // emit close event\n this.emitReserved(\"close\", rea son, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = []; \n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @par am {Array} server upgrades\n * @api private\n *\n */\n filterUpgr ades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~t his.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgr ades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protoco l = protocol;\n","import { Socket } from \"./socket.js\";\nexport { Socket };\ne xport const protocol = Socket.protocol;\nexport { Transport } from \"./transport .js\";\nexport { transports } from \"./transports/index.js\";\nexport { installT imerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri. js\";\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nco nst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\ n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toStrin g.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof F ile === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString .call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport functio n isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBu ffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(ob j, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false ;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return tru e;\n }\n }\n return false;\n }\n if (isBinary(obj )) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJ SON === \"function\" &&\n arguments.length === 1) {\n return hasBi nary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Obje ct.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } f rom \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | Fi le in packet with a numbered placeholder.\n *\n * @param {Object} packet - socke t.io event packet\n * @return {Object} with deconstructed packet and list of buf fers\n * @public\n */\nexport function deconstructPacket(packet) {\n const bu ffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buf fers.length; // number of binary 'attachments'\n return { packet: pack, buffe rs: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\ n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in dat a) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\ n }\n return newData;\n }\n return data;\n}\n/**\n * Reconst ructs a binary packet from its placeholder packet and buffers\n *\n * @param {Ob ject} packet - event packet with placeholders\n * @param {Array} buffers - binar y buffers to put in placeholder positions\n * @return {Object} reconstructed pac ket\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPa cket(data, buffers) {\n if (!data)\n return data;\n if (data && dat a._placeholder) {\n return buffers[data.num]; // appropriate buffer (shou ld be natural order anyway)\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPack et(data[i], buffers);\n }\n }\n else if (typeof data === \"object\" ) {\n for (const key in data) {\n if (Object.prototype.hasOwnP roperty.call(data, key)) {\n data[key] = _reconstructPacket(data[ key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport cons t protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketTyp e[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCO NNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"E VENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[Pack etType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\ "BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_AC K\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A soc ket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder co nstructor\n *\n * @param {function} replacer - custom replacer to pass d own to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-bin ary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj .type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (ha sBinary(obj)) {\n obj.type =\n obj.type === Pa cketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary( obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) { \n // first is type\n let str = \"\" + obj.type;\n // attac hments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachmen ts + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj. nsp) {\n str += obj.nsp + \",\";\n }\n // immediately f ollowed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = dec onstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.pa cket);\n const buffers = deconstruction.buffers;\n buffers.unshift (pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @ return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom rev iver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an e ncoded packet string into packet JSON.\n *\n * @param {String} obj - enc oded packet\n */\n add(obj) {\n let packet;\n if (typeof ob j === \"string\") {\n packet = this.decodeString(obj);\n i f (packet.type === PacketType.BINARY_EVENT ||\n packet.type === P acketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no a ttachments, labeled binary but no binary data to follow\n if (pac ket.attachments === 0) {\n super.emitReserved(\"decoded\", pa cket);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet) ;\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.tak eBinaryData(obj);\n if (packet) {\n // receive d final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj) ;\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\ n * @param {String} str\n * @return {Object} packet\n */\n decode String(str) {\n let i = 0;\n // look up type\n const p = {\ n type: Number(str.charAt(0)),\n };\n if (PacketType[p. type] === undefined) {\n throw new Error(\"unknown packet type \" + p .type);\n }\n // look up attachments if type binary\n if (p .type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_A CK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\ n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attac hments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if ( \",\" === c)\n break;\n if (i === str.length)\ n break;\n }\n p.nsp = str.substring(st art, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (nul l == c || Number(c) != c) {\n --i;\n break ;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\ n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isP ayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n t ry {\n return JSON.parse(str, this.reviver);\n }\n catc h (e) {\n return false;\n }\n }\n static isPayloadValid( type, payload) {\n switch (type) {\n case PacketType.CONNECT:\ n return typeof payload === \"object\";\n case PacketT ype.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case Pack etType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() { \n if (this.reconstructor) {\n this.reconstructor.finishedReco nstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffe r sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is \n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} i nitialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(pack et) {\n this.packet = packet;\n this.buffers = [];\n this.r econPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @p aram {Buffer | ArrayBuffer} binData - the raw binary data received\n * @retu rn {null | Object} returns null if more binary data is expected or\n * a r econstructed packet object if all buffers have been received.\n */\n take BinaryData(binData) {\n this.buffers.push(binData);\n if (this.buf fers.length === this.reconPack.attachments) {\n // done with buffer l ist\n const packet = reconstructPacket(this.reconPack, this.buffers); \n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet recons truction variables.\n */\n finishedReconstruction() {\n this.recon Pack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, e v, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.o ff(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimp ort { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-em itter\";\n/**\n * Internal events.\n * These events can't be emitted by the user .\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_er ror: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newLis tener: 1,\n removeListener: 1,\n});\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n *\n * @public\n */\n const ructor(io, nsp, opts) {\n super();\n this.connected = false;\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open ();\n }\n /**\n * Whether the socket is currently disconnected\n * /\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n * /\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen. bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the s ocket.\n *\n * @public\n */\n connect() {\n if (this.conne cted)\n return this;\n this.subEvents();\n if (!this.io [\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\" open\" === this.io._readyState)\n this.onopen();\n return this ;\n }\n /**\n * Alias for connect()\n */\n open() {\n re turn this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * @return self\n * @public\n */\n send(...args) {\n args.u nshift(\"message\");\n this.emit.apply(this, args);\n return this; \n }\n /**\n * Override `emit`.\n * If the event is in `events`, i t's emitted normally.\n *\n * @return self\n * @public\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: P acketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n / / event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io .engine.transport &&\n this.io.engine.transport.writable;\n co nst discardPacket = this.flags.volatile && (!isTransportWritable || !this.connec ted);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(p acket);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.ack s[id] = ack;\n return;\n }\n // @ts-ignore\n con st timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if ( this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1 );\n }\n }\n ack.call(this, new Error(\"ope ration has timed out\"));\n }, timeout);\n this.acks[id] = (...arg s) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n p acket(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet) ;\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNE CT, data });\n });\n }\n else {\n this.packe t({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @ private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param descrip tion\n * @private\n */\n onclose(reason, description) {\n this .connected = false;\n delete this.id;\n this.emitReserved(\"discon nect\", reason, description);\n }\n /**\n * Called with socket packet. \n *\n * @param packet\n * @private\n */\n onpacket(packet) { \n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNames pace)\n return;\n switch (packet.type) {\n case Pac ketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id) ;\n }\n else {\n this.emitReser ved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n ca se PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY _ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.dest roy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\ n }\n /**\n * Called upon a server event.\n *\n * @param packe t\n * @private\n */\n onevent(packet) {\n const args = packet. data || [];\n if (null != packet.id) {\n args.push(this.ack(pa cket.id));\n }\n if (this.connected) {\n this.emitEvent (args);\n }\n else {\n this.receiveBuffer.push(Object.f reeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyLis teners && this._anyListeners.length) {\n const listeners = this._anyL isteners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.ap ply(this, args);\n }\n /**\n * Produces an ack callback to emit with a n event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: Packe tType.ACK,\n id: id,\n data: args,\n }) ;\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.i d];\n }\n else {\n }\n }\n /**\n * Called upon se rver connect.\n *\n * @private\n */\n onconnect(id) {\n th is.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\ n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n th is.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon serve r disconnect.\n *\n * @private\n */\n ondisconnect() {\n t his.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\ n * Called upon forced client/server side disconnections,\n * this metho d ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.sub s = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\ n * Disconnects the socket manually.\n *\n * @return self\n * @p ublic\n */\n disconnect() {\n if (this.connected) {\n t his.packet({ type: PacketType.DISCONNECT });\n }\n // remove socke t from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\ n return this;\n }\n /**\n * Alias for disconnect()\n *\n * @return self\n * @public\n */\n close() {\n return this.d isconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @pa ram compress - if `true`, compresses the sending data\n * @return self\n * @public\n */\n compress(compress) {\n this.flags.compress = com press;\n return this;\n }\n /**\n * Sets a modifier for a subse quent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @returns self\n * @publi c\n */\n get volatile() {\n this.flags.volatile = true;\n r eturn this;\n }\n /**\n * Sets a modifier for a subsequent event emiss ion that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * ```\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the giv en delay\n * }\n * });\n * ```\n *\n * @returns self\n * @public\n */\n timeout(timeout) {\n this.flags.timeout = timeou t;\n return this;\n }\n /**\n * Adds a listener that will be fi red when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n * @public\n */\ n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /** \n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is a dded to the beginning of the listeners array.\n *\n * @param listener\n * @public\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @param listener\n * @public\n */\n offAny(listener) {\n if (!this._anyListeners) {\n ret urn this;\n }\n if (listener) {\n const listeners = thi s._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.spli ce(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are l istening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n *\n * @public\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a liste ner that will be fired when any event is emitted. The event name is passed as th e first argument to the\n * callback.\n *\n * @param listener\n *\n * <pre><code>\n *\n * socket.onAnyOutgoing((event, ...args) => { \n * console.log(event);\n * });\n *\n * </pre></code>\n * \n * @public\n */\n onAnyOutgoing(listener) {\n this._anyOutgo ingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListe ners.push(listener);\n return this;\n }\n /**\n * Adds a listen er that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @param listener\n *\n * <pre><co de>\n *\n * socket.prependAnyOutgoing((event, ...args) => {\n * co nsole.log(event);\n * });\n *\n * </pre></code>\n *\n * @pub lic\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListe ners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.uns hift(listener);\n return this;\n }\n /**\n * Removes the listen er that will be fired when any event is emitted.\n *\n * @param listener \n *\n * <pre><code>\n *\n * const handler = (event, ...args) => {\n * console.log(event);\n * }\n *\n * socket.onAnyOutgoing( handler);\n *\n * // then later\n * socket.offAnyOutgoing(handler);\ n *\n * </pre></code>\n *\n * @public\n */\n offAnyOutgoi ng(listener) {\n if (!this._anyOutgoingListeners) {\n return t his;\n }\n if (listener) {\n const listeners = this._an yOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.s plice(i, 1);\n return this;\n }\n } \n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulat ed,\n * e.g. to remove listeners.\n *\n * @public\n */\n list enersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\ n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\ n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet .data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object } opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n thi s.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter < = 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff du ration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duratio n = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++) ;\n if (this.jitter) {\n var rand = Math.random();\n var deviat ion = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, thi s.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\ nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Se t the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = func tion (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @ api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max ;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJit ter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, } from \"engine.io-client\";\nimport { Socket } f rom \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n } \n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n t his.reconnection(opts.reconnection !== false);\n this.reconnectionAttempt s(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.r econnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionD elayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFact or) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({ \n min: this.reconnectionDelay(),\n max: this.reconnection DelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._rea dyState = \"closed\";\n this.uri = uri;\n const _parser = opts.par ser || parser;\n this.encoder = new _parser.Encoder();\n this.deco der = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== f alse;\n if (this._autoConnect)\n this.open();\n }\n reco nnection(v) {\n if (!arguments.length)\n return this._reconnec tion;\n this._reconnection = !!v;\n return this;\n }\n recon nectionAttempts(v) {\n if (v === undefined)\n return this._rec onnectionAttempts;\n this._reconnectionAttempts = v;\n return this ;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefin ed)\n return this._reconnectionDelay;\n this._reconnectionDela y = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setM in(v);\n return this;\n }\n randomizationFactor(v) {\n var _ a;\n if (v === undefined)\n return this._randomizationFactor;\ n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n rec onnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return thi s;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n thi s._reconnection &&\n this.backoff.attempts === 0) {\n // k eeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @ret urn self\n * @public\n */\n open(fn) {\n if (~this._readyState .indexOf(\"open\"))\n return this;\n this.engine = new Engine( this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = fa lse;\n // emit `open`\n const openSubDestroy = on(socket, \"open\" , function () {\n self.onopen();\n fn && fn();\n }) ;\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do t his if there is no fn to handle the error\n self.maybeReconnectOn Open();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\ n }\n // set timer\n const timer = this.setTime outFn(() => {\n openSubDestroy();\n socket.close() ;\n // @ts-ignore\n socket.emit(\"error\", new Err or(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref ) {\n timer.unref();\n }\n this.subs.push(f unction subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorS ub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return thi s.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.clean up();\n // mark as open\n this._readyState = \"open\";\n th is.emitReserved(\"open\");\n // add new subs\n const socket = this .engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), o n(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror. bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \" decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a pi ng.\n *\n * @private\n */\n onping() {\n this.emitReserved (\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\ n }\n catch (e) {\n this.onclose(\"parse error\");\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n this.emitReserved( \"packet\", packet);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\ ", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\ n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encod e(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => su bDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */ \n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n * \n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n * /\n onclose(reason, description) {\n this.cleanup();\n this.bac koff.reset();\n this._readyState = \"closed\";\n this.emitReserved (\"close\", reason, description);\n if (this._reconnection && !this.skipR econnect) {\n this.reconnect();\n }\n }\n /**\n * At tempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnection Attempts) {\n this.backoff.reset();\n this.emitReserved(\" reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._ reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((e rr) => {\n if (err) {\n self._reconnec ting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.au toUnref) {\n timer.unref();\n }\n this.subs .push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.b ackoff.attempts;\n this._reconnecting = false;\n this.backoff.rese t();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { So cket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nf unction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parse d = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.for ceNew ||\n opts[\"force new connection\"] ||\n false === opts.mult iplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cach e[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = pars ed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"l ookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace ( e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Pro tocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser \";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexp ort { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n" ,"import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @para m uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.locati on.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"stri ng\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.c harAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\ n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \" ]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj .protocol +\n \"://\" +\n host +\n (loc && loc. port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n"],"names":[" PACKET_TYPES","Object","create","PACKET_TYPES_REVERSE","keys","forEach","key","E RROR_PACKET","type","data","withNativeBlob","Blob","prototype","toString","call" ,"withNativeArrayBuffer","ArrayBuffer","encodePacket","supportsBinary","callback ","obj","encodeBlobAsBase64","isView","buffer","fileReader","FileReader","onload ","content","result","split","readAsDataURL","chars","lookup","Uint8Array","i"," length","charCodeAt","decodePacket","encodedPacket","binaryType","mapBinary","ch arAt","decodeBase64Packet","substring","decoded","base64","encoded1","encoded2", "encoded3","encoded4","bufferLength","len","p","arraybuffer","bytes","decode","S EPARATOR","String","fromCharCode","Emitter","mixin","on","addEventListener","eve nt","fn","this","_callbacks","push","once","off","apply","arguments","removeList ener","removeAllListeners","removeEventListener","cb","callbacks","splice","emit ","args","Array","slice","emitReserved","listeners","hasListeners","globalThisSh im","self","window","Function","pick","_len","attr","_key","reduce","acc","k","h asOwnProperty","NATIVE_SET_TIMEOUT","setTimeout","NATIVE_CLEAR_TIMEOUT","clearTi meout","installTimerFunctions","opts","useNativeTimers","setTimeoutFn","bind","g lobalThis","clearTimeoutFn","prev","TransportError","reason","description","cont ext","_this","_classCallCheck","_super","Error","Transport","_Emitter","_inherit s","_super2","_createSuper","_this2","writable","_assertThisInitialized","query" ,"readyState","socket","_createClass","value","_get","_getPrototypeOf","doOpen", "doClose","onClose","packets","write","packet","onPacket","details","alphabet"," map","seed","encode","num","encoded","Math","floor","yeast","now","Date","str"," encodeURIComponent","qs","qry","pairs","l","pair","decodeURIComponent","XMLHttpR equest","err","hasCORS","XHR","xdomain","e","concat","join","empty","hasXHR2","r esponseType","Polling","_Transport","polling","location","isSSL","protocol","por t","xd","hostname","xs","secure","forceBase64","get","poll","onPause","pause","t otal","doPoll","_this3","encodedPayload","encodedPackets","decodedPacket","decod ePayload","onOpen","_this4","close","_this5","count","encodePayload","doWrite"," schema","timestampRequests","timestampParam","sid","b64","Number","encodedQuery" ,"indexOf","path","_extends","Request","uri","_this6","req","request","method"," xhrStatus","onError","_this7","onData","pollXhr","_this8","async","undefined","_ this9","xscheme","xhr","open","extraHeaders","setDisableHeaderCheck","setRequest Header","withCredentials","requestTimeout","timeout","onreadystatechange","statu s","onLoad","send","document","index","requestsCount","requests","cleanup","from Error","abort","responseText","attachEvent","unloadHandler","nextTick","Promise" ,"resolve","then","WebSocket","MozWebSocket","isReactNative","navigator","produc t","toLowerCase","WS","check","protocols","headers","ws","addEventListeners","on open","autoUnref","_socket","unref","onclose","closeEvent","onmessage","ev","one rror","_loop","lastPacket","transports","websocket","re","parts","parse","src"," b","replace","m","exec","source","host","authority","ipv6uri","pathNames","regx" ,"names","substr","queryKey","$0","$1","$2","Socket","writeBuffer","prevBufferLe n","agent","upgrade","rememberUpgrade","rejectUnauthorized","perMessageDeflate", "threshold","transportOptions","closeOnBeforeunload","id","upgrades","pingInterv al","pingTimeout","pingTimeoutTimer","transport","offlineEventListener","name"," EIO","priorWebsocketSuccess","createTransport","shift","setTransport","onDrain", "failed","onTransportOpen","msg","upgrading","flush","freezeTransport","error"," onTransportClose","onupgrade","to","probe","onHandshake","JSON","resetPingTimeou t","sendPacket","code","filterUpgrades","maxPayload","getWritablePackets","paylo adSize","c","utf8Length","ceil","byteLength","size","options","compress","cleanu pAndClose","waitForUpgrade","filteredUpgrades","j","Socket$1","withNativeFile"," File","isBinary","hasBinary","toJSON","_typeof","isArray","deconstructPacket","b uffers","packetData","pack","_deconstructPacket","attachments","placeholder","_p laceholder","newData","reconstructPacket","_reconstructPacket","PacketType","Enc oder","replacer","EVENT","ACK","encodeAsString","BINARY_EVENT","BINARY_ACK","enc odeAsBinary","nsp","stringify","deconstruction","unshift","Decoder","reviver","d ecodeString","reconstructor","BinaryReconstructor","takeBinaryData","start","buf ","next","payload","tryParse","isPayloadValid","finishedReconstruction","CONNECT ","DISCONNECT","CONNECT_ERROR","reconPack","binData","RESERVED_EVENTS","freeze", "connect","connect_error","disconnect","disconnecting","newListener","io","conne cted","receiveBuffer","sendBuffer","ids","acks","flags","auth","_autoConnect","s ubs","onpacket","subEvents","_readyState","_len2","_key2","ack","pop","_register AckCallback","isTransportWritable","engine","discardPacket","notifyOutgoingListe ners","timer","_len3","_key3","_packet","onconnect","onevent","onack","ondisconn ect","destroy","message","emitEvent","_anyListeners","_step","_iterator","_creat eForOfIteratorHelper","s","n","done","f","sent","_len4","_key4","emitBuffered"," subDestroy","listener","_anyOutgoingListeners","_step2","_iterator2","Backoff"," ms","min","max","factor","jitter","attempts","duration","pow","rand","random","d eviation","reset","setMin","setMax","setJitter","Manager","_a","nsps","reconnect ion","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax ","randomizationFactor","backoff","_parser","parser","encoder","decoder","autoCo nnect","v","_reconnection","_reconnectionAttempts","_reconnectionDelay","_random izationFactor","_reconnectionDelayMax","_timeout","_reconnecting","reconnect","E ngine","skipReconnect","openSubDestroy","errorSub","maybeReconnectOnOpen","onpin g","ondata","ondecoded","add","_i","_nsps","active","_close","delay","onreconnec t","attempt","cache","parsed","loc","test","href","url","sameNamespace","forceNe w","multiplex"],"mappings":"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"}
 End of changes. 1 change blocks. 
lines changed or deleted lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)