{"version":3,"file":"PaymentMethods.ecccb8e1.js","sources":["node_modules/socket.io-client/dist/socket.io.js","app/assets/vite/factories/socketio.ts","app/assets/vite/stores/UserDetails.ts","app/assets/vite/stores/UserFollow.ts","app/assets/vite/stores/PaymentMethods.ts"],"sourcesContent":["/*!\n * Socket.IO v4.6.0\n * (c) 2014-2023 Guillermo Rauch\n * Released under the MIT License.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.io = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n }\n\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n\n var PACKET_TYPES = Object.create(null); // no Map = no polyfill\n\n PACKET_TYPES[\"open\"] = \"0\";\n PACKET_TYPES[\"close\"] = \"1\";\n PACKET_TYPES[\"ping\"] = \"2\";\n PACKET_TYPES[\"pong\"] = \"3\";\n PACKET_TYPES[\"message\"] = \"4\";\n PACKET_TYPES[\"upgrade\"] = \"5\";\n PACKET_TYPES[\"noop\"] = \"6\";\n var PACKET_TYPES_REVERSE = Object.create(null);\n Object.keys(PACKET_TYPES).forEach(function (key) {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n });\n var ERROR_PACKET = {\n type: \"error\",\n data: \"parser error\"\n };\n\n var withNativeBlob$1 = typeof Blob === \"function\" || typeof Blob !== \"undefined\" && Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\";\n var withNativeArrayBuffer$2 = typeof ArrayBuffer === \"function\"; // ArrayBuffer.isView method is not defined in IE10\n\n var isView$1 = function isView(obj) {\n return typeof ArrayBuffer.isView === \"function\" ? ArrayBuffer.isView(obj) : obj && obj.buffer instanceof ArrayBuffer;\n };\n\n var encodePacket = function encodePacket(_ref, supportsBinary, callback) {\n var type = _ref.type,\n data = _ref.data;\n\n if (withNativeBlob$1 && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n } else {\n return encodeBlobAsBase64(data, callback);\n }\n } else if (withNativeArrayBuffer$2 && (data instanceof ArrayBuffer || isView$1(data))) {\n if (supportsBinary) {\n return callback(data);\n } else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n } // plain string\n\n\n return callback(PACKET_TYPES[type] + (data || \"\"));\n };\n\n var encodeBlobAsBase64 = function encodeBlobAsBase64(data, callback) {\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n var content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n\n return fileReader.readAsDataURL(data);\n };\n\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; // Use a lookup table to find the index.\n\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n\n for (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup$1[chars.charCodeAt(i$1)] = i$1;\n }\n var decode$1 = function decode(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[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\n return arraybuffer;\n };\n\n var withNativeArrayBuffer$1 = typeof ArrayBuffer === \"function\";\n\n var decodePacket = function decodePacket(encodedPacket, binaryType) {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n\n var type = encodedPacket.charAt(0);\n\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n\n var packetType = PACKET_TYPES_REVERSE[type];\n\n if (!packetType) {\n return ERROR_PACKET;\n }\n\n return encodedPacket.length > 1 ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n } : {\n type: PACKET_TYPES_REVERSE[type]\n };\n };\n\n var decodeBase64Packet = function decodeBase64Packet(data, binaryType) {\n if (withNativeArrayBuffer$1) {\n var decoded = decode$1(data);\n return mapBinary(decoded, binaryType);\n } else {\n return {\n base64: true,\n data: data\n }; // fallback for old browsers\n }\n };\n\n var mapBinary = function mapBinary(data, binaryType) {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n\n case \"arraybuffer\":\n default:\n return data;\n // assuming the data is already an ArrayBuffer\n }\n };\n\n var SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\n\n var encodePayload = function encodePayload(packets, callback) {\n // some packets may be added to the array while encoding, so the initial length must be saved\n var length = packets.length;\n var encodedPackets = new Array(length);\n var count = 0;\n packets.forEach(function (packet, i) {\n // force base64 encoding for binary packets\n encodePacket(packet, false, function (encodedPacket) {\n encodedPackets[i] = encodedPacket;\n\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n };\n\n var decodePayload = function decodePayload(encodedPayload, binaryType) {\n var encodedPackets = encodedPayload.split(SEPARATOR);\n var packets = [];\n\n for (var i = 0; i < encodedPackets.length; i++) {\n var decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n\n return packets;\n };\n\n var protocol$1 = 4;\n\n /**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n function Emitter(obj) {\n if (obj) return mixin(obj);\n }\n /**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n function mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\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\n\n Emitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n };\n /**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\n\n Emitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n };\n /**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\n\n Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {}; // all\n\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this; // remove all handlers\n\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n } // remove specific handler\n\n\n var cb;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n } // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n\n\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n };\n /**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\n\n Emitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\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\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n }; // alias used for reserved events (protected method)\n\n\n Emitter.prototype.emitReserved = Emitter.prototype.emit;\n /**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\n Emitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n };\n /**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\n\n Emitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n };\n\n var globalThisShim = function () {\n if (typeof self !== \"undefined\") {\n return self;\n } else if (typeof window !== \"undefined\") {\n return window;\n } else {\n return Function(\"return this\")();\n }\n }();\n\n function pick(obj) {\n for (var _len = arguments.length, attr = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n attr[_key - 1] = arguments[_key];\n }\n\n return attr.reduce(function (acc, k) {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n\n return acc;\n }, {});\n } // Keep a reference to the real timeout functions so they can be used when overridden\n\n var NATIVE_SET_TIMEOUT = globalThisShim.setTimeout;\n var NATIVE_CLEAR_TIMEOUT = globalThisShim.clearTimeout;\n function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThisShim);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThisShim);\n } else {\n obj.setTimeoutFn = globalThisShim.setTimeout.bind(globalThisShim);\n obj.clearTimeoutFn = globalThisShim.clearTimeout.bind(globalThisShim);\n }\n } // base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\n\n var BASE64_OVERHEAD = 1.33; // we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\n\n function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n } // arraybuffer or blob\n\n\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n }\n\n function utf8Length(str) {\n var c = 0,\n length = 0;\n\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n\n if (c < 0x80) {\n length += 1;\n } else if (c < 0x800) {\n length += 2;\n } else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n } else {\n i++;\n length += 4;\n }\n }\n\n return length;\n }\n\n var TransportError = /*#__PURE__*/function (_Error) {\n _inherits(TransportError, _Error);\n\n var _super = _createSuper(TransportError);\n\n function TransportError(reason, description, context) {\n var _this;\n\n _classCallCheck(this, TransportError);\n\n _this = _super.call(this, reason);\n _this.description = description;\n _this.context = context;\n _this.type = \"TransportError\";\n return _this;\n }\n\n return _createClass(TransportError);\n }( /*#__PURE__*/_wrapNativeSuper(Error));\n\n var Transport = /*#__PURE__*/function (_Emitter) {\n _inherits(Transport, _Emitter);\n\n var _super2 = _createSuper(Transport);\n\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n function Transport(opts) {\n var _this2;\n\n _classCallCheck(this, Transport);\n\n _this2 = _super2.call(this);\n _this2.writable = false;\n installTimerFunctions(_assertThisInitialized(_this2), opts);\n _this2.opts = opts;\n _this2.query = opts.query;\n _this2.socket = opts.socket;\n return _this2;\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 * @protected\n */\n\n\n _createClass(Transport, [{\n key: \"onError\",\n value: function onError(reason, description, context) {\n _get(_getPrototypeOf(Transport.prototype), \"emitReserved\", this).call(this, \"error\", new TransportError(reason, description, context));\n\n return this;\n }\n /**\n * Opens the transport.\n */\n\n }, {\n key: \"open\",\n value: function open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n\n }, {\n key: \"send\",\n value: function send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n\n }, {\n key: \"onOpen\",\n value: function onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n\n _get(_getPrototypeOf(Transport.prototype), \"emitReserved\", this).call(this, \"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n\n }, {\n key: \"onData\",\n value: function onData(data) {\n var packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n\n }, {\n key: \"onPacket\",\n value: function onPacket(packet) {\n _get(_getPrototypeOf(Transport.prototype), \"emitReserved\", this).call(this, \"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n\n }, {\n key: \"onClose\",\n value: function onClose(details) {\n this.readyState = \"closed\";\n\n _get(_getPrototypeOf(Transport.prototype), \"emitReserved\", this).call(this, \"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n\n }, {\n key: \"pause\",\n value: function pause(onPause) {}\n }]);\n\n return Transport;\n }(Emitter);\n\n // imported from https://github.com/unshiftio/yeast\n\n var alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''),\n length = 64,\n map = {};\n var seed = 0,\n i = 0,\n prev;\n /**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\n\n function encode$1(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n }\n /**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\n\n function yeast() {\n var now = encode$1(+new Date());\n if (now !== prev) return seed = 0, prev = now;\n return now + '.' + encode$1(seed++);\n } //\n // Map each character to its index.\n //\n\n for (; i < length; i++) {\n map[alphabet[i]] = i;\n }\n\n // imported from https://github.com/galkn/querystring\n\n /**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\n function encode(obj) {\n var str = '';\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n\n return str;\n }\n /**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\n\n function decode(qs) {\n var qry = {};\n var pairs = qs.split('&');\n\n for (var i = 0, l = pairs.length; i < l; i++) {\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n\n return qry;\n }\n\n // imported from https://github.com/component/has-cors\n var value = false;\n\n try {\n value = typeof XMLHttpRequest !== 'undefined' && 'withCredentials' in new XMLHttpRequest();\n } catch (err) {// if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n }\n\n var hasCORS = value;\n\n // browser shim for xmlhttprequest module\n function XHR(opts) {\n var xdomain = opts.xdomain; // XMLHttpRequest can be disabled on IE\n\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) {}\n\n if (!xdomain) {\n try {\n return new globalThisShim[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n } catch (e) {}\n }\n }\n\n function empty() {}\n\n var hasXHR2 = function () {\n var xhr = new XHR({\n xdomain: false\n });\n return null != xhr.responseType;\n }();\n\n var Polling = /*#__PURE__*/function (_Transport) {\n _inherits(Polling, _Transport);\n\n var _super = _createSuper(Polling);\n\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n function Polling(opts) {\n var _this;\n\n _classCallCheck(this, Polling);\n\n _this = _super.call(this, opts);\n _this.polling = false;\n\n if (typeof location !== \"undefined\") {\n var isSSL = \"https:\" === location.protocol;\n var port = location.port; // some user agents have empty `location.port`\n\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n\n _this.xd = typeof location !== \"undefined\" && opts.hostname !== location.hostname || port !== opts.port;\n _this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n\n\n var forceBase64 = opts && opts.forceBase64;\n _this.supportsBinary = hasXHR2 && !forceBase64;\n return _this;\n }\n\n _createClass(Polling, [{\n key: \"name\",\n get: function get() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n\n }, {\n key: \"doOpen\",\n value: function doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n\n }, {\n key: \"pause\",\n value: function pause(onPause) {\n var _this2 = this;\n\n this.readyState = \"pausing\";\n\n var pause = function pause() {\n _this2.readyState = \"paused\";\n onPause();\n };\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n } else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n\n }, {\n key: \"poll\",\n value: function poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n\n }, {\n key: \"onData\",\n value: function onData(data) {\n var _this3 = this;\n\n var callback = function callback(packet) {\n // if its the first message we consider the transport open\n if (\"opening\" === _this3.readyState && packet.type === \"open\") {\n _this3.onOpen();\n } // if its a close packet, we close the ongoing requests\n\n\n if (\"close\" === packet.type) {\n _this3.onClose({\n description: \"transport closed by the server\"\n });\n\n return false;\n } // otherwise bypass onData and handle the message\n\n\n _this3.onPacket(packet);\n }; // decode payload\n\n\n decodePayload(data, this.socket.binaryType).forEach(callback); // if an event did not trigger closing\n\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n\n if (\"open\" === this.readyState) {\n this.poll();\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n\n }, {\n key: \"doClose\",\n value: function doClose() {\n var _this4 = this;\n\n var close = function close() {\n _this4.write([{\n type: \"close\"\n }]);\n };\n\n if (\"open\" === this.readyState) {\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n\n }, {\n key: \"write\",\n value: function write(packets) {\n var _this5 = this;\n\n this.writable = false;\n encodePayload(packets, function (data) {\n _this5.doWrite(data, function () {\n _this5.writable = true;\n\n _this5.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n\n }, {\n key: \"uri\",\n value: function uri() {\n var query = this.query || {};\n var schema = this.opts.secure ? \"https\" : \"http\";\n var port = \"\"; // cache busting is forced\n\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n } // avoid port if default for schema\n\n\n if (this.opts.port && (\"https\" === schema && Number(this.opts.port) !== 443 || \"http\" === schema && Number(this.opts.port) !== 80)) {\n port = \":\" + this.opts.port;\n }\n\n var encodedQuery = encode(query);\n var ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return schema + \"://\" + (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) + port + this.opts.path + (encodedQuery.length ? \"?\" + encodedQuery : \"\");\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n\n }, {\n key: \"request\",\n value: function request() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _extends(opts, {\n xd: this.xd,\n xs: this.xs\n }, this.opts);\n\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 * @private\n */\n\n }, {\n key: \"doWrite\",\n value: function doWrite(data, fn) {\n var _this6 = this;\n\n var req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", function (xhrStatus, context) {\n _this6.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n\n }, {\n key: \"doPoll\",\n value: function doPoll() {\n var _this7 = this;\n\n var req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", function (xhrStatus, context) {\n _this7.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n }]);\n\n return Polling;\n }(Transport);\n var Request = /*#__PURE__*/function (_Emitter) {\n _inherits(Request, _Emitter);\n\n var _super2 = _createSuper(Request);\n\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n function Request(uri, opts) {\n var _this8;\n\n _classCallCheck(this, Request);\n\n _this8 = _super2.call(this);\n installTimerFunctions(_assertThisInitialized(_this8), opts);\n _this8.opts = opts;\n _this8.method = opts.method || \"GET\";\n _this8.uri = uri;\n _this8.async = false !== opts.async;\n _this8.data = undefined !== opts.data ? opts.data : null;\n\n _this8.create();\n\n return _this8;\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n\n\n _createClass(Request, [{\n key: \"create\",\n value: function create() {\n var _this9 = this;\n\n var 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 var xhr = this.xhr = new XHR(opts);\n\n try {\n xhr.open(this.method, this.uri, this.async);\n\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n\n for (var i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n } catch (e) {} // ie6 check\n\n\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n\n xhr.onreadystatechange = function () {\n if (4 !== xhr.readyState) return;\n\n if (200 === xhr.status || 1223 === xhr.status) {\n _this9.onLoad();\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 _this9.setTimeoutFn(function () {\n _this9.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(function () {\n _this9.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n\n }, {\n key: \"onError\",\n value: function onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n\n }, {\n key: \"cleanup\",\n value: function cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n\n this.xhr.onreadystatechange = empty;\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n\n }, {\n key: \"onLoad\",\n value: function onLoad() {\n var data = this.xhr.responseText;\n\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n\n }, {\n key: \"abort\",\n value: function abort() {\n this.cleanup();\n }\n }]);\n\n return Request;\n }(Emitter);\n Request.requestsCount = 0;\n Request.requests = {};\n /**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\n if (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n } else if (typeof addEventListener === \"function\") {\n var terminationEvent = \"onpagehide\" in globalThisShim ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n }\n\n function unloadHandler() {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n }\n\n var nextTick = function () {\n var isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n\n if (isPromiseAvailable) {\n return function (cb) {\n return Promise.resolve().then(cb);\n };\n } else {\n return function (cb, setTimeoutFn) {\n return setTimeoutFn(cb, 0);\n };\n }\n }();\n var WebSocket = globalThisShim.WebSocket || globalThisShim.MozWebSocket;\n var usingBrowserWebSocket = true;\n var defaultBinaryType = \"arraybuffer\";\n\n var isReactNative = typeof navigator !== \"undefined\" && typeof navigator.product === \"string\" && navigator.product.toLowerCase() === \"reactnative\";\n var WS = /*#__PURE__*/function (_Transport) {\n _inherits(WS, _Transport);\n\n var _super = _createSuper(WS);\n\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n function WS(opts) {\n var _this;\n\n _classCallCheck(this, WS);\n\n _this = _super.call(this, opts);\n _this.supportsBinary = !opts.forceBase64;\n return _this;\n }\n\n _createClass(WS, [{\n key: \"name\",\n get: function get() {\n return \"websocket\";\n }\n }, {\n key: \"doOpen\",\n value: function doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n\n var uri = this.uri();\n var protocols = this.opts.protocols; // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n\n var opts = isReactNative ? {} : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n\n try {\n this.ws = usingBrowserWebSocket && !isReactNative ? protocols ? new WebSocket(uri, protocols) : new WebSocket(uri) : new WebSocket(uri, protocols, opts);\n } catch (err) {\n return this.emitReserved(\"error\", err);\n }\n\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n var _this2 = this;\n\n this.ws.onopen = function () {\n if (_this2.opts.autoUnref) {\n _this2.ws._socket.unref();\n }\n\n _this2.onOpen();\n };\n\n this.ws.onclose = function (closeEvent) {\n return _this2.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n };\n\n this.ws.onmessage = function (ev) {\n return _this2.onData(ev.data);\n };\n\n this.ws.onerror = function (e) {\n return _this2.onError(\"websocket error\", e);\n };\n }\n }, {\n key: \"write\",\n value: function write(packets) {\n var _this3 = this;\n\n this.writable = false; // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n\n var _loop = function _loop(i) {\n var packet = packets[i];\n var lastPacket = i === packets.length - 1;\n encodePacket(packet, _this3.supportsBinary, function (data) {\n // always create a new object (GH-437)\n var opts = {};\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n\n\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n _this3.ws.send(data);\n }\n } catch (e) {}\n\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(function () {\n _this3.writable = true;\n\n _this3.emitReserved(\"drain\");\n }, _this3.setTimeoutFn);\n }\n });\n };\n\n for (var i = 0; i < packets.length; i++) {\n _loop(i);\n }\n }\n }, {\n key: \"doClose\",\n value: function 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 * @private\n */\n\n }, {\n key: \"uri\",\n value: function uri() {\n var query = this.query || {};\n var schema = this.opts.secure ? \"wss\" : \"ws\";\n var port = \"\"; // avoid port if default for schema\n\n if (this.opts.port && (\"wss\" === schema && Number(this.opts.port) !== 443 || \"ws\" === schema && Number(this.opts.port) !== 80)) {\n port = \":\" + this.opts.port;\n } // append timestamp to URI\n\n\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n } // communicate binary support capabilities\n\n\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n\n var encodedQuery = encode(query);\n var ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return schema + \"://\" + (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) + port + this.opts.path + (encodedQuery.length ? \"?\" + encodedQuery : \"\");\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n\n }, {\n key: \"check\",\n value: function check() {\n return !!WebSocket;\n }\n }]);\n\n return WS;\n }(Transport);\n\n var transports = {\n websocket: WS,\n polling: Polling\n };\n\n // imported from https://github.com/galkn/parseuri\n\n /**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\n var re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\n var parts = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'];\n function parse(str) {\n var src = str,\n b = str.indexOf('['),\n e = str.indexOf(']');\n\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n\n var m = re.exec(str || ''),\n uri = {},\n i = 14;\n\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\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\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n }\n\n function pathNames(obj, path) {\n var regx = /\\/{2,9}/g,\n names = path.replace(regx, \"/\").split(\"/\");\n\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n\n return names;\n }\n\n function queryKey(uri, query) {\n var data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n }\n\n var Socket$1 = /*#__PURE__*/function (_Emitter) {\n _inherits(Socket, _Emitter);\n\n var _super = _createSuper(Socket);\n\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n function Socket(uri) {\n var _this;\n\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Socket);\n\n _this = _super.call(this);\n _this.writeBuffer = [];\n\n if (uri && \"object\" === _typeof(uri)) {\n opts = uri;\n uri = null;\n }\n\n if (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) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n\n installTimerFunctions(_assertThisInitialized(_this), opts);\n _this.secure = null != opts.secure ? opts.secure : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n\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\n _this.hostname = opts.hostname || (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n _this.port = opts.port || (typeof location !== \"undefined\" && location.port ? location.port : _this.secure ? \"443\" : \"80\");\n _this.transports = opts.transports || [\"polling\", \"websocket\"];\n _this.writeBuffer = [];\n _this.prevBufferLen = 0;\n _this.opts = _extends({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n _this.opts.path = _this.opts.path.replace(/\\/$/, \"\") + (_this.opts.addTrailingSlash ? \"/\" : \"\");\n\n if (typeof _this.opts.query === \"string\") {\n _this.opts.query = decode(_this.opts.query);\n } // set on handshake\n\n\n _this.id = null;\n _this.upgrades = null;\n _this.pingInterval = null;\n _this.pingTimeout = null; // set on heartbeat\n\n _this.pingTimeoutTimer = null;\n\n if (typeof addEventListener === \"function\") {\n if (_this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n _this.beforeunloadEventListener = function () {\n if (_this.transport) {\n // silently close the transport\n _this.transport.removeAllListeners();\n\n _this.transport.close();\n }\n };\n\n addEventListener(\"beforeunload\", _this.beforeunloadEventListener, false);\n }\n\n if (_this.hostname !== \"localhost\") {\n _this.offlineEventListener = function () {\n _this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n\n addEventListener(\"offline\", _this.offlineEventListener, false);\n }\n }\n\n _this.open();\n\n return _this;\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n\n\n _createClass(Socket, [{\n key: \"createTransport\",\n value: function createTransport(name) {\n var query = _extends({}, this.opts.query); // append engine.io protocol identifier\n\n\n query.EIO = protocol$1; // transport name\n\n query.transport = name; // session id if we already have one\n\n if (this.id) query.sid = this.id;\n\n var opts = _extends({}, this.opts.transportOptions[name], this.opts, {\n query: query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n\n }, {\n key: \"open\",\n value: function open() {\n var _this2 = this;\n\n var transport;\n\n if (this.opts.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(function () {\n _this2.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n\n this.readyState = \"opening\"; // Retry with the next transport if the transport is disabled (jsonp: false)\n\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n\n }, {\n key: \"setTransport\",\n value: function setTransport(transport) {\n var _this3 = this;\n\n if (this.transport) {\n this.transport.removeAllListeners();\n } // set up transport\n\n\n this.transport = transport; // set up transport listeners\n\n transport.on(\"drain\", this.onDrain.bind(this)).on(\"packet\", this.onPacket.bind(this)).on(\"error\", this.onError.bind(this)).on(\"close\", function (reason) {\n return _this3.onClose(\"transport close\", reason);\n });\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n\n }, {\n key: \"probe\",\n value: function probe(name) {\n var _this4 = this;\n\n var transport = this.createTransport(name);\n var failed = false;\n Socket.priorWebsocketSuccess = false;\n\n var onTransportOpen = function onTransportOpen() {\n if (failed) return;\n transport.send([{\n type: \"ping\",\n data: \"probe\"\n }]);\n transport.once(\"packet\", function (msg) {\n if (failed) return;\n\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n _this4.upgrading = true;\n\n _this4.emitReserved(\"upgrading\", transport);\n\n if (!transport) return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n\n _this4.transport.pause(function () {\n if (failed) return;\n if (\"closed\" === _this4.readyState) return;\n cleanup();\n\n _this4.setTransport(transport);\n\n transport.send([{\n type: \"upgrade\"\n }]);\n\n _this4.emitReserved(\"upgrade\", transport);\n\n transport = null;\n _this4.upgrading = false;\n\n _this4.flush();\n });\n } else {\n var err = new Error(\"probe error\"); // @ts-ignore\n\n err.transport = transport.name;\n\n _this4.emitReserved(\"upgradeError\", err);\n }\n });\n };\n\n function freezeTransport() {\n if (failed) return; // Any callback called by transport should be ignored since now\n\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n } // Handle any error that happens while probing\n\n\n var onerror = function onerror(err) {\n var error = new Error(\"probe error: \" + err); // @ts-ignore\n\n error.transport = transport.name;\n freezeTransport();\n\n _this4.emitReserved(\"upgradeError\", error);\n };\n\n function onTransportClose() {\n onerror(\"transport closed\");\n } // When the socket is closed while we're probing\n\n\n function onclose() {\n onerror(\"socket closed\");\n } // When the socket is upgraded while we're probing\n\n\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n } // Remove all listeners on the transport and on self\n\n\n var cleanup = function cleanup() {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n\n _this4.off(\"close\", onclose);\n\n _this4.off(\"upgrading\", onupgrade);\n };\n\n transport.once(\"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 * @private\n */\n\n }, {\n key: \"onOpen\",\n value: function onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush(); // we check for `readyState` in case an `open`\n // listener already closed the socket\n\n if (\"open\" === this.readyState && this.opts.upgrade) {\n var i = 0;\n var l = this.upgrades.length;\n\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n\n }, {\n key: \"onPacket\",\n value: function onPacket(packet) {\n if (\"opening\" === this.readyState || \"open\" === this.readyState || \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet); // Socket is live - any packet counts\n\n this.emitReserved(\"heartbeat\");\n\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n\n case \"error\":\n var err = new Error(\"server error\"); // @ts-ignore\n\n err.code = packet.data;\n this.onError(err);\n break;\n\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n\n }, {\n key: \"onHandshake\",\n value: function 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.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen(); // In case open handler closes socket\n\n if (\"closed\" === this.readyState) return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n\n }, {\n key: \"resetPingTimeout\",\n value: function resetPingTimeout() {\n var _this5 = this;\n\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(function () {\n _this5.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n\n }, {\n key: \"onDrain\",\n value: function onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen); // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n } else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n\n }, {\n key: \"flush\",\n value: function flush() {\n if (\"closed\" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) {\n var packets = this.getWritablePackets();\n this.transport.send(packets); // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n\n }, {\n key: \"getWritablePackets\",\n value: function getWritablePackets() {\n var shouldCheckPayloadSize = this.maxPayload && this.transport.name === \"polling\" && this.writeBuffer.length > 1;\n\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n\n var payloadSize = 1; // first packet type\n\n for (var i = 0; i < this.writeBuffer.length; i++) {\n var data = this.writeBuffer[i].data;\n\n if (data) {\n payloadSize += byteLength(data);\n }\n\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n\n payloadSize += 2; // separator + packet type\n }\n\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n\n }, {\n key: \"write\",\n value: function write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n }, {\n key: \"send\",\n value: function send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n\n }, {\n key: \"sendPacket\",\n value: function sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn) this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n\n }, {\n key: \"close\",\n value: function close() {\n var _this6 = this;\n\n var close = function close() {\n _this6.onClose(\"forced close\");\n\n _this6.transport.close();\n };\n\n var cleanupAndClose = function cleanupAndClose() {\n _this6.off(\"upgrade\", cleanupAndClose);\n\n _this6.off(\"upgradeError\", cleanupAndClose);\n\n close();\n };\n\n var waitForUpgrade = function waitForUpgrade() {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n _this6.once(\"upgrade\", cleanupAndClose);\n\n _this6.once(\"upgradeError\", cleanupAndClose);\n };\n\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n\n if (this.writeBuffer.length) {\n this.once(\"drain\", function () {\n if (_this6.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n\n }, {\n key: \"onError\",\n value: function onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n\n }, {\n key: \"onClose\",\n value: function onClose(reason, description) {\n if (\"opening\" === this.readyState || \"open\" === this.readyState || \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer); // stop event from firing again for transport\n\n this.transport.removeAllListeners(\"close\"); // ensure transport won't stay open\n\n this.transport.close(); // ignore further transport communication\n\n this.transport.removeAllListeners();\n\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n } // set ready state\n\n\n this.readyState = \"closed\"; // clear session id\n\n this.id = null; // emit close event\n\n this.emitReserved(\"close\", reason, description); // clean buffers after, so users can still\n // grab the buffers on `close` event\n\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n\n }, {\n key: \"filterUpgrades\",\n value: function filterUpgrades(upgrades) {\n var filteredUpgrades = [];\n var i = 0;\n var j = upgrades.length;\n\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n\n return filteredUpgrades;\n }\n }]);\n\n return Socket;\n }(Emitter);\n Socket$1.protocol = protocol$1;\n\n Socket$1.protocol;\n\n /**\n * URL parser.\n *\n * @param 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.location.\n * @public\n */\n\n function url(uri) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var loc = arguments.length > 2 ? arguments[2] : undefined;\n var obj = uri; // default to window.location\n\n loc = loc || typeof location !== \"undefined\" && location;\n if (null == uri) uri = loc.protocol + \"//\" + loc.host; // relative path support\n\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n } else {\n uri = \"https://\" + uri;\n }\n } // parse\n\n\n obj = parse(uri);\n } // make sure we treat `localhost:80` and `localhost` equally\n\n\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n\n obj.path = obj.path || \"/\";\n var ipv6 = obj.host.indexOf(\":\") !== -1;\n var host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host; // define unique id\n\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path; // define href\n\n obj.href = obj.protocol + \"://\" + host + (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n }\n\n var withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n\n var isView = function isView(obj) {\n return typeof ArrayBuffer.isView === \"function\" ? ArrayBuffer.isView(obj) : obj.buffer instanceof ArrayBuffer;\n };\n\n var toString = Object.prototype.toString;\n var withNativeBlob = typeof Blob === \"function\" || typeof Blob !== \"undefined\" && toString.call(Blob) === \"[object BlobConstructor]\";\n var withNativeFile = typeof File === \"function\" || typeof File !== \"undefined\" && 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 */\n\n function isBinary(obj) {\n return withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)) || withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File;\n }\n function hasBinary(obj, toJSON) {\n if (!obj || _typeof(obj) !== \"object\") {\n return false;\n }\n\n if (Array.isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n\n return false;\n }\n\n if (isBinary(obj)) {\n return true;\n }\n\n if (obj.toJSON && typeof obj.toJSON === \"function\" && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\n\n function deconstructPacket(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n\n return {\n packet: pack,\n buffers: buffers\n };\n }\n\n function _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBinary(data)) {\n var placeholder = {\n _placeholder: true,\n num: buffers.length\n };\n buffers.push(data);\n return placeholder;\n } else if (Array.isArray(data)) {\n var newData = new Array(data.length);\n\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n\n return newData;\n } else if (_typeof(data) === \"object\" && !(data instanceof Date)) {\n var _newData = {};\n\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n _newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n\n return _newData;\n }\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 put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\n\n\n function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n\n return packet;\n }\n\n function _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder === true) {\n var isIndexValid = typeof data.num === \"number\" && data.num >= 0 && data.num < buffers.length;\n\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else {\n throw new Error(\"illegal attachments\");\n }\n } else if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (_typeof(data) === \"object\") {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n\n return data;\n }\n\n /**\n * Protocol version.\n *\n * @public\n */\n\n var protocol = 5;\n var PacketType;\n\n (function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n })(PacketType || (PacketType = {}));\n /**\n * A socket.io Encoder instance\n */\n\n\n var Encoder = /*#__PURE__*/function () {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n function Encoder(replacer) {\n _classCallCheck(this, Encoder);\n\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\n\n _createClass(Encoder, [{\n key: \"encode\",\n value: function encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT ? PacketType.BINARY_EVENT : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id\n });\n }\n }\n\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n\n }, {\n key: \"encodeAsString\",\n value: function encodeAsString(obj) {\n // first is type\n var str = \"\" + obj.type; // attachments if we have them\n\n if (obj.type === PacketType.BINARY_EVENT || obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n } // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n\n\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n } // immediately followed by the id\n\n\n if (null != obj.id) {\n str += obj.id;\n } // json data\n\n\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\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\n }, {\n key: \"encodeAsBinary\",\n value: function encodeAsBinary(obj) {\n var deconstruction = deconstructPacket(obj);\n var pack = this.encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n\n return buffers; // write all the buffers\n }\n }]);\n\n return Encoder;\n }();\n /**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\n\n var Decoder = /*#__PURE__*/function (_Emitter) {\n _inherits(Decoder, _Emitter);\n\n var _super = _createSuper(Decoder);\n\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n function Decoder(reviver) {\n var _this;\n\n _classCallCheck(this, Decoder);\n\n _this = _super.call(this);\n _this.reviver = reviver;\n return _this;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n\n\n _createClass(Decoder, [{\n key: \"add\",\n value: function add(obj) {\n var packet;\n\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n\n packet = this.decodeString(obj);\n var isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK; // binary packet's json\n\n this.reconstructor = new BinaryReconstructor(packet); // no attachments, labeled binary but no binary data to follow\n\n if (packet.attachments === 0) {\n _get(_getPrototypeOf(Decoder.prototype), \"emitReserved\", this).call(this, \"decoded\", packet);\n }\n } else {\n // non-binary full packet\n _get(_getPrototypeOf(Decoder.prototype), \"emitReserved\", this).call(this, \"decoded\", packet);\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 } else {\n packet = this.reconstructor.takeBinaryData(obj);\n\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n\n _get(_getPrototypeOf(Decoder.prototype), \"emitReserved\", this).call(this, \"decoded\", packet);\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\n }, {\n key: \"decodeString\",\n value: function decodeString(str) {\n var i = 0; // look up type\n\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n } // look up attachments if type binary\n\n\n if (p.type === PacketType.BINARY_EVENT || p.type === PacketType.BINARY_ACK) {\n var start = i + 1;\n\n while (str.charAt(++i) !== \"-\" && i != str.length) {}\n\n var buf = str.substring(start, i);\n\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n\n p.attachments = Number(buf);\n } // look up namespace (if any)\n\n\n if (\"/\" === str.charAt(i + 1)) {\n var _start = i + 1;\n\n while (++i) {\n var c = str.charAt(i);\n if (\",\" === c) break;\n if (i === str.length) break;\n }\n\n p.nsp = str.substring(_start, i);\n } else {\n p.nsp = \"/\";\n } // look up id\n\n\n var next = str.charAt(i + 1);\n\n if (\"\" !== next && Number(next) == next) {\n var _start2 = i + 1;\n\n while (++i) {\n var _c = str.charAt(i);\n\n if (null == _c || Number(_c) != _c) {\n --i;\n break;\n }\n\n if (i === str.length) break;\n }\n\n p.id = Number(str.substring(_start2, i + 1));\n } // look up json data\n\n\n if (str.charAt(++i)) {\n var payload = this.tryParse(str.substr(i));\n\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n } else {\n throw new Error(\"invalid payload\");\n }\n }\n\n return p;\n }\n }, {\n key: \"tryParse\",\n value: function tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n } catch (e) {\n return false;\n }\n }\n }, {\n key: \"destroy\",\n value:\n /**\n * Deallocates a parser's resources\n */\n function destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n }], [{\n key: \"isPayloadValid\",\n value: function isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return _typeof(payload) === \"object\";\n\n case PacketType.DISCONNECT:\n return payload === undefined;\n\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || _typeof(payload) === \"object\";\n\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n }]);\n\n return Decoder;\n }(Emitter);\n /**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\n\n var BinaryReconstructor = /*#__PURE__*/function () {\n function BinaryReconstructor(packet) {\n _classCallCheck(this, BinaryReconstructor);\n\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n\n\n _createClass(BinaryReconstructor, [{\n key: \"takeBinaryData\",\n value: function takeBinaryData(binData) {\n this.buffers.push(binData);\n\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n var packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n\n }, {\n key: \"finishedReconstruction\",\n value: function finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n }]);\n\n return BinaryReconstructor;\n }();\n\n var parser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n protocol: protocol,\n get PacketType () { return PacketType; },\n Encoder: Encoder,\n Decoder: Decoder\n });\n\n function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n }\n\n /**\n * Internal events.\n * These events can't be emitted by the user.\n */\n\n var RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1\n });\n /**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\n\n var Socket = /*#__PURE__*/function (_Emitter) {\n _inherits(Socket, _Emitter);\n\n var _super = _createSuper(Socket);\n\n /**\n * `Socket` constructor.\n */\n function Socket(io, nsp, opts) {\n var _this;\n\n _classCallCheck(this, Socket);\n\n _this = _super.call(this);\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n\n _this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n\n _this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n\n _this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n\n _this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n\n _this._queue = [];\n _this.ids = 0;\n _this.acks = {};\n _this.flags = {};\n _this.io = io;\n _this.nsp = nsp;\n\n if (opts && opts.auth) {\n _this.auth = opts.auth;\n }\n\n _this._opts = _extends({}, opts);\n if (_this.io._autoConnect) _this.open();\n return _this;\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n\n\n _createClass(Socket, [{\n key: \"disconnected\",\n get: function get() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n\n }, {\n key: \"subEvents\",\n value: function subEvents() {\n if (this.subs) return;\n var io = this.io;\n this.subs = [on(io, \"open\", this.onopen.bind(this)), on(io, \"packet\", this.onpacket.bind(this)), on(io, \"error\", this.onerror.bind(this)), on(io, \"close\", this.onclose.bind(this))];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n\n }, {\n key: \"active\",\n get: function get() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n\n }, {\n key: \"connect\",\n value: function connect() {\n if (this.connected) return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"]) this.io.open(); // ensure open\n\n if (\"open\" === this.io._readyState) this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n\n }, {\n key: \"open\",\n value: function open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n\n }, {\n key: \"send\",\n value: function send() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n\n }, {\n key: \"emit\",\n value: function emit(ev) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n args.unshift(ev);\n\n if (this._opts.retries && !this.flags.fromQueue && !this.flags[\"volatile\"]) {\n this._addToQueue(args);\n\n return this;\n }\n\n var packet = {\n type: PacketType.EVENT,\n data: args\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false; // event ack callback\n\n if (\"function\" === typeof args[args.length - 1]) {\n var id = this.ids++;\n var ack = args.pop();\n\n this._registerAckCallback(id, ack);\n\n packet.id = id;\n }\n\n var isTransportWritable = this.io.engine && this.io.engine.transport && this.io.engine.transport.writable;\n var discardPacket = this.flags[\"volatile\"] && (!isTransportWritable || !this.connected);\n\n if (discardPacket) ; else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n\n }, {\n key: \"_registerAckCallback\",\n value: function _registerAckCallback(id, ack) {\n var _this2 = this;\n\n var _a;\n\n var timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n } // @ts-ignore\n\n\n var timer = this.io.setTimeoutFn(function () {\n delete _this2.acks[id];\n\n for (var i = 0; i < _this2.sendBuffer.length; i++) {\n if (_this2.sendBuffer[i].id === id) {\n _this2.sendBuffer.splice(i, 1);\n }\n }\n\n ack.call(_this2, new Error(\"operation has timed out\"));\n }, timeout);\n\n this.acks[id] = function () {\n // @ts-ignore\n _this2.io.clearTimeoutFn(timer);\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n ack.apply(_this2, [null].concat(args));\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n\n }, {\n key: \"emitWithAck\",\n value: function emitWithAck(ev) {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n // the timeout flag is optional\n var withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise(function (resolve, reject) {\n args.push(function (arg1, arg2) {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n } else {\n return resolve(arg1);\n }\n });\n\n _this3.emit.apply(_this3, [ev].concat(args));\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n\n }, {\n key: \"_addToQueue\",\n value: function _addToQueue(args) {\n var _this4 = this;\n\n var ack;\n\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n\n var packet = {\n id: this.ids++,\n tryCount: 0,\n pending: false,\n args: args,\n flags: _extends({\n fromQueue: true\n }, this.flags)\n };\n args.push(function (err) {\n if (packet !== _this4._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n\n var hasError = err !== null;\n\n if (hasError) {\n if (packet.tryCount > _this4._opts.retries) {\n _this4._queue.shift();\n\n if (ack) {\n ack(err);\n }\n }\n } else {\n _this4._queue.shift();\n\n if (ack) {\n for (var _len5 = arguments.length, responseArgs = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n responseArgs[_key5 - 1] = arguments[_key5];\n }\n\n ack.apply(void 0, [null].concat(responseArgs));\n }\n }\n\n packet.pending = false;\n return _this4._drainQueue();\n });\n\n this._queue.push(packet);\n\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @private\n */\n\n }, {\n key: \"_drainQueue\",\n value: function _drainQueue() {\n if (this._queue.length === 0) {\n return;\n }\n\n var packet = this._queue[0];\n\n if (packet.pending) {\n return;\n }\n\n packet.pending = true;\n packet.tryCount++;\n var currentId = this.ids;\n this.ids = packet.id; // the same id is reused for consecutive retries, in order to allow deduplication on the server side\n\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n this.ids = currentId; // restore offset\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n\n }, {\n key: \"packet\",\n value: function packet(_packet) {\n _packet.nsp = this.nsp;\n\n this.io._packet(_packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n\n }, {\n key: \"onopen\",\n value: function onopen() {\n var _this5 = this;\n\n if (typeof this.auth == \"function\") {\n this.auth(function (data) {\n _this5._sendConnectPacket(data);\n });\n } else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n\n }, {\n key: \"_sendConnectPacket\",\n value: function _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid ? _extends({\n pid: this._pid,\n offset: this._lastOffset\n }, data) : data\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n\n }, {\n key: \"onerror\",\n value: function 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 description\n * @private\n */\n\n }, {\n key: \"onclose\",\n value: function onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n\n }, {\n key: \"onpacket\",\n value: function onpacket(packet) {\n var sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace) return;\n\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\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/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n\n break;\n\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n\n case PacketType.CONNECT_ERROR:\n this.destroy();\n var err = new Error(packet.data.message); // @ts-ignore\n\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 packet\n * @private\n */\n\n }, {\n key: \"onevent\",\n value: function onevent(packet) {\n var args = packet.data || [];\n\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n this.emitEvent(args);\n } else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n }, {\n key: \"emitEvent\",\n value: function emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n var listeners = this._anyListeners.slice();\n\n var _iterator = _createForOfIteratorHelper(listeners),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var listener = _step.value;\n listener.apply(this, args);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n _get(_getPrototypeOf(Socket.prototype), \"emit\", this).apply(this, args);\n\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n\n }, {\n key: \"ack\",\n value: function ack(id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\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\n }, {\n key: \"onack\",\n value: function onack(packet) {\n var ack = this.acks[packet.id];\n\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n\n }, {\n key: \"onconnect\",\n value: function onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n\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\n }, {\n key: \"emitBuffered\",\n value: function emitBuffered() {\n var _this6 = this;\n\n this.receiveBuffer.forEach(function (args) {\n return _this6.emitEvent(args);\n });\n this.receiveBuffer = [];\n this.sendBuffer.forEach(function (packet) {\n _this6.notifyOutgoingListeners(packet);\n\n _this6.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n\n }, {\n key: \"ondisconnect\",\n value: function ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach(function (subDestroy) {\n return subDestroy();\n });\n this.subs = undefined;\n }\n\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.connected) {\n this.packet({\n type: PacketType.DISCONNECT\n });\n } // remove socket from pool\n\n\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n\n }, {\n key: \"close\",\n value: function close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n\n }, {\n key: \"compress\",\n value: function compress(_compress) {\n this.flags.compress = _compress;\n return this;\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 * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n\n }, {\n key: \"volatile\",\n get: function get() {\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 elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.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 * @returns self\n */\n\n }, {\n key: \"timeout\",\n value: function timeout(_timeout) {\n this.flags.timeout = _timeout;\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.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n\n }, {\n key: \"onAny\",\n value: function onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n\n this._anyListeners.push(listener);\n\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 * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n\n }, {\n key: \"prependAny\",\n value: function prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n\n this._anyListeners.unshift(listener);\n\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n\n }, {\n key: \"offAny\",\n value: function offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n\n if (listener) {\n var listeners = this._anyListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n } else {\n this._anyListeners = [];\n }\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 manipulated,\n * e.g. to remove listeners.\n */\n\n }, {\n key: \"listenersAny\",\n value: function listenersAny() {\n return this._anyListeners || [];\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.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n\n }, {\n key: \"onAnyOutgoing\",\n value: function onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n\n this._anyOutgoingListeners.push(listener);\n\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 * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n\n }, {\n key: \"prependAnyOutgoing\",\n value: function prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n\n this._anyOutgoingListeners.unshift(listener);\n\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n\n }, {\n key: \"offAnyOutgoing\",\n value: function offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n\n if (listener) {\n var listeners = this._anyOutgoingListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n } else {\n this._anyOutgoingListeners = [];\n }\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 manipulated,\n * e.g. to remove listeners.\n */\n\n }, {\n key: \"listenersAnyOutgoing\",\n value: function listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n\n }, {\n key: \"notifyOutgoingListeners\",\n value: function notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n var listeners = this._anyOutgoingListeners.slice();\n\n var _iterator2 = _createForOfIteratorHelper(listeners),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var listener = _step2.value;\n listener.apply(this, packet.data);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }]);\n\n return Socket;\n }(Emitter);\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 */\n function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 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 {Number}\n * @api public\n */\n\n Backoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n\n return Math.min(ms, this.max) | 0;\n };\n /**\n * Reset the number of attempts.\n *\n * @api public\n */\n\n\n Backoff.prototype.reset = function () {\n this.attempts = 0;\n };\n /**\n * Set the minimum duration\n *\n * @api public\n */\n\n\n Backoff.prototype.setMin = function (min) {\n this.ms = min;\n };\n /**\n * Set the maximum duration\n *\n * @api public\n */\n\n\n Backoff.prototype.setMax = function (max) {\n this.max = max;\n };\n /**\n * Set the jitter\n *\n * @api public\n */\n\n\n Backoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n };\n\n var Manager = /*#__PURE__*/function (_Emitter) {\n _inherits(Manager, _Emitter);\n\n var _super = _createSuper(Manager);\n\n function Manager(uri, opts) {\n var _this;\n\n _classCallCheck(this, Manager);\n\n var _a;\n\n _this = _super.call(this);\n _this.nsps = {};\n _this.subs = [];\n\n if (uri && \"object\" === _typeof(uri)) {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n _this.opts = opts;\n installTimerFunctions(_assertThisInitialized(_this), opts);\n\n _this.reconnection(opts.reconnection !== false);\n\n _this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n\n _this.reconnectionDelay(opts.reconnectionDelay || 1000);\n\n _this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n\n _this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n\n _this.backoff = new Backoff({\n min: _this.reconnectionDelay(),\n max: _this.reconnectionDelayMax(),\n jitter: _this.randomizationFactor()\n });\n\n _this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n\n _this._readyState = \"closed\";\n _this.uri = uri;\n\n var _parser = opts.parser || parser;\n\n _this.encoder = new _parser.Encoder();\n _this.decoder = new _parser.Decoder();\n _this._autoConnect = opts.autoConnect !== false;\n if (_this._autoConnect) _this.open();\n return _this;\n }\n\n _createClass(Manager, [{\n key: \"reconnection\",\n value: function reconnection(v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n }, {\n key: \"reconnectionAttempts\",\n value: function reconnectionAttempts(v) {\n if (v === undefined) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n }, {\n key: \"reconnectionDelay\",\n value: function reconnectionDelay(v) {\n var _a;\n\n if (v === undefined) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n }, {\n key: \"randomizationFactor\",\n value: function randomizationFactor(v) {\n var _a;\n\n if (v === undefined) 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 }, {\n key: \"reconnectionDelayMax\",\n value: function reconnectionDelayMax(v) {\n var _a;\n\n if (v === undefined) 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 }, {\n key: \"timeout\",\n value: function timeout(v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n\n }, {\n key: \"maybeReconnectOnOpen\",\n value: function maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps 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 * @return self\n * @public\n */\n\n }, {\n key: \"open\",\n value: function open(fn) {\n var _this2 = this;\n\n if (~this._readyState.indexOf(\"open\")) return this;\n this.engine = new Socket$1(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false; // emit `open`\n\n var openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n }); // emit `error`\n\n var errorSub = on(socket, \"error\", function (err) {\n self.cleanup();\n self._readyState = \"closed\";\n\n _this2.emitReserved(\"error\", err);\n\n if (fn) {\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n if (false !== this._timeout) {\n var timeout = this._timeout;\n\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n } // set timer\n\n\n var timer = this.setTimeoutFn(function () {\n openSubDestroy();\n socket.close(); // @ts-ignore\n\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n\n if (this.opts.autoUnref) {\n timer.unref();\n }\n\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n\n }, {\n key: \"connect\",\n value: function connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n\n }, {\n key: \"onopen\",\n value: function onopen() {\n // clear old subs\n this.cleanup(); // mark as open\n\n this._readyState = \"open\";\n this.emitReserved(\"open\"); // add new subs\n\n var socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(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 ping.\n *\n * @private\n */\n\n }, {\n key: \"onping\",\n value: function onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n\n }, {\n key: \"ondata\",\n value: function ondata(data) {\n try {\n this.decoder.add(data);\n } catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n\n }, {\n key: \"ondecoded\",\n value: function ondecoded(packet) {\n var _this3 = this;\n\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(function () {\n _this3.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n\n }, {\n key: \"onerror\",\n value: function 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\n }, {\n key: \"socket\",\n value: function socket(nsp, opts) {\n var socket = this.nsps[nsp];\n\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n\n if (this._autoConnect) {\n socket.connect();\n }\n\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy(socket) {\n var nsps = Object.keys(this.nsps);\n\n for (var _i = 0, _nsps = nsps; _i < _nsps.length; _i++) {\n var nsp = _nsps[_i];\n var _socket = this.nsps[nsp];\n\n if (_socket.active) {\n return;\n }\n }\n\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n\n }, {\n key: \"_packet\",\n value: function _packet(packet) {\n var encodedPackets = this.encoder.encode(packet);\n\n for (var 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\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n this.subs.forEach(function (subDestroy) {\n return subDestroy();\n });\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n\n }, {\n key: \"_close\",\n value: function _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine) this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n\n }, {\n key: \"onclose\",\n value: function onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n var _this4 = this;\n\n if (this._reconnecting || this.skipReconnect) return this;\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n this._reconnecting = true;\n var timer = this.setTimeoutFn(function () {\n if (self.skipReconnect) return;\n\n _this4.emitReserved(\"reconnect_attempt\", self.backoff.attempts); // check again for the case socket closed in above events\n\n\n if (self.skipReconnect) return;\n self.open(function (err) {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n\n _this4.emitReserved(\"reconnect_error\", err);\n } else {\n self.onreconnect();\n }\n });\n }, delay);\n\n if (this.opts.autoUnref) {\n timer.unref();\n }\n\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n\n }, {\n key: \"onreconnect\",\n value: function onreconnect() {\n var attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n }]);\n\n return Manager;\n }(Emitter);\n\n /**\n * Managers cache.\n */\n\n var cache = {};\n\n function lookup(uri, opts) {\n if (_typeof(uri) === \"object\") {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n var parsed = url(uri, opts.path || \"/socket.io\");\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n var newConnection = opts.forceNew || opts[\"force new connection\"] || false === opts.multiplex || sameNamespace;\n var io;\n\n if (newConnection) {\n io = new Manager(source, opts);\n } else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n\n io = cache[id];\n }\n\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n\n return io.socket(parsed.path, opts);\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\n\n\n _extends(lookup, {\n Manager: Manager,\n Socket: Socket,\n io: lookup,\n connect: lookup\n });\n\n return lookup;\n\n}));\n//# sourceMappingURL=socket.io.js.map\n","import { Descriptor } from \"hybrids\";\nimport { Socket } from \"socket.io-client\";\n\n// @ts-ignore\nimport io from \"socket.io-client/dist/socket.io.js\";\n\ninterface SocketEl {\n socketUrl: string;\n accessToken: string;\n}\n\nexport default function socketio(\n fn: (host: E, socket: Socket) => void\n): Descriptor {\n return {\n get: (host, lastValue) => {\n if (lastValue) lastValue.disconnect();\n\n const { socketUrl, accessToken } = host;\n\n if (socketUrl && accessToken) {\n const socket: Socket = io(host.socketUrl, {\n rejectUnauthorized: false,\n auth: { accessToken: host.accessToken },\n });\n\n fn(host, socket);\n\n return socket;\n }\n\n return null;\n },\n connect: (host, key) => {\n return () => {\n host[key]?.disconnect();\n };\n },\n observe() {},\n };\n}\n","import { Model, store } from \"hybrids\";\nimport { get } from \"~/utils/api\";\nimport User from \"./User\";\n\ninterface UserDetails {\n id: string;\n fullDescription: string;\n follows: User[];\n type: string;\n}\n\nconst UserDetails: Model = {\n id: true,\n fullDescription: \"\",\n follows: [User],\n [store.connect]: (id) => get(\"/users/:id/details\", id),\n type: \"\",\n};\n\nexport default UserDetails;\n","import { Model, store } from \"hybrids\";\n\nimport Session from \"./Session\";\nimport UserDetails from \"./UserDetails\";\nimport User from \"./User\";\nimport { post } from \"~/utils/api\";\n\ninterface UserFollow {\n id: string;\n user: User;\n}\n\nasync function clearDetails() {\n const session = await store.resolve(store.get(Session));\n store.clear(store.get(UserDetails, session.user.id));\n}\n\nconst UserFollow: Model = {\n id: true,\n user: User,\n [store.connect]: {\n async get(id) {\n const { user } = await store.resolve(store.get(Session));\n const details = await store.resolve(store.get(UserDetails, user.id));\n\n const followUser = details.follows.find((u) => u.id === id);\n if (followUser) {\n return {\n id: followUser.id,\n user: followUser,\n };\n }\n\n return null;\n },\n async set(id, values) {\n if (values) {\n await post(\"/follows\", { id: values.user.id });\n clearDetails();\n return { ...values, id: values.user.id };\n }\n\n await post(\"/follows/delete\", null, id);\n clearDetails();\n return null;\n },\n },\n};\n\nexport default UserFollow;\n","import { Model, store } from \"hybrids\";\nimport { get } from \"~/utils/api\";\n\ninterface Card {\n id: string;\n name: string;\n expirationMonth: string;\n expirationYear: string;\n last4: string;\n}\n\ninterface PaymentMethods {\n id: string;\n stripe: {\n key: string;\n account: string;\n country: string;\n cards: Card[];\n };\n paypal: {\n clientId: string;\n env: string;\n };\n currency: string;\n\n // computed\n disabled: boolean;\n}\n\nconst Card: Model = {\n id: true,\n name: \"\",\n expirationMonth: \"\",\n expirationYear: \"\",\n last4: \"\",\n};\n\nconst PaymentMethods: Model = {\n id: true,\n stripe: {\n key: \"\",\n account: \"\",\n country: \"US\",\n cards: [Card],\n },\n paypal: {\n clientId: \"\",\n env: \"\",\n },\n currency: \"\",\n\n // computed\n disabled: (methods) => !methods.stripe.account && !methods.paypal.clientId,\n\n [store.connect]: (id) => get(\"/payment_methods\", { ownerId: id as string }),\n};\n\nexport default PaymentMethods;\n"],"names":["exports","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","_extends","assign","bind","arguments","source","hasOwnProperty","call","apply","this","_inherits","subClass","superClass","create","value","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_construct","Parent","args","Class","a","push","Function","_isNativeFunction","fn","toString","indexOf","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","result","Super","NewTarget","_superPropBase","object","property","_get","receiver","base","desc","getOwnPropertyDescriptor","_unsupportedIterableToArray","minLen","_arrayLikeToArray","n","slice","name","Array","from","test","arr","len","arr2","_createForOfIteratorHelper","allowArrayLike","it","isArray","F","s","done","f","err","normalCompletion","didErr","step","next","return","PACKET_TYPES","PACKET_TYPES_REVERSE","keys","forEach","ERROR_PACKET","type","data","withNativeBlob$1","Blob","withNativeArrayBuffer$2","ArrayBuffer","isView$1","isView","buffer","encodePacket","_ref","supportsBinary","callback","encodeBlobAsBase64","fileReader","FileReader","onload","content","split","readAsDataURL","chars","lookup$1","Uint8Array","i$1","charCodeAt","decode$1","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","bytes","withNativeArrayBuffer$1","decodePacket","encodedPacket","binaryType","mapBinary","charAt","decodeBase64Packet","substring","decoded","SEPARATOR","String","fromCharCode","encodePayload","packets","encodedPackets","count","packet","join","decodePayload","encodedPayload","decodedPacket","protocol$1","Emitter","mixin","on","addEventListener","event","_callbacks","once","off","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","emit","emitReserved","listeners","hasListeners","globalThisShim","window","pick","_len","attr","_key","reduce","acc","k","NATIVE_SET_TIMEOUT","setTimeout","NATIVE_CLEAR_TIMEOUT","clearTimeout","installTimerFunctions","opts","useNativeTimers","setTimeoutFn","clearTimeoutFn","BASE64_OVERHEAD","byteLength","utf8Length","Math","ceil","size","str","c","l","prev","TransportError","_Error","_super","reason","description","context","_this","Error","Transport","_Emitter","_super2","_this2","query","socket","readyState","doOpen","doClose","onClose","write","onPacket","details","onPause","alphabet","map","seed","encode$1","num","encoded","floor","yeast","now","Date","encode","encodeURIComponent","decode","qs","qry","pairs","pair","decodeURIComponent","XMLHttpRequest","hasCORS","XHR","xdomain","concat","empty","hasXHR2","responseType","Polling","_Transport","polling","location","isSSL","protocol","port","xd","hostname","xs","secure","forceBase64","poll","pause","total","doPoll","_this3","onOpen","_this4","close","_this5","doWrite","schema","timestampRequests","timestampParam","sid","b64","Number","encodedQuery","path","Request","uri","_this6","req","request","method","xhrStatus","onError","_this7","onData","pollXhr","_this8","async","_this9","xscheme","xhr","open","extraHeaders","setDisableHeaderCheck","setRequestHeader","withCredentials","requestTimeout","timeout","onreadystatechange","status","onLoad","send","document","index","requestsCount","requests","cleanup","fromError","abort","responseText","unloadHandler","attachEvent","nextTick","Promise","resolve","then","WebSocket","MozWebSocket","usingBrowserWebSocket","defaultBinaryType","isReactNative","navigator","product","toLowerCase","transports","websocket","WS","check","protocols","headers","ws","addEventListeners","onopen","autoUnref","_socket","unref","onclose","closeEvent","onmessage","ev","onerror","_loop","lastPacket","re","parts","parse","src","b","replace","m","exec","host","authority","ipv6uri","pathNames","queryKey","regx","names","$0","$1","$2","Socket$1","Socket","writeBuffer","prevBufferLen","agent","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","perMessageDeflate","threshold","transportOptions","closeOnBeforeunload","id","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","beforeunloadEventListener","transport","offlineEventListener","EIO","priorWebsocketSuccess","createTransport","shift","setTransport","onDrain","failed","onTransportOpen","msg","upgrading","flush","freezeTransport","error","onTransportClose","onupgrade","to","probe","onHandshake","JSON","resetPingTimeout","sendPacket","code","filterUpgrades","maxPayload","getWritablePackets","payloadSize","options","compress","cleanupAndClose","waitForUpgrade","filteredUpgrades","j","url","loc","href","withNativeArrayBuffer","withNativeBlob","withNativeFile","File","isBinary","hasBinary","toJSON","deconstructPacket","buffers","packetData","pack","_deconstructPacket","attachments","placeholder","_placeholder","newData","_newData","reconstructPacket","_reconstructPacket","PacketType","Encoder","replacer","EVENT","ACK","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","stringify","deconstruction","unshift","Decoder","reviver","reconstructor","isBinaryEvent","decodeString","BinaryReconstructor","takeBinaryData","start","buf","_start","_start2","_c","payload","tryParse","substr","isPayloadValid","finishedReconstruction","CONNECT","DISCONNECT","CONNECT_ERROR","reconPack","binData","parser","freeze","RESERVED_EVENTS","connect","connect_error","disconnect","disconnecting","newListener","io","connected","recovered","receiveBuffer","sendBuffer","_queue","ids","acks","flags","auth","_opts","_autoConnect","subs","onpacket","subEvents","_readyState","_len2","_key2","retries","fromQueue","_addToQueue","ack","pop","_registerAckCallback","isTransportWritable","engine","notifyOutgoingListeners","_a","ackTimeout","timer","_len3","_key3","_len4","_key4","withErr","reject","arg1","arg2","tryCount","pending","_len5","responseArgs","_key5","_drainQueue","currentId","_packet","_sendConnectPacket","_pid","pid","offset","_lastOffset","onconnect","onevent","onack","ondisconnect","destroy","message","emitEvent","_anyListeners","_step","_iterator","sent","_len6","_key6","emitBuffered","subDestroy","_compress","_timeout","listener","_anyOutgoingListeners","_step2","_iterator2","Backoff","ms","min","max","factor","jitter","attempts","duration","pow","rand","random","deviation","reset","setMin","setMax","setJitter","Manager","nsps","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","_parser","encoder","decoder","autoConnect","v","_reconnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_reconnecting","reconnect","skipReconnect","openSubDestroy","errorSub","maybeReconnectOnOpen","onping","ondata","ondecoded","add","_i","_nsps","active","_close","delay","onreconnect","attempt","cache","lookup","parsed","sameNamespace","forceNew","multiplex","factory","socketio","lastValue","socketUrl","accessToken","observe","UserDetails","fullDescription","follows","User","store","clearDetails","session","Session","clear","user","UserFollow","followUser","find","u","values","post","PaymentMethods","stripe","account","country","cards","expirationMonth","expirationYear","last4","paypal","clientId","env","currency","disabled","methods","ownerId"],"mappings":"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"}