@voicenter-team/events-sdk 0.0.91 → 0.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"voicenter-events-sdk.umd.js","sources":["../node_modules/crypt/crypt.js","../node_modules/charenc/charenc.js","../node_modules/is-buffer/index.js","../node_modules/md5/md5.js","../src/enum/events-sdk.enum.ts","../src/enum/auth.enum.ts","../src/classes/storage/storage.class.ts","../src/classes/auth/auth.class.ts","../src/classes/events-sdk/events-sdk-default-options.ts","../src/classes/socket-io/versions/v1_3_7.js","../src/classes/socket-io/versions/index.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/CallStatusEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/CallTypeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ConnectionStatusEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DialerTypeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DirectionEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DoNotCallMeStatusCodeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/EventsEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ExtensionEventReasonEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ExtensionHangupCauseEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/QueueEventReasonEnum.ts","../src/classes/socket-io/events-handler.ts","../src/enum/socket.enum.ts","../src/classes/socket-io/socket-io.class.ts","../../socketio-storage-logger/dist/storage-logger.es.js","../src/classes/logger/logger.class.ts","../src/classes/event-emitter/event-emitter.class.ts","../src/classes/events-sdk/events-sdk.class.ts"],"sourcesContent":["(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","export enum DebugOption {\n BOOTSTRAP = 'bootstrap',\n DEBUG_EXTENSIONS = 'debugExtensions',\n DEBUG_QUEUE = 'debugQueue',\n DEBUG_DIALER = 'debugDialer',\n FULL = 'full',\n}\n\nexport enum ServerParameter {\n MAIN = 'main',\n NEXT = 'next'\n}\n","export enum LoginType {\n USER = 'User',\n TOKEN = 'Token'\n}","export class StorageClass {\n public static getSessionStorageDataByKey <T extends object> (key: string, doParse?: true): Promise<T | undefined>\n public static getSessionStorageDataByKey (key: string, doParse?: false): Promise<string | undefined>\n public static async getSessionStorageDataByKey (key: string, doParse = true) {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n const loginSessionKey = await chrome.storage.session.get(key)\n\n if (loginSessionKey[key]) {\n if (doParse) {\n return JSON.parse(loginSessionKey[key])\n } else {\n return loginSessionKey[key]\n }\n }\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.getItem === 'function') {\n const loginSessionKey = window.sessionStorage.getItem(key)\n\n if (loginSessionKey) {\n if (doParse) {\n return JSON.parse(loginSessionKey)\n } else {\n return loginSessionKey\n }\n }\n }\n }\n\n public static async updateSessionStorageKey <T> (key: string, storageData: Partial<T>) {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n await chrome.storage.session.set({\n [key]: JSON.stringify(storageData)\n })\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.setItem === 'function') {\n window.sessionStorage.setItem(key, JSON.stringify(storageData))\n }\n }\n\n public static clearSessionStorage () {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n chrome.storage.session.clear()\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.clear === 'function') {\n window.sessionStorage.clear()\n }\n }\n}\n","import md5 from 'md5'\n\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport {\n ExternalLoginNewStackResponseData,\n ExternalLoginOldStackResponseData,\n ExternalLoginResponse,\n LoginSessionData,\n LoginSessionPayload,\n Settings\n} from '@/types/auth'\nimport { LoginType } from '@/enum/auth.enum'\nimport { StorageClass } from '@/classes/storage/storage.class'\n\nclass AuthClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n\n this.storageKey = ''\n }\n\n private delay = 1000\n public lastLoginTimestamp: number | undefined\n public token: string | undefined\n private refreshToken: string | undefined\n private tokenExpiry: Date | undefined\n\n private storageKey: string\n\n public async login () {\n const payload: LoginSessionPayload = {\n token: this.eventsSdkClass.options.token && this.eventsSdkClass.options.token,\n email: this.eventsSdkClass.options.email && this.eventsSdkClass.options.email,\n password: this.eventsSdkClass.options.password && this.eventsSdkClass.options.password\n }\n\n this.storageKey = md5(JSON.stringify({\n ...this.eventsSdkClass.options,\n loggerSocketConnection: null\n }, this.eventsSdkClass.getCircularReplacer()))\n\n if (this.lastLoginTimestamp && this.lastLoginTimestamp + this.delay > new Date().getTime()) {\n return\n }\n\n this.updateLastLoginTimestamp()\n\n const loginSessionData = await this.checkLoginStatus(this.storageKey)\n\n if (!loginSessionData) {\n StorageClass.clearSessionStorage()\n\n return await this.userLoginFunction(payload, this.storageKey, this.eventsSdkClass.options.loginType)\n }\n\n return loginSessionData\n }\n\n public updateLastLoginTimestamp () {\n this.lastLoginTimestamp = new Date().getTime()\n }\n\n private async checkLoginStatus (key: string): Promise<LoginSessionData | undefined> {\n const loginSessionData = await StorageClass.getSessionStorageDataByKey<LoginSessionData>(key)\n\n if (!loginSessionData) {\n return\n }\n\n return loginSessionData\n }\n\n private async userLoginFunction (\n payload: LoginSessionPayload,\n key: string,\n loginType: LoginType,\n ) {\n let externalLoginResponse\n\n let settings\n\n let loginSessionData: Partial<LoginSessionData>\n\n if (this.eventsSdkClass.options.isNewStack) {\n externalLoginResponse = await this.externalLogin<ExternalLoginNewStackResponseData>(\n this.eventsSdkClass.options.loginUrl,\n payload,\n loginType,\n )\n\n settings = await this.getSettings(externalLoginResponse.Data.AccessToken)\n\n loginSessionData = {\n ...externalLoginResponse.Data,\n ...settings\n }\n } else {\n externalLoginResponse = await this.externalLogin<ExternalLoginOldStackResponseData>(\n this.eventsSdkClass.options.loginUrl,\n payload,\n loginType,\n )\n\n loginSessionData = {\n ...externalLoginResponse.Data.Socket,\n }\n }\n\n await StorageClass.updateSessionStorageKey(key, loginSessionData)\n\n return loginSessionData\n }\n\n public onLoginResponse (loginSessionData: Partial<LoginSessionData>) {\n if (!this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {\n this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {\n this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (loginSessionData.MonitorList && loginSessionData.MonitorList.length) {\n this.eventsSdkClass.servers = [ ...loginSessionData.MonitorList ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (!this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.servers.length && loginSessionData.URLList) {\n this.eventsSdkClass.URLList = loginSessionData.URLList\n }\n if (!this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.URLList.length && !this.eventsSdkClass.servers.length) {\n throw new Error('Socket servers not defined')\n }\n if (this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.servers.length) {\n throw new Error('Socket servers not defined')\n }\n if (this.eventsSdkClass.server) {\n this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${this.eventsSdkClass.server.Version}`)\n }\n if (!this.eventsSdkClass.server && this.eventsSdkClass.URLList.length) {\n this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${loginSessionData.Version}`)\n }\n if (loginSessionData.IdentityCode) {\n this.token = loginSessionData.IdentityCode\n this.eventsSdkClass.connect(ServerParameter.MAIN)\n }\n if (loginSessionData.Token) {\n this.token = loginSessionData.Token\n this.eventsSdkClass.connect(ServerParameter.MAIN)\n }\n if (loginSessionData.RefreshToken && loginSessionData.IdentityCodeExpiry && this.eventsSdkClass.options.loginType === LoginType.USER) {\n this.refreshToken = loginSessionData.RefreshToken\n this.tokenExpiry = loginSessionData.IdentityCodeExpiry\n this.handleTokenExpiry()\n }\n if (loginSessionData.RefreshToken && loginSessionData.TokenExpiry && this.normalizeLoginType(this.eventsSdkClass.options.loginType) === LoginType.USER) {\n this.refreshToken = loginSessionData.RefreshToken\n this.tokenExpiry = loginSessionData.TokenExpiry\n this.handleTokenExpiry()\n }\n }\n\n public handleTokenExpiry () {\n if (!this.eventsSdkClass.options.refreshTokenUrl) {\n throw new Error('refreshTokenUrl not provided')\n }\n\n let date: Date\n\n if (this.tokenExpiry) {\n date = new Date(this.tokenExpiry)\n } else {\n return\n }\n\n const timeout = date.getTime() - new Date().getTime() - 5000 // 5 seconds before expire\n\n const maxAllowedTimeout = Math.min(timeout, 0x7FFFFFFF)\n\n setTimeout(\n async () => {\n if (this.refreshToken) {\n this.eventsSdkClass.socketIoClass.closeAllConnections()\n\n let settings\n\n let loginSessionData: Partial<LoginSessionData>\n\n if (this.eventsSdkClass.options.isNewStack) {\n const refreshTokenResponse = await this.externalRefreshToken<ExternalLoginNewStackResponseData>(\n this.eventsSdkClass.options.refreshTokenUrl,\n this.refreshToken\n )\n\n settings = await this.getSettings(refreshTokenResponse.Data.AccessToken)\n\n loginSessionData = {\n ...refreshTokenResponse.Data,\n ...settings\n }\n } else {\n const refreshTokenResponse = await this.externalRefreshToken<ExternalLoginOldStackResponseData>(\n this.eventsSdkClass.options.refreshTokenUrl,\n this.refreshToken\n )\n\n loginSessionData = {\n ...refreshTokenResponse.Data.Socket,\n }\n }\n\n this.onLoginResponse(loginSessionData)\n\n await StorageClass.updateSessionStorageKey(this.storageKey, loginSessionData)\n }\n },\n maxAllowedTimeout)\n }\n\n private async externalLogin<T> (\n url: string,\n { password, token, email }: LoginSessionPayload,\n loginType: LoginType,\n ): Promise<ExternalLoginResponse<T>> {\n if (!url) {\n throw new Error('loginUrl not provided')\n }\n\n let body: string\n\n if (this.eventsSdkClass.options.isNewStack) {\n if (loginType === LoginType.TOKEN) {\n body = JSON.stringify({\n identityType: LoginType.TOKEN,\n token\n })\n } else {\n body = JSON.stringify({\n identityType: LoginType.USER,\n username: email,\n password,\n })\n }\n } else {\n if (this.eventsSdkClass.options.loginType === LoginType.TOKEN) {\n body = JSON.stringify({ token })\n\n url = `${url}/${LoginType.TOKEN}`\n } else {\n body = JSON.stringify({\n email,\n pin: password\n })\n\n url = `${url}/${LoginType.USER}`\n }\n }\n\n let statusCode\n\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body,\n })\n\n if (!res.ok && res.status === 400) {\n statusCode = 400\n\n throw new Error('Bad body request. Login type or isNewStack values not correct or not provided')\n }\n\n if (!res.ok && res.status === 401) {\n statusCode = 401\n\n throw new Error('Unauthorized. Invalid token provided')\n }\n\n if (!res.ok && res.status === 403) {\n statusCode = 403\n\n throw new Error('Forbidden. Identity token not provided or not valid')\n }\n\n const data = await res.json()\n\n if (data.error) {\n throw new Error(data.error)\n }\n return data\n } catch (error) {\n this.eventsSdkClass.loggerClass.loginError(loginType, statusCode, token, email)\n\n throw error\n }\n }\n\n private async getSettings (token: string): Promise<Settings> {\n try {\n if (!this.eventsSdkClass.options.getSettingsUrl) {\n throw new Error('getSettingsUrl not provided')\n }\n\n const res = await fetch(this.eventsSdkClass.options.getSettingsUrl, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n })\n\n if (!res.ok && res.status === 401) {\n throw new Error('Unauthorized. Access token not provided or not valid')\n }\n\n return res.json()\n } catch (error) {\n this.eventsSdkClass.loggerClass.getSettingsError(token, error as Error)\n\n throw error\n }\n }\n\n private async externalRefreshToken<T> (refreshTokenUrl: string, oldRefreshToken: string): Promise<ExternalLoginResponse<T>> {\n try {\n const res = await fetch(refreshTokenUrl, {\n method: 'GET',\n\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${oldRefreshToken}`\n }\n })\n return res.json()\n } catch (error) {\n this.eventsSdkClass.loggerClass.refreshTokenError(oldRefreshToken, refreshTokenUrl, error as Error)\n\n throw error\n }\n }\n\n private normalizeLoginType (loginType: string): string {\n return loginType.charAt(0).toUpperCase() + loginType.slice(1).toLowerCase()\n }\n}\n\nexport default AuthClass\n","import type { EventsSdkOptionsMain } from '@/classes/events-sdk/events-sdk.types'\n\nexport const eventsSdkDefaultOptions: EventsSdkOptionsMain = {\n isNewStack: false,\n loginUrl: 'https://loginapi.voicenter.co.il/monitorAPI/Login',\n refreshTokenUrl: 'https://loginapi.voicenter.co.il/monitorAPI/RefreshIdentityToken',\n forceNew: true,\n reconnectionDelay: 10000,\n timeout: 10000,\n keepAliveTimeout: 60000,\n protocol: 'https',\n useLogger: true,\n loggerServer: 'https://socketlog.voicenter.co',\n loggerConfig: {\n logToConsole: true,\n overloadGlobalConsole: false,\n system: 'events-sdk', // ws-connection (should be like a subSystem)\n socketEmitInterval: 10000,\n },\n loggerConnectOptions: {\n reconnection: false,\n reconnectionDelay: 5000,\n reconnectionAttempts: 10,\n perMessageDeflate: undefined,\n upgrade: false,\n transports: [ 'websocket' ],\n debug: false\n },\n}\n","/* eslint-disable */\nimport ws from 'ws'\n\nexport default function () {\n // Fix for react-native\n if (typeof window !== 'undefined') {\n if (typeof window.navigator === 'undefined' || typeof window.navigator.userAgent === 'undefined') {\n window.navigator.userAgent = 'react-native'\n }\n }\n\n // Fix for node.js usage\n if (typeof self === 'undefined' && typeof global === 'object') {\n global.self = global\n\n global.WebSocket = ws\n\n if (typeof self.navigator === 'undefined') {\n self.navigator = { userAgent: 'node' }\n }\n }\n\n var t;\n return function e(t, n, r) {\n function o(s, a) {\n if (!n[s]) {\n if (!t[s]) {\n var c = \"function\" == typeof require && require;\n if (!a && c) return c(s, !0);\n if (i) return i(s, !0);\n throw new Error(\"Cannot find module '\" + s + \"'\")\n }\n var p = n[s] = {exports: {}};\n t[s][0].call(p.exports, function (e) {\n var n = t[s][1][e];\n return o(n ? n : e)\n }, p, p.exports, e, t, n, r)\n }\n return n[s].exports\n }\n\n for (var i = \"function\" == typeof require && require, s = 0; s < r.length; s++) o(r[s]);\n return o\n }({\n 1: [function (t, e) {\n e.exports = t(\"./lib/\")\n }, {\"./lib/\": 2}],\n 2: [function (t, e, n) {\n function r(t, e) {\n \"object\" == typeof t && (e = t, t = void 0), e = e || {};\n var n, r = o(t), i = r.source, p = r.id;\n return e.forceNew || e[\"force new connection\"] || !1 === e.multiplex ? (a(\"ignoring socket cache for %s\", i), n = s(i, e)) : (c[p] || (a(\"new io instance for %s\", i), c[p] = s(i, e)), n = c[p]), n.socket(r.path)\n }\n\n var o = t(\"./url\"), i = t(\"socket.io-parser\"), s = t(\"./manager\"), a = t(\"debug\")(\"socket.io-client\");\n e.exports = n = r;\n var c = n.managers = {};\n n.protocol = i.protocol, n.connect = r, n.Manager = t(\"./manager\"), n.Socket = t(\"./socket\")\n }, {\"./manager\": 3, \"./socket\": 5, \"./url\": 6, debug: 10, \"socket.io-parser\": 44}],\n 3: [function (t, e) {\n function n(t, e) {\n return this instanceof n ? (t && \"object\" == typeof t && (e = t, t = void 0), e = e || {}, e.path = e.path || \"/socket.io\", this.nsps = {}, this.subs = [], this.opts = e, this.reconnection(e.reconnection !== !1), this.reconnectionAttempts(e.reconnectionAttempts || 1 / 0), this.reconnectionDelay(e.reconnectionDelay || 1e3), this.reconnectionDelayMax(e.reconnectionDelayMax || 5e3), this.randomizationFactor(e.randomizationFactor || .5), this.backoff = new f({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n }), this.timeout(null == e.timeout ? 2e4 : e.timeout), this.readyState = \"closed\", this.uri = t, this.connected = [], this.encoding = !1, this.packetBuffer = [], this.encoder = new s.Encoder, this.decoder = new s.Decoder, this.autoConnect = e.autoConnect !== !1, void (this.autoConnect && this.open())) : new n(t, e)\n }\n\n var r = (t(\"./url\"), t(\"engine.io-client\")), o = t(\"./socket\"), i = t(\"component-emitter\"),\n s = t(\"socket.io-parser\"), a = t(\"./on\"), c = t(\"component-bind\"),\n p = (t(\"object-component\"), t(\"debug\")(\"socket.io-client:manager\")), u = t(\"indexof\"), f = t(\"backo2\");\n e.exports = n, n.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var t in this.nsps) this.nsps[t].emit.apply(this.nsps[t], arguments)\n }, n.prototype.updateSocketIds = function () {\n for (var t in this.nsps) this.nsps[t].id = this.engine.id\n }, i(n.prototype), n.prototype.reconnection = function (t) {\n return arguments.length ? (this._reconnection = !!t, this) : this._reconnection\n }, n.prototype.reconnectionAttempts = function (t) {\n return arguments.length ? (this._reconnectionAttempts = t, this) : this._reconnectionAttempts\n }, n.prototype.reconnectionDelay = function (t) {\n return arguments.length ? (this._reconnectionDelay = t, this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay\n }, n.prototype.randomizationFactor = function (t) {\n return arguments.length ? (this._randomizationFactor = t, this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor\n }, n.prototype.reconnectionDelayMax = function (t) {\n return arguments.length ? (this._reconnectionDelayMax = t, this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax\n }, n.prototype.timeout = function (t) {\n return arguments.length ? (this._timeout = t, this) : this._timeout\n }, n.prototype.maybeReconnectOnOpen = function () {\n !this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect()\n }, n.prototype.open = n.prototype.connect = function (t) {\n if (p(\"readyState %s\", this.readyState), ~this.readyState.indexOf(\"open\")) return this;\n p(\"opening %s\", this.uri), this.engine = r(this.uri, this.opts);\n var e = this.engine, n = this;\n this.readyState = \"opening\", this.skipReconnect = !1;\n var o = a(e, \"open\", function () {\n n.onopen(), t && t()\n }), i = a(e, \"error\", function (e) {\n if (p(\"connect_error\"), n.cleanup(), n.readyState = \"closed\", n.emitAll(\"connect_error\", e), t) {\n var r = new Error(\"Connection error\");\n r.data = e, t(r)\n } else n.maybeReconnectOnOpen()\n });\n if (!1 !== this._timeout) {\n var s = this._timeout;\n p(\"connect attempt will timeout after %d\", s);\n var c = setTimeout(function () {\n p(\"connect attempt timed out after %d\", s), o.destroy(), e.close(), e.emit(\"error\", \"timeout\"), n.emitAll(\"connect_timeout\", s)\n }, s);\n this.subs.push({\n destroy: function () {\n clearTimeout(c)\n }\n })\n }\n return this.subs.push(o), this.subs.push(i), this\n }, n.prototype.onopen = function () {\n p(\"open\"), this.cleanup(), this.readyState = \"open\", this.emit(\"open\");\n var t = this.engine;\n this.subs.push(a(t, \"data\", c(this, \"ondata\"))), this.subs.push(a(this.decoder, \"decoded\", c(this, \"ondecoded\"))), this.subs.push(a(t, \"error\", c(this, \"onerror\"))), this.subs.push(a(t, \"close\", c(this, \"onclose\")))\n }, n.prototype.ondata = function (t) {\n this.decoder.add(t)\n }, n.prototype.ondecoded = function (t) {\n this.emit(\"packet\", t)\n }, n.prototype.onerror = function (t) {\n p(\"error\", t), this.emitAll(\"error\", t)\n }, n.prototype.socket = function (t) {\n var e = this.nsps[t];\n if (!e) {\n e = new o(this, t), this.nsps[t] = e;\n var n = this;\n e.on(\"connect\", function () {\n e.id = n.engine.id, ~u(n.connected, e) || n.connected.push(e)\n })\n }\n return e\n }, n.prototype.destroy = function (t) {\n var e = u(this.connected, t);\n ~e && this.connected.splice(e, 1), this.connected.length || this.close()\n }, n.prototype.packet = function (t) {\n p(\"writing packet %j\", t);\n var e = this;\n e.encoding ? e.packetBuffer.push(t) : (e.encoding = !0, this.encoder.encode(t, function (t) {\n for (var n = 0; n < t.length; n++) e.engine.write(t[n]);\n e.encoding = !1, e.processPacketQueue()\n }))\n }, n.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var t = this.packetBuffer.shift();\n this.packet(t)\n }\n }, n.prototype.cleanup = function () {\n for (var t; t = this.subs.shift();) t.destroy();\n this.packetBuffer = [], this.encoding = !1, this.decoder.destroy()\n }, n.prototype.close = n.prototype.disconnect = function () {\n this.skipReconnect = !0, this.backoff.reset(), this.readyState = \"closed\", this.engine && this.engine.close()\n }, n.prototype.onclose = function (t) {\n p(\"close\"), this.cleanup(), this.backoff.reset(), this.readyState = \"closed\", this.emit(\"close\", t), this._reconnection && !this.skipReconnect && this.reconnect()\n }, n.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n var t = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) p(\"reconnect failed\"), this.backoff.reset(), this.emitAll(\"reconnect_failed\"), this.reconnecting = !1; else {\n var e = this.backoff.duration();\n p(\"will wait %dms before reconnect attempt\", e), this.reconnecting = !0;\n var n = setTimeout(function () {\n t.skipReconnect || (p(\"attempting reconnect\"), t.emitAll(\"reconnect_attempt\", t.backoff.attempts), t.emitAll(\"reconnecting\", t.backoff.attempts), t.skipReconnect || t.open(function (e) {\n e ? (p(\"reconnect attempt error\"), t.reconnecting = !1, t.reconnect(), t.emitAll(\"reconnect_error\", e.data)) : (p(\"reconnect success\"), t.onreconnect())\n }))\n }, e);\n this.subs.push({\n destroy: function () {\n clearTimeout(n)\n }\n })\n }\n }, n.prototype.onreconnect = function () {\n var t = this.backoff.attempts;\n this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll(\"reconnect\", t)\n }\n }, {\n \"./on\": 4,\n \"./socket\": 5,\n \"./url\": 6,\n backo2: 7,\n \"component-bind\": 8,\n \"component-emitter\": 9,\n debug: 10,\n \"engine.io-client\": 11,\n indexof: 40,\n \"object-component\": 41,\n \"socket.io-parser\": 44\n }],\n 4: [function (t, e) {\n function n(t, e, n) {\n return t.on(e, n), {\n destroy: function () {\n t.removeListener(e, n)\n }\n }\n }\n\n e.exports = n\n }, {}],\n 5: [function (t, e, n) {\n function r(t, e) {\n this.io = t, this.nsp = e, this.json = this, this.ids = 0, this.acks = {}, this.io.autoConnect && this.open(), this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0\n }\n\n var o = t(\"socket.io-parser\"), i = t(\"component-emitter\"), s = t(\"to-array\"), a = t(\"./on\"),\n c = t(\"component-bind\"), p = t(\"debug\")(\"socket.io-client:socket\"), u = t(\"has-binary\");\n e.exports = n = r;\n var f = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1\n }, h = i.prototype.emit;\n i(r.prototype), r.prototype.subEvents = function () {\n if (!this.subs) {\n var t = this.io;\n this.subs = [a(t, \"open\", c(this, \"onopen\")), a(t, \"packet\", c(this, \"onpacket\")), a(t, \"close\", c(this, \"onclose\"))]\n }\n }, r.prototype.open = r.prototype.connect = function () {\n return this.connected ? this : (this.subEvents(), this.io.open(), \"open\" == this.io.readyState && this.onopen(), this)\n }, r.prototype.send = function () {\n var t = s(arguments);\n return t.unshift(\"message\"), this.emit.apply(this, t), this\n }, r.prototype.emit = function (t) {\n if (f.hasOwnProperty(t)) return h.apply(this, arguments), this;\n var e = s(arguments), n = o.EVENT;\n u(e) && (n = o.BINARY_EVENT);\n var r = {type: n, data: e};\n return \"function\" == typeof e[e.length - 1] && (p(\"emitting packet with ack id %d\", this.ids), this.acks[this.ids] = e.pop(), r.id = this.ids++), this.connected ? this.packet(r) : this.sendBuffer.push(r), this\n }, r.prototype.packet = function (t) {\n t.nsp = this.nsp, this.io.packet(t)\n }, r.prototype.onopen = function () {\n p(\"transport is open - connecting\"), \"/\" != this.nsp && this.packet({type: o.CONNECT})\n }, r.prototype.onclose = function (t) {\n p(\"close (%s)\", t), this.connected = !1, this.disconnected = !0, delete this.id, this.emit(\"disconnect\", t)\n }, r.prototype.onpacket = function (t) {\n if (t.nsp == this.nsp) switch (t.type) {\n case o.CONNECT:\n this.onconnect();\n break;\n case o.EVENT:\n this.onevent(t);\n break;\n case o.BINARY_EVENT:\n this.onevent(t);\n break;\n case o.ACK:\n this.onack(t);\n break;\n case o.BINARY_ACK:\n this.onack(t);\n break;\n case o.DISCONNECT:\n this.ondisconnect();\n break;\n case o.ERROR:\n this.emit(\"error\", t.data)\n }\n }, r.prototype.onevent = function (t) {\n var e = t.data || [];\n p(\"emitting event %j\", e), null != t.id && (p(\"attaching ack callback to event\"), e.push(this.ack(t.id))), this.connected ? h.apply(this, e) : this.receiveBuffer.push(e)\n }, r.prototype.ack = function (t) {\n var e = this, n = !1;\n return function () {\n if (!n) {\n n = !0;\n var r = s(arguments);\n p(\"sending ack %j\", r);\n var i = u(r) ? o.BINARY_ACK : o.ACK;\n e.packet({type: i, id: t, data: r})\n }\n }\n }, r.prototype.onack = function (t) {\n p(\"calling ack %s with %j\", t.id, t.data);\n var e = this.acks[t.id];\n e.apply(this, t.data), delete this.acks[t.id]\n }, r.prototype.onconnect = function () {\n this.connected = !0, this.disconnected = !1, this.emit(\"connect\"), this.emitBuffered()\n }, r.prototype.emitBuffered = function () {\n var t;\n for (t = 0; t < this.receiveBuffer.length; t++) h.apply(this, this.receiveBuffer[t]);\n for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);\n this.sendBuffer = []\n }, r.prototype.ondisconnect = function () {\n p(\"server disconnect (%s)\", this.nsp), this.destroy(), this.onclose(\"io server disconnect\")\n }, r.prototype.destroy = function () {\n if (this.subs) {\n for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();\n this.subs = null\n }\n this.io.destroy(this)\n }, r.prototype.close = r.prototype.disconnect = function () {\n return this.connected && (p(\"performing disconnect (%s)\", this.nsp), this.packet({type: o.DISCONNECT})), this.destroy(), this.connected && this.onclose(\"io client disconnect\"), this\n }\n }, {\n \"./on\": 4,\n \"component-bind\": 8,\n \"component-emitter\": 9,\n debug: 10,\n \"has-binary\": 36,\n \"socket.io-parser\": 44,\n \"to-array\": 48\n }],\n 6: [function (t, e) {\n (function (n) {\n function r(t, e) {\n var r = t, e = e || n.location;\n return null == t && (t = e.protocol + \"//\" + e.host), \"string\" == typeof t && (\"/\" == t.charAt(0) && (t = \"/\" == t.charAt(1) ? e.protocol + t : e.hostname + t), /^(https?|wss?):\\/\\//.test(t) || (i(\"protocol-less url %s\", t), t = \"undefined\" != typeof e ? e.protocol + \"//\" + t : \"https://\" + t), i(\"parse %s\", t), r = o(t)), r.port || (/^(http|ws)$/.test(r.protocol) ? r.port = \"80\" : /^(http|ws)s$/.test(r.protocol) && (r.port = \"443\")), r.path = r.path || \"/\", r.id = r.protocol + \"://\" + r.host + \":\" + r.port, r.href = r.protocol + \"://\" + r.host + (e && e.port == r.port ? \"\" : \":\" + r.port), r\n }\n\n var o = t(\"parseuri\"), i = t(\"debug\")(\"socket.io-client:url\");\n e.exports = r\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {debug: 10, parseuri: 42}],\n 7: [function (t, e) {\n function n(t) {\n t = t || {}, this.ms = t.min || 100, this.max = t.max || 1e4, this.factor = t.factor || 2, this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0\n }\n\n e.exports = n, n.prototype.duration = function () {\n var t = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var e = Math.random(), n = Math.floor(e * this.jitter * t);\n t = 0 == (1 & Math.floor(10 * e)) ? t - n : t + n\n }\n return 0 | Math.min(t, this.max)\n }, n.prototype.reset = function () {\n this.attempts = 0\n }, n.prototype.setMin = function (t) {\n this.ms = t\n }, n.prototype.setMax = function (t) {\n this.max = t\n }, n.prototype.setJitter = function (t) {\n this.jitter = t\n }\n }, {}],\n 8: [function (t, e) {\n var n = [].slice;\n e.exports = function (t, e) {\n if (\"string\" == typeof e && (e = t[e]), \"function\" != typeof e) throw new Error(\"bind() requires a function\");\n var r = n.call(arguments, 2);\n return function () {\n return e.apply(t, r.concat(n.call(arguments)))\n }\n }\n }, {}],\n 9: [function (t, e) {\n function n(t) {\n return t ? r(t) : void 0\n }\n\n function r(t) {\n for (var e in n.prototype) t[e] = n.prototype[e];\n return t\n }\n\n e.exports = n, n.prototype.on = n.prototype.addEventListener = function (t, e) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[t] = this._callbacks[t] || []).push(e), this\n }, n.prototype.once = function (t, e) {\n function n() {\n r.off(t, n), e.apply(this, arguments)\n }\n\n var r = this;\n return this._callbacks = this._callbacks || {}, n.fn = e, this.on(t, n), this\n }, n.prototype.off = n.prototype.removeListener = n.prototype.removeAllListeners = n.prototype.removeEventListener = function (t, e) {\n if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;\n var n = this._callbacks[t];\n if (!n) return this;\n if (1 == arguments.length) return delete this._callbacks[t], this;\n for (var r, o = 0; o < n.length; o++) if (r = n[o], r === e || r.fn === e) {\n n.splice(o, 1);\n break\n }\n return this\n }, n.prototype.emit = function (t) {\n this._callbacks = this._callbacks || {};\n var e = [].slice.call(arguments, 1), n = this._callbacks[t];\n if (n) {\n n = n.slice(0);\n for (var r = 0, o = n.length; o > r; ++r) n[r].apply(this, e)\n }\n return this\n }, n.prototype.listeners = function (t) {\n return this._callbacks = this._callbacks || {}, this._callbacks[t] || []\n }, n.prototype.hasListeners = function (t) {\n return !!this.listeners(t).length\n }\n }, {}],\n 10: [function (t, e) {\n function n(t) {\n return n.enabled(t) ? function (e) {\n e = r(e);\n var o = new Date, i = o - (n[t] || o);\n n[t] = o, e = t + \" \" + e + \" +\" + n.humanize(i), window.console && console.log && Function.prototype.apply.call(console.log, console, arguments)\n } : function () {\n }\n }\n\n function r(t) {\n return t instanceof Error ? t.stack || t.message : t\n }\n\n e.exports = n, n.names = [], n.skips = [], n.enable = function (t) {\n try {\n localStorage.debug = t\n } catch (e) {\n }\n for (var r = (t || \"\").split(/[\\s,]+/), o = r.length, i = 0; o > i; i++) t = r[i].replace(\"*\", \".*?\"), \"-\" === t[0] ? n.skips.push(new RegExp(\"^\" + t.substr(1) + \"$\")) : n.names.push(new RegExp(\"^\" + t + \"$\"))\n }, n.disable = function () {\n n.enable(\"\")\n }, n.humanize = function (t) {\n var e = 1e3, n = 6e4, r = 60 * n;\n return t >= r ? (t / r).toFixed(1) + \"h\" : t >= n ? (t / n).toFixed(1) + \"m\" : t >= e ? (t / e | 0) + \"s\" : t + \"ms\"\n }, n.enabled = function (t) {\n for (var e = 0, r = n.skips.length; r > e; e++) if (n.skips[e].test(t)) return !1;\n for (var e = 0, r = n.names.length; r > e; e++) if (n.names[e].test(t)) return !0;\n return !1\n };\n try {\n window.localStorage && n.enable(localStorage.debug)\n } catch (o) {\n }\n }, {}],\n 11: [function (t, e) {\n e.exports = t(\"./lib/\")\n }, {\"./lib/\": 12}],\n 12: [function (t, e) {\n e.exports = t(\"./socket\"), e.exports.parser = t(\"engine.io-parser\")\n }, {\"./socket\": 13, \"engine.io-parser\": 25}],\n 13: [function (t, e) {\n (function (n) {\n function r(t, e) {\n if (!(this instanceof r)) return new r(t, e);\n if (e = e || {}, t && \"object\" == typeof t && (e = t, t = null), t && (t = u(t), e.host = t.host, e.secure = \"https\" == t.protocol || \"wss\" == t.protocol, e.port = t.port, t.query && (e.query = t.query)), this.secure = null != e.secure ? e.secure : n.location && \"https:\" == location.protocol, e.host) {\n var o = e.host.split(\":\");\n e.hostname = o.shift(), o.length ? e.port = o.pop() : e.port || (e.port = this.secure ? \"443\" : \"80\")\n }\n this.agent = e.agent || !1, this.hostname = e.hostname || (n.location ? location.hostname : \"localhost\"), this.port = e.port || (n.location && location.port ? location.port : this.secure ? 443 : 80), this.query = e.query || {}, \"string\" == typeof this.query && (this.query = h.decode(this.query)), this.upgrade = !1 !== e.upgrade, this.path = (e.path || \"/engine.io\").replace(/\\/$/, \"\") + \"/\", this.forceJSONP = !!e.forceJSONP, this.jsonp = !1 !== e.jsonp, this.forceBase64 = !!e.forceBase64, this.enablesXDR = !!e.enablesXDR, this.timestampParam = e.timestampParam || \"t\", this.timestampRequests = e.timestampRequests, this.transports = e.transports || [\"polling\", \"websocket\"], this.readyState = \"\", this.writeBuffer = [], this.callbackBuffer = [], this.policyPort = e.policyPort || 843, this.rememberUpgrade = e.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = e.onlyBinaryUpgrades, this.pfx = e.pfx || null, this.key = e.key || null, this.passphrase = e.passphrase || null, this.cert = e.cert || null, this.ca = e.ca || null, this.ciphers = e.ciphers || null, this.rejectUnauthorized = e.rejectUnauthorized || null, this.open()\n }\n\n function o(t) {\n var e = {};\n for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);\n return e\n }\n\n var i = t(\"./transports\"), s = t(\"component-emitter\"), a = t(\"debug\")(\"engine.io-client:socket\"),\n c = t(\"indexof\"), p = t(\"engine.io-parser\"), u = t(\"parseuri\"), f = t(\"parsejson\"),\n h = t(\"parseqs\");\n e.exports = r, r.priorWebsocketSuccess = !1, s(r.prototype), r.protocol = p.protocol, r.Socket = r, r.Transport = t(\"./transport\"), r.transports = t(\"./transports\"), r.parser = t(\"engine.io-parser\"), r.prototype.createTransport = function (t) {\n a('creating transport \"%s\"', t);\n var e = o(this.query);\n e.EIO = p.protocol, e.transport = t, this.id && (e.sid = this.id);\n var n = new i[t]({\n agent: this.agent,\n hostname: this.hostname,\n port: this.port,\n secure: this.secure,\n path: this.path,\n query: e,\n forceJSONP: this.forceJSONP,\n jsonp: this.jsonp,\n forceBase64: this.forceBase64,\n enablesXDR: this.enablesXDR,\n timestampRequests: this.timestampRequests,\n timestampParam: this.timestampParam,\n policyPort: this.policyPort,\n socket: this,\n pfx: this.pfx,\n key: this.key,\n passphrase: this.passphrase,\n cert: this.cert,\n ca: this.ca,\n ciphers: this.ciphers,\n rejectUnauthorized: this.rejectUnauthorized\n });\n return n\n }, r.prototype.open = function () {\n var t;\n if (this.rememberUpgrade && r.priorWebsocketSuccess && -1 != this.transports.indexOf(\"websocket\")) t = \"websocket\"; else {\n if (0 == this.transports.length) {\n var e = this;\n return void setTimeout(function () {\n e.emit(\"error\", \"No transports available\")\n }, 0)\n }\n t = this.transports[0]\n }\n this.readyState = \"opening\";\n var t;\n try {\n t = this.createTransport(t)\n } catch (n) {\n return this.transports.shift(), void this.open()\n }\n t.open(), this.setTransport(t)\n }, r.prototype.setTransport = function (t) {\n a(\"setting transport %s\", t.name);\n var e = this;\n this.transport && (a(\"clearing existing transport %s\", this.transport.name), this.transport.removeAllListeners()), this.transport = t, t.on(\"drain\", function () {\n e.onDrain()\n }).on(\"packet\", function (t) {\n e.onPacket(t)\n }).on(\"error\", function (t) {\n e.onError(t)\n }).on(\"close\", function () {\n e.onClose(\"transport close\")\n })\n }, r.prototype.probe = function (t) {\n function e() {\n if (h.onlyBinaryUpgrades) {\n var e = !this.supportsBinary && h.transport.supportsBinary;\n f = f || e\n }\n f || (a('probe transport \"%s\" opened', t), u.send([{\n type: \"ping\",\n data: \"probe\"\n }]), u.once(\"packet\", function (e) {\n if (!f) if (\"pong\" == e.type && \"probe\" == e.data) {\n if (a('probe transport \"%s\" pong', t), h.upgrading = !0, h.emit(\"upgrading\", u), !u) return;\n r.priorWebsocketSuccess = \"websocket\" == u.name, a('pausing current transport \"%s\"', h.transport.name), h.transport.pause(function () {\n f || \"closed\" != h.readyState && (a(\"changing transport and sending upgrade packet\"), p(), h.setTransport(u), u.send([{type: \"upgrade\"}]), h.emit(\"upgrade\", u), u = null, h.upgrading = !1, h.flush())\n })\n } else {\n a('probe transport \"%s\" failed', t);\n var n = new Error(\"probe error\");\n n.transport = u.name, h.emit(\"upgradeError\", n)\n }\n }))\n }\n\n function n() {\n f || (f = !0, p(), u.close(), u = null)\n }\n\n function o(e) {\n var r = new Error(\"probe error: \" + e);\n r.transport = u.name, n(), a('probe transport \"%s\" failed because of error: %s', t, e), h.emit(\"upgradeError\", r)\n }\n\n function i() {\n o(\"transport closed\")\n }\n\n function s() {\n o(\"socket closed\")\n }\n\n function c(t) {\n u && t.name != u.name && (a('\"%s\" works - aborting \"%s\"', t.name, u.name), n())\n }\n\n function p() {\n u.removeListener(\"open\", e), u.removeListener(\"error\", o), u.removeListener(\"close\", i), h.removeListener(\"close\", s), h.removeListener(\"upgrading\", c)\n }\n\n a('probing transport \"%s\"', t);\n var u = this.createTransport(t, {probe: 1}), f = !1, h = this;\n r.priorWebsocketSuccess = !1, u.once(\"open\", e), u.once(\"error\", o), u.once(\"close\", i), this.once(\"close\", s), this.once(\"upgrading\", c), u.open()\n }, r.prototype.onOpen = function () {\n if (a(\"socket open\"), this.readyState = \"open\", r.priorWebsocketSuccess = \"websocket\" == this.transport.name, this.emit(\"open\"), this.flush(), \"open\" == this.readyState && this.upgrade && this.transport.pause) {\n a(\"starting upgrade probes\");\n for (var t = 0, e = this.upgrades.length; e > t; t++) this.probe(this.upgrades[t])\n }\n }, r.prototype.onPacket = function (t) {\n if (\"opening\" == this.readyState || \"open\" == this.readyState) switch (a('socket receive: type \"%s\", data \"%s\"', t.type, t.data), this.emit(\"packet\", t), this.emit(\"heartbeat\"), t.type) {\n case\"open\":\n this.onHandshake(f(t.data));\n break;\n case\"pong\":\n this.setPing();\n break;\n case\"error\":\n var e = new Error(\"server error\");\n e.code = t.data, this.emit(\"error\", e);\n break;\n case\"message\":\n this.emit(\"data\", t.data), this.emit(\"message\", t.data)\n } else a('packet received with socket readyState \"%s\"', this.readyState)\n }, r.prototype.onHandshake = function (t) {\n this.emit(\"handshake\", t), this.id = t.sid, this.transport.query.sid = t.sid, this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), \"closed\" != this.readyState && (this.setPing(), this.removeListener(\"heartbeat\", this.onHeartbeat), this.on(\"heartbeat\", this.onHeartbeat))\n }, r.prototype.onHeartbeat = function (t) {\n clearTimeout(this.pingTimeoutTimer);\n var e = this;\n e.pingTimeoutTimer = setTimeout(function () {\n \"closed\" != e.readyState && e.onClose(\"ping timeout\")\n }, t || e.pingInterval + e.pingTimeout)\n }, r.prototype.setPing = function () {\n var t = this;\n clearTimeout(t.pingIntervalTimer), t.pingIntervalTimer = setTimeout(function () {\n a(\"writing ping packet - expecting pong within %sms\", t.pingTimeout), t.ping(), t.onHeartbeat(t.pingTimeout)\n }, t.pingInterval)\n }, r.prototype.ping = function () {\n this.sendPacket(\"ping\")\n }, r.prototype.onDrain = function () {\n for (var t = 0; t < this.prevBufferLen; t++) this.callbackBuffer[t] && this.callbackBuffer[t]();\n this.writeBuffer.splice(0, this.prevBufferLen), this.callbackBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 == this.writeBuffer.length ? this.emit(\"drain\") : this.flush()\n }, r.prototype.flush = function () {\n \"closed\" != this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (a(\"flushing %d packets in socket\", this.writeBuffer.length), this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit(\"flush\"))\n }, r.prototype.write = r.prototype.send = function (t, e) {\n return this.sendPacket(\"message\", t, e), this\n }, r.prototype.sendPacket = function (t, e, n) {\n if (\"closing\" != this.readyState && \"closed\" != this.readyState) {\n var r = {type: t, data: e};\n this.emit(\"packetCreate\", r), this.writeBuffer.push(r), this.callbackBuffer.push(n), this.flush()\n }\n }, r.prototype.close = function () {\n function t() {\n r.onClose(\"forced close\"), a(\"socket closing - telling transport to close\"), r.transport.close()\n }\n\n function e() {\n r.removeListener(\"upgrade\", e), r.removeListener(\"upgradeError\", e), t()\n }\n\n function n() {\n r.once(\"upgrade\", e), r.once(\"upgradeError\", e)\n }\n\n if (\"opening\" == this.readyState || \"open\" == this.readyState) {\n this.readyState = \"closing\";\n var r = this;\n this.writeBuffer.length ? this.once(\"drain\", function () {\n this.upgrading ? n() : t()\n }) : this.upgrading ? n() : t()\n }\n return this\n }, r.prototype.onError = function (t) {\n a(\"socket error %j\", t), r.priorWebsocketSuccess = !1, this.emit(\"error\", t), this.onClose(\"transport error\", t)\n }, r.prototype.onClose = function (t, e) {\n if (\"opening\" == this.readyState || \"open\" == this.readyState || \"closing\" == this.readyState) {\n a('socket close with reason: \"%s\"', t);\n var n = this;\n clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), setTimeout(function () {\n n.writeBuffer = [], n.callbackBuffer = [], n.prevBufferLen = 0\n }, 0), this.transport.removeAllListeners(\"close\"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = \"closed\", this.id = null, this.emit(\"close\", t, e)\n }\n }, r.prototype.filterUpgrades = function (t) {\n for (var e = [], n = 0, r = t.length; r > n; n++) ~c(this.transports, t[n]) && e.push(t[n]);\n return e\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\n \"./transport\": 14,\n \"./transports\": 15,\n \"component-emitter\": 9,\n debug: 22,\n \"engine.io-parser\": 25,\n indexof: 40,\n parsejson: 32,\n parseqs: 33,\n parseuri: 34\n }],\n 14: [function (t, e) {\n function n(t) {\n this.path = t.path, this.hostname = t.hostname, this.port = t.port, this.secure = t.secure, this.query = t.query, this.timestampParam = t.timestampParam, this.timestampRequests = t.timestampRequests, this.readyState = \"\", this.agent = t.agent || !1, this.socket = t.socket, this.enablesXDR = t.enablesXDR, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized\n }\n\n var r = t(\"engine.io-parser\"), o = t(\"component-emitter\");\n e.exports = n, o(n.prototype), n.timestamps = 0, n.prototype.onError = function (t, e) {\n var n = new Error(t);\n return n.type = \"TransportError\", n.description = e, this.emit(\"error\", n), this\n }, n.prototype.open = function () {\n return (\"closed\" == this.readyState || \"\" == this.readyState) && (this.readyState = \"opening\", this.doOpen()), this\n }, n.prototype.close = function () {\n return (\"opening\" == this.readyState || \"open\" == this.readyState) && (this.doClose(), this.onClose()), this\n }, n.prototype.send = function (t) {\n if (\"open\" != this.readyState) throw new Error(\"Transport not open\");\n this.write(t)\n }, n.prototype.onOpen = function () {\n this.readyState = \"open\", this.writable = !0, this.emit(\"open\")\n }, n.prototype.onData = function (t) {\n var e = r.decodePacket(t, this.socket.binaryType);\n this.onPacket(e)\n }, n.prototype.onPacket = function (t) {\n this.emit(\"packet\", t)\n }, n.prototype.onClose = function () {\n this.readyState = \"closed\", this.emit(\"close\")\n }\n }, {\"component-emitter\": 9, \"engine.io-parser\": 25}],\n 15: [function (t, e, n) {\n (function (e) {\n function r(t) {\n var n, r = !1, a = !1, c = !1 !== t.jsonp;\n if (e.location) {\n var p = \"https:\" == location.protocol, u = location.port;\n u || (u = p ? 443 : 80), r = t.hostname != location.hostname || u != t.port, a = t.secure != p\n }\n if (t.xdomain = r, t.xscheme = a, n = new o(t), \"open\" in n && !t.forceJSONP) return new i(t);\n if (!c) throw new Error(\"JSONP disabled\");\n return new s(t)\n }\n\n var o = t(\"xmlhttprequest\"), i = t(\"./polling-xhr\"), s = t(\"./polling-jsonp\"), a = t(\"./websocket\");\n n.polling = r, n.websocket = a\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling-jsonp\": 16, \"./polling-xhr\": 17, \"./websocket\": 19, xmlhttprequest: 20}],\n 16: [function (t, e) {\n (function (n) {\n function r() {\n }\n\n function o(t) {\n i.call(this, t), this.query = this.query || {}, a || (n.___eio || (n.___eio = []), a = n.___eio), this.index = a.length;\n var e = this;\n a.push(function (t) {\n e.onData(t)\n }), this.query.j = this.index, n.document && n.addEventListener && n.addEventListener(\"beforeunload\", function () {\n e.script && (e.script.onerror = r)\n }, !1)\n }\n\n var i = t(\"./polling\"), s = t(\"component-inherit\");\n e.exports = o;\n var a, c = /\\n/g, p = /\\\\n/g;\n s(o, i), o.prototype.supportsBinary = !1, o.prototype.doClose = function () {\n this.script && (this.script.parentNode.removeChild(this.script), this.script = null), this.form && (this.form.parentNode.removeChild(this.form), this.form = null, this.iframe = null), i.prototype.doClose.call(this)\n }, o.prototype.doPoll = function () {\n var t = this, e = document.createElement(\"script\");\n this.script && (this.script.parentNode.removeChild(this.script), this.script = null), e.async = !0, e.src = this.uri(), e.onerror = function (e) {\n t.onError(\"jsonp poll error\", e)\n };\n var n = document.getElementsByTagName(\"script\")[0];\n n.parentNode.insertBefore(e, n), this.script = e;\n var r = \"undefined\" != typeof navigator && /gecko/i.test(navigator.userAgent);\n r && setTimeout(function () {\n var t = document.createElement(\"iframe\");\n document.body.appendChild(t), document.body.removeChild(t)\n }, 100)\n }, o.prototype.doWrite = function (t, e) {\n function n() {\n r(), e()\n }\n\n function r() {\n if (o.iframe) try {\n o.form.removeChild(o.iframe)\n } catch (t) {\n o.onError(\"jsonp polling iframe removal error\", t)\n }\n try {\n var e = '<iframe src=\"javascript:0\" name=\"' + o.iframeId + '\">';\n i = document.createElement(e)\n } catch (t) {\n i = document.createElement(\"iframe\"), i.name = o.iframeId, i.src = \"javascript:0\"\n }\n i.id = o.iframeId, o.form.appendChild(i), o.iframe = i\n }\n\n var o = this;\n if (!this.form) {\n var i, s = document.createElement(\"form\"), a = document.createElement(\"textarea\"),\n u = this.iframeId = \"eio_iframe_\" + this.index;\n s.className = \"socketio\", s.style.position = \"absolute\", s.style.top = \"-1000px\", s.style.left = \"-1000px\", s.target = u, s.method = \"POST\", s.setAttribute(\"accept-charset\", \"utf-8\"), a.name = \"d\", s.appendChild(a), document.body.appendChild(s), this.form = s, this.area = a\n }\n this.form.action = this.uri(), r(), t = t.replace(p, \"\\\\\\n\"), this.area.value = t.replace(c, \"\\\\n\");\n try {\n this.form.submit()\n } catch (f) {\n }\n this.iframe.attachEvent ? this.iframe.onreadystatechange = function () {\n \"complete\" == o.iframe.readyState && n()\n } : this.iframe.onload = n\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling\": 18, \"component-inherit\": 21}],\n 17: [function (t, e) {\n (function (n) {\n function r() {\n }\n\n function o(t) {\n if (c.call(this, t), n.location) {\n var e = \"https:\" == location.protocol, r = location.port;\n r || (r = e ? 443 : 80), this.xd = t.hostname != n.location.hostname || r != t.port, this.xs = t.secure != e\n }\n }\n\n function i(t) {\n this.method = t.method || \"GET\", this.uri = t.uri, this.xd = !!t.xd, this.xs = !!t.xs, this.async = !1 !== t.async, this.data = void 0 != t.data ? t.data : null, this.agent = t.agent, this.isBinary = t.isBinary, this.supportsBinary = t.supportsBinary, this.enablesXDR = t.enablesXDR, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized, this.create()\n }\n\n function s() {\n for (var t in i.requests) i.requests.hasOwnProperty(t) && i.requests[t].abort()\n }\n\n var a = t(\"xmlhttprequest\"), c = t(\"./polling\"), p = t(\"component-emitter\"), u = t(\"component-inherit\"),\n f = t(\"debug\")(\"engine.io-client:polling-xhr\");\n e.exports = o, e.exports.Request = i, u(o, c), o.prototype.supportsBinary = !0, o.prototype.request = function (t) {\n return t = t || {}, t.uri = this.uri(), t.xd = this.xd, t.xs = this.xs, t.agent = this.agent || !1, t.supportsBinary = this.supportsBinary, t.enablesXDR = this.enablesXDR, t.pfx = this.pfx, t.key = this.key, t.passphrase = this.passphrase, t.cert = this.cert, t.ca = this.ca, t.ciphers = this.ciphers, t.rejectUnauthorized = this.rejectUnauthorized, new i(t)\n }, o.prototype.doWrite = function (t, e) {\n var n = \"string\" != typeof t && void 0 !== t,\n r = this.request({method: \"POST\", data: t, isBinary: n}), o = this;\n r.on(\"success\", e), r.on(\"error\", function (t) {\n o.onError(\"xhr post error\", t)\n }), this.sendXhr = r\n }, o.prototype.doPoll = function () {\n f(\"xhr poll\");\n var t = this.request(), e = this;\n t.on(\"data\", function (t) {\n e.onData(t)\n }), t.on(\"error\", function (t) {\n e.onError(\"xhr poll error\", t)\n }), this.pollXhr = t\n }, p(i.prototype), i.prototype.create = function () {\n var t = {agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR};\n t.pfx = this.pfx, t.key = this.key, t.passphrase = this.passphrase, t.cert = this.cert, t.ca = this.ca, t.ciphers = this.ciphers, t.rejectUnauthorized = this.rejectUnauthorized;\n var e = this.xhr = new a(t), r = this;\n try {\n if (f(\"xhr open %s: %s\", this.method, this.uri), e.open(this.method, this.uri, this.async), this.supportsBinary && (e.responseType = \"arraybuffer\"), \"POST\" == this.method) try {\n this.isBinary ? e.setRequestHeader(\"Content-type\", \"application/octet-stream\") : e.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\")\n } catch (o) {\n }\n \"withCredentials\" in e && (e.withCredentials = !0), this.hasXDR() ? (e.onload = function () {\n r.onLoad()\n }, e.onerror = function () {\n r.onError(e.responseText)\n }) : e.onreadystatechange = function () {\n 4 == e.readyState && (200 == e.status || 1223 == e.status ? r.onLoad() : setTimeout(function () {\n r.onError(e.status)\n }, 0))\n }, f(\"xhr data %s\", this.data), e.send(this.data)\n } catch (o) {\n return void setTimeout(function () {\n r.onError(o)\n }, 0)\n }\n n.document && (this.index = i.requestsCount++, i.requests[this.index] = this)\n }, i.prototype.onSuccess = function () {\n this.emit(\"success\"), this.cleanup()\n }, i.prototype.onData = function (t) {\n this.emit(\"data\", t), this.onSuccess()\n }, i.prototype.onError = function (t) {\n this.emit(\"error\", t), this.cleanup(!0)\n }, i.prototype.cleanup = function (t) {\n if (\"undefined\" != typeof this.xhr && null !== this.xhr) {\n if (this.hasXDR() ? this.xhr.onload = this.xhr.onerror = r : this.xhr.onreadystatechange = r, t) try {\n this.xhr.abort()\n } catch (e) {\n }\n n.document && delete i.requests[this.index], this.xhr = null\n }\n }, i.prototype.onLoad = function () {\n var t;\n try {\n var e;\n try {\n e = this.xhr.getResponseHeader(\"Content-Type\").split(\";\")[0]\n } catch (n) {\n }\n t = \"application/octet-stream\" === e ? this.xhr.response : this.supportsBinary ? \"ok\" : this.xhr.responseText\n } catch (n) {\n this.onError(n)\n }\n null != t && this.onData(t)\n }, i.prototype.hasXDR = function () {\n return \"undefined\" != typeof n.XDomainRequest && !this.xs && this.enablesXDR\n }, i.prototype.abort = function () {\n this.cleanup()\n }, n.document && (i.requestsCount = 0, i.requests = {}, n.attachEvent ? n.attachEvent(\"onunload\", s) : n.addEventListener && n.addEventListener(\"beforeunload\", s, !1))\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling\": 18, \"component-emitter\": 9, \"component-inherit\": 21, debug: 22, xmlhttprequest: 20}],\n 18: [function (t, e) {\n function n(t) {\n var e = t && t.forceBase64;\n (!c || e) && (this.supportsBinary = !1), r.call(this, t)\n }\n\n var r = t(\"../transport\"), o = t(\"parseqs\"), i = t(\"engine.io-parser\"), s = t(\"component-inherit\"),\n a = t(\"debug\")(\"engine.io-client:polling\");\n e.exports = n;\n var c = function () {\n var e = t(\"xmlhttprequest\"), n = new e({xdomain: !1});\n return null != n.responseType\n }();\n s(n, r), n.prototype.name = \"polling\", n.prototype.doOpen = function () {\n this.poll()\n }, n.prototype.pause = function (t) {\n function e() {\n a(\"paused\"), n.readyState = \"paused\", t()\n }\n\n var n = this;\n if (this.readyState = \"pausing\", this.polling || !this.writable) {\n var r = 0;\n this.polling && (a(\"we are currently polling - waiting to pause\"), r++, this.once(\"pollComplete\", function () {\n a(\"pre-pause polling complete\"), --r || e()\n })), this.writable || (a(\"we are currently writing - waiting to pause\"), r++, this.once(\"drain\", function () {\n a(\"pre-pause writing complete\"), --r || e()\n }))\n } else e()\n }, n.prototype.poll = function () {\n a(\"polling\"), this.polling = !0, this.doPoll(), this.emit(\"poll\")\n }, n.prototype.onData = function (t) {\n var e = this;\n a(\"polling got data %s\", t);\n var n = function (t) {\n return \"opening\" == e.readyState && e.onOpen(), \"close\" == t.type ? (e.onClose(), !1) : void e.onPacket(t)\n };\n i.decodePayload(t, this.socket.binaryType, n), \"closed\" != this.readyState && (this.polling = !1, this.emit(\"pollComplete\"), \"open\" == this.readyState ? this.poll() : a('ignoring poll - transport state \"%s\"', this.readyState))\n }, n.prototype.doClose = function () {\n function t() {\n a(\"writing close packet\"), e.write([{type: \"close\"}])\n }\n\n var e = this;\n \"open\" == this.readyState ? (a(\"transport open - closing\"), t()) : (a(\"transport not open - deferring close\"), this.once(\"open\", t))\n }, n.prototype.write = function (t) {\n var e = this;\n this.writable = !1;\n var n = function () {\n e.writable = !0, e.emit(\"drain\")\n }, e = this;\n i.encodePayload(t, this.supportsBinary, function (t) {\n e.doWrite(t, n)\n })\n }, n.prototype.uri = function () {\n var t = this.query || {}, e = this.secure ? \"https\" : \"http\", n = \"\";\n return !1 !== this.timestampRequests && (t[this.timestampParam] = +new Date + \"-\" + r.timestamps++), this.supportsBinary || t.sid || (t.b64 = 1), t = o.encode(t), this.port && (\"https\" == e && 443 != this.port || \"http\" == e && 80 != this.port) && (n = \":\" + this.port), t.length && (t = \"?\" + t), e + \"://\" + this.hostname + n + this.path + t\n }\n }, {\n \"../transport\": 14,\n \"component-inherit\": 21,\n debug: 22,\n \"engine.io-parser\": 25,\n parseqs: 33,\n xmlhttprequest: 20\n }],\n 19: [function (t, e) {\n function n(t) {\n var e = t && t.forceBase64;\n e && (this.supportsBinary = !1), r.call(this, t)\n }\n\n var r = t(\"../transport\"), o = t(\"engine.io-parser\"), i = t(\"parseqs\"), s = t(\"component-inherit\"),\n a = t(\"debug\")(\"engine.io-client:websocket\"), c = t(\"ws\");\n e.exports = n, s(n, r), n.prototype.name = \"websocket\", n.prototype.supportsBinary = !0, n.prototype.doOpen = function () {\n if (this.check()) {\n var t = this.uri(), e = void 0, n = {agent: this.agent};\n n.pfx = this.pfx, n.key = this.key, n.passphrase = this.passphrase, n.cert = this.cert, n.ca = this.ca, n.ciphers = this.ciphers, n.rejectUnauthorized = this.rejectUnauthorized, this.ws = new c(t, e, n), void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.binaryType = \"arraybuffer\", this.addEventListeners()\n }\n }, n.prototype.addEventListeners = function () {\n var t = this;\n this.ws.onopen = function () {\n t.onOpen()\n }, this.ws.onclose = function () {\n t.onClose()\n }, this.ws.onmessage = function (e) {\n t.onData(e.data)\n }, this.ws.onerror = function (e) {\n t.onError(\"websocket error\", e)\n }\n }, \"undefined\" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) && (n.prototype.onData = function (t) {\n var e = this;\n setTimeout(function () {\n r.prototype.onData.call(e, t)\n }, 0)\n }), n.prototype.write = function (t) {\n function e() {\n n.writable = !0, n.emit(\"drain\")\n }\n\n var n = this;\n this.writable = !1;\n for (var r = 0, i = t.length; i > r; r++) o.encodePacket(t[r], this.supportsBinary, function (t) {\n try {\n n.ws.send(t)\n } catch (e) {\n a(\"websocket closed before onclose event\")\n }\n });\n setTimeout(e, 0)\n }, n.prototype.onClose = function () {\n r.prototype.onClose.call(this)\n }, n.prototype.doClose = function () {\n \"undefined\" != typeof this.ws && this.ws.close()\n }, n.prototype.uri = function () {\n var t = this.query || {}, e = this.secure ? \"wss\" : \"ws\", n = \"\";\n return this.port && (\"wss\" == e && 443 != this.port || \"ws\" == e && 80 != this.port) && (n = \":\" + this.port), this.timestampRequests && (t[this.timestampParam] = +new Date), this.supportsBinary || (t.b64 = 1), t = i.encode(t), t.length && (t = \"?\" + t), e + \"://\" + this.hostname + n + this.path + t\n }, n.prototype.check = function () {\n return !(!c || \"__initialize\" in c && this.name === n.prototype.name)\n }\n }, {\"../transport\": 14, \"component-inherit\": 21, debug: 22, \"engine.io-parser\": 25, parseqs: 33, ws: 35}],\n 20: [function (t, e) {\n var n = t(\"has-cors\");\n e.exports = function (t) {\n var e = t.xdomain, r = t.xscheme, o = t.enablesXDR;\n try {\n if (\"undefined\" != typeof XMLHttpRequest && (!e || n)) return new XMLHttpRequest\n } catch (i) {\n }\n try {\n if (\"undefined\" != typeof XDomainRequest && !r && o) return new XDomainRequest\n } catch (i) {\n }\n if (!e) try {\n return new ActiveXObject(\"Microsoft.XMLHTTP\")\n } catch (i) {\n }\n }\n }, {\"has-cors\": 38}],\n 21: [function (t, e) {\n e.exports = function (t, e) {\n var n = function () {\n };\n n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t\n }\n }, {}],\n 22: [function (t, e, n) {\n function r() {\n return \"WebkitAppearance\" in document.documentElement.style || window.console && (console.firebug || console.exception && console.table) || navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31\n }\n\n function o() {\n var t = arguments, e = this.useColors;\n if (t[0] = (e ? \"%c\" : \"\") + this.namespace + (e ? \" %c\" : \" \") + t[0] + (e ? \"%c \" : \" \") + \"+\" + n.humanize(this.diff), !e) return t;\n var r = \"color: \" + this.color;\n t = [t[0], r, \"color: inherit\"].concat(Array.prototype.slice.call(t, 1));\n var o = 0, i = 0;\n return t[0].replace(/%[a-z%]/g, function (t) {\n \"%%\" !== t && (o++, \"%c\" === t && (i = o))\n }), t.splice(i, 0, r), t\n }\n\n function i() {\n return \"object\" == typeof console && \"function\" == typeof console.log && Function.prototype.apply.call(console.log, console, arguments)\n }\n\n function s(t) {\n try {\n null == t ? localStorage.removeItem(\"debug\") : localStorage.debug = t\n } catch (e) {\n }\n }\n\n function a() {\n var t;\n try {\n t = localStorage.debug\n } catch (e) {\n }\n return t\n }\n\n n = e.exports = t(\"./debug\"), n.log = i, n.formatArgs = o, n.save = s, n.load = a, n.useColors = r, n.colors = [\"lightseagreen\", \"forestgreen\", \"goldenrod\", \"dodgerblue\", \"darkorchid\", \"crimson\"], n.formatters.j = function (t) {\n return JSON.stringify(t)\n }, n.enable(a())\n }, {\"./debug\": 23}],\n 23: [function (t, e, n) {\n function r() {\n return n.colors[u++ % n.colors.length]\n }\n\n function o(t) {\n function e() {\n }\n\n function o() {\n var t = o, e = +new Date, i = e - (p || e);\n t.diff = i, t.prev = p, t.curr = e, p = e, null == t.useColors && (t.useColors = n.useColors()), null == t.color && t.useColors && (t.color = r());\n var s = Array.prototype.slice.call(arguments);\n s[0] = n.coerce(s[0]), \"string\" != typeof s[0] && (s = [\"%o\"].concat(s));\n var a = 0;\n s[0] = s[0].replace(/%([a-z%])/g, function (e, r) {\n if (\"%%\" === e) return e;\n a++;\n var o = n.formatters[r];\n if (\"function\" == typeof o) {\n var i = s[a];\n e = o.call(t, i), s.splice(a, 1), a--\n }\n return e\n }), \"function\" == typeof n.formatArgs && (s = n.formatArgs.apply(t, s));\n var c = o.log || n.log || console.log.bind(console);\n c.apply(t, s)\n }\n\n e.enabled = !1, o.enabled = !0;\n var i = n.enabled(t) ? o : e;\n return i.namespace = t, i\n }\n\n function i(t) {\n n.save(t);\n for (var e = (t || \"\").split(/[\\s,]+/), r = e.length, o = 0; r > o; o++) e[o] && (t = e[o].replace(/\\*/g, \".*?\"), \"-\" === t[0] ? n.skips.push(new RegExp(\"^\" + t.substr(1) + \"$\")) : n.names.push(new RegExp(\"^\" + t + \"$\")))\n }\n\n function s() {\n n.enable(\"\")\n }\n\n function a(t) {\n var e, r;\n for (e = 0, r = n.skips.length; r > e; e++) if (n.skips[e].test(t)) return !1;\n for (e = 0, r = n.names.length; r > e; e++) if (n.names[e].test(t)) return !0;\n return !1\n }\n\n function c(t) {\n return t instanceof Error ? t.stack || t.message : t\n }\n\n n = e.exports = o, n.coerce = c, n.disable = s, n.enable = i, n.enabled = a, n.humanize = t(\"ms\"), n.names = [], n.skips = [], n.formatters = {};\n var p, u = 0\n }, {ms: 24}],\n 24: [function (t, e) {\n function n(t) {\n var e = /^((?:\\d+)?\\.?\\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(t);\n if (e) {\n var n = parseFloat(e[1]), r = (e[2] || \"ms\").toLowerCase();\n switch (r) {\n case\"years\":\n case\"year\":\n case\"y\":\n return n * u;\n case\"days\":\n case\"day\":\n case\"d\":\n return n * p;\n case\"hours\":\n case\"hour\":\n case\"h\":\n return n * c;\n case\"minutes\":\n case\"minute\":\n case\"m\":\n return n * a;\n case\"seconds\":\n case\"second\":\n case\"s\":\n return n * s;\n case\"ms\":\n return n\n }\n }\n }\n\n function r(t) {\n return t >= p ? Math.round(t / p) + \"d\" : t >= c ? Math.round(t / c) + \"h\" : t >= a ? Math.round(t / a) + \"m\" : t >= s ? Math.round(t / s) + \"s\" : t + \"ms\"\n }\n\n function o(t) {\n return i(t, p, \"day\") || i(t, c, \"hour\") || i(t, a, \"minute\") || i(t, s, \"second\") || t + \" ms\"\n }\n\n function i(t, e, n) {\n return e > t ? void 0 : 1.5 * e > t ? Math.floor(t / e) + \" \" + n : Math.ceil(t / e) + \" \" + n + \"s\"\n }\n\n var s = 1e3, a = 60 * s, c = 60 * a, p = 24 * c, u = 365.25 * p;\n e.exports = function (t, e) {\n return e = e || {}, \"string\" == typeof t ? n(t) : e.long ? o(t) : r(t)\n }\n }, {}],\n 25: [function (t, e, n) {\n (function (e) {\n function r(t, e) {\n var r = \"b\" + n.packets[t.type] + t.data.data;\n return e(r)\n }\n\n function o(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n var o = t.data, i = new Uint8Array(o), s = new Uint8Array(1 + o.byteLength);\n s[0] = m[t.type];\n for (var a = 0; a < i.length; a++) s[a + 1] = i[a];\n return r(s.buffer)\n }\n\n function i(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n var o = new FileReader;\n return o.onload = function () {\n t.data = o.result, n.encodePacket(t, e, !0, r)\n }, o.readAsArrayBuffer(t.data)\n }\n\n function s(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n if (g) return i(t, e, r);\n var o = new Uint8Array(1);\n o[0] = m[t.type];\n var s = new w([o.buffer, t.data]);\n return r(s)\n }\n\n function a(t, e, n) {\n for (var r = new Array(t.length), o = h(t.length, n), i = function (t, n, o) {\n e(n, function (e, n) {\n r[t] = n, o(e, r)\n })\n }, s = 0; s < t.length; s++) i(s, t[s], o)\n }\n\n var c = t(\"./keys\"), p = t(\"has-binary\"), u = t(\"arraybuffer.slice\"), f = t(\"base64-arraybuffer\"),\n h = t(\"after\"), l = t(\"utf8\"), d = navigator.userAgent.match(/Android/i),\n y = /PhantomJS/i.test(navigator.userAgent), g = d || y;\n n.protocol = 3;\n var m = n.packets = {open: 0, close: 1, ping: 2, pong: 3, message: 4, upgrade: 5, noop: 6}, v = c(m),\n b = {type: \"error\", data: \"parser error\"}, w = t(\"blob\");\n n.encodePacket = function (t, n, i, a) {\n \"function\" == typeof n && (a = n, n = !1), \"function\" == typeof i && (a = i, i = null);\n var c = void 0 === t.data ? void 0 : t.data.buffer || t.data;\n if (e.ArrayBuffer && c instanceof ArrayBuffer) return o(t, n, a);\n if (w && c instanceof e.Blob) return s(t, n, a);\n if (c && c.base64) return r(t, a);\n var p = m[t.type];\n return void 0 !== t.data && (p += i ? l.encode(String(t.data)) : String(t.data)), a(\"\" + p)\n }, n.encodeBase64Packet = function (t, r) {\n var o = \"b\" + n.packets[t.type];\n if (w && t.data instanceof w) {\n var i = new FileReader;\n return i.onload = function () {\n var t = i.result.split(\",\")[1];\n r(o + t)\n }, i.readAsDataURL(t.data)\n }\n var s;\n try {\n s = String.fromCharCode.apply(null, new Uint8Array(t.data))\n } catch (a) {\n for (var c = new Uint8Array(t.data), p = new Array(c.length), u = 0; u < c.length; u++) p[u] = c[u];\n s = String.fromCharCode.apply(null, p)\n }\n return o += e.btoa(s), r(o)\n }, n.decodePacket = function (t, e, r) {\n if (\"string\" == typeof t || void 0 === t) {\n if (\"b\" == t.charAt(0)) return n.decodeBase64Packet(t.substr(1), e);\n if (r) try {\n t = l.decode(t)\n } catch (o) {\n return b\n }\n var i = t.charAt(0);\n return Number(i) == i && v[i] ? t.length > 1 ? {\n type: v[i],\n data: t.substring(1)\n } : {type: v[i]} : b\n }\n var s = new Uint8Array(t), i = s[0], a = u(t, 1);\n return w && \"blob\" === e && (a = new w([a])), {type: v[i], data: a}\n }, n.decodeBase64Packet = function (t, n) {\n var r = v[t.charAt(0)];\n if (!e.ArrayBuffer) return {type: r, data: {base64: !0, data: t.substr(1)}};\n var o = f.decode(t.substr(1));\n return \"blob\" === n && w && (o = new w([o])), {type: r, data: o}\n }, n.encodePayload = function (t, e, r) {\n function o(t) {\n return t.length + \":\" + t\n }\n\n function i(t, r) {\n n.encodePacket(t, s ? e : !1, !0, function (t) {\n r(null, o(t))\n })\n }\n\n \"function\" == typeof e && (r = e, e = null);\n var s = p(t);\n return e && s ? w && !g ? n.encodePayloadAsBlob(t, r) : n.encodePayloadAsArrayBuffer(t, r) : t.length ? void a(t, i, function (t, e) {\n return r(e.join(\"\"))\n }) : r(\"0:\")\n }, n.decodePayload = function (t, e, r) {\n if (\"string\" != typeof t) return n.decodePayloadAsBinary(t, e, r);\n \"function\" == typeof e && (r = e, e = null);\n var o;\n if (\"\" == t) return r(b, 0, 1);\n for (var i, s, a = \"\", c = 0, p = t.length; p > c; c++) {\n var u = t.charAt(c);\n if (\":\" != u) a += u; else {\n if (\"\" == a || a != (i = Number(a))) return r(b, 0, 1);\n if (s = t.substr(c + 1, i), a != s.length) return r(b, 0, 1);\n if (s.length) {\n if (o = n.decodePacket(s, e, !0), b.type == o.type && b.data == o.data) return r(b, 0, 1);\n var f = r(o, c + i, p);\n if (!1 === f) return\n }\n c += i, a = \"\"\n }\n }\n return \"\" != a ? r(b, 0, 1) : void 0\n }, n.encodePayloadAsArrayBuffer = function (t, e) {\n function r(t, e) {\n n.encodePacket(t, !0, !0, function (t) {\n return e(null, t)\n })\n }\n\n return t.length ? void a(t, r, function (t, n) {\n var r = n.reduce(function (t, e) {\n var n;\n return n = \"string\" == typeof e ? e.length : e.byteLength, t + n.toString().length + n + 2\n }, 0), o = new Uint8Array(r), i = 0;\n return n.forEach(function (t) {\n var e = \"string\" == typeof t, n = t;\n if (e) {\n for (var r = new Uint8Array(t.length), s = 0; s < t.length; s++) r[s] = t.charCodeAt(s);\n n = r.buffer\n }\n o[i++] = e ? 0 : 1;\n for (var a = n.byteLength.toString(), s = 0; s < a.length; s++) o[i++] = parseInt(a[s]);\n o[i++] = 255;\n for (var r = new Uint8Array(n), s = 0; s < r.length; s++) o[i++] = r[s]\n }), e(o.buffer)\n }) : e(new ArrayBuffer(0))\n }, n.encodePayloadAsBlob = function (t, e) {\n function r(t, e) {\n n.encodePacket(t, !0, !0, function (t) {\n var n = new Uint8Array(1);\n if (n[0] = 1, \"string\" == typeof t) {\n for (var r = new Uint8Array(t.length), o = 0; o < t.length; o++) r[o] = t.charCodeAt(o);\n t = r.buffer, n[0] = 0\n }\n for (var i = t instanceof ArrayBuffer ? t.byteLength : t.size, s = i.toString(), a = new Uint8Array(s.length + 1), o = 0; o < s.length; o++) a[o] = parseInt(s[o]);\n if (a[s.length] = 255, w) {\n var c = new w([n.buffer, a.buffer, t]);\n e(null, c)\n }\n })\n }\n\n a(t, r, function (t, n) {\n return e(new w(n))\n })\n }, n.decodePayloadAsBinary = function (t, e, r) {\n \"function\" == typeof e && (r = e, e = null);\n for (var o = t, i = [], s = !1; o.byteLength > 0;) {\n for (var a = new Uint8Array(o), c = 0 === a[0], p = \"\", f = 1; 255 != a[f]; f++) {\n if (p.length > 310) {\n s = !0;\n break\n }\n p += a[f]\n }\n if (s) return r(b, 0, 1);\n o = u(o, 2 + p.length), p = parseInt(p);\n var h = u(o, 0, p);\n if (c) try {\n h = String.fromCharCode.apply(null, new Uint8Array(h))\n } catch (l) {\n var d = new Uint8Array(h);\n h = \"\";\n for (var f = 0; f < d.length; f++) h += String.fromCharCode(d[f])\n }\n i.push(h), o = u(o, p)\n }\n var y = i.length;\n i.forEach(function (t, o) {\n r(n.decodePacket(t, e, !0), o, y)\n })\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\n \"./keys\": 26,\n after: 27,\n \"arraybuffer.slice\": 28,\n \"base64-arraybuffer\": 29,\n blob: 30,\n \"has-binary\": 36,\n utf8: 31\n }],\n 26: [function (t, e) {\n e.exports = Object.keys || function (t) {\n var e = [], n = Object.prototype.hasOwnProperty;\n for (var r in t) n.call(t, r) && e.push(r);\n return e\n }\n }, {}],\n 27: [function (t, e) {\n function n(t, e, n) {\n function o(t, r) {\n if (o.count <= 0) throw new Error(\"after called too many times\");\n --o.count, t ? (i = !0, e(t), e = n) : 0 !== o.count || i || e(null, r)\n }\n\n var i = !1;\n return n = n || r, o.count = t, 0 === t ? e() : o\n }\n\n function r() {\n }\n\n e.exports = n\n }, {}],\n 28: [function (t, e) {\n e.exports = function (t, e, n) {\n var r = t.byteLength;\n if (e = e || 0, n = n || r, t.slice) return t.slice(e, n);\n if (0 > e && (e += r), 0 > n && (n += r), n > r && (n = r), e >= r || e >= n || 0 === r) return new ArrayBuffer(0);\n for (var o = new Uint8Array(t), i = new Uint8Array(n - e), s = e, a = 0; n > s; s++, a++) i[a] = o[s];\n return i.buffer\n }\n }, {}],\n 29: [function (t, e, n) {\n !function (t) {\n \"use strict\";\n n.encode = function (e) {\n var n, r = new Uint8Array(e), o = r.length, i = \"\";\n for (n = 0; o > n; n += 3) i += t[r[n] >> 2], i += t[(3 & r[n]) << 4 | r[n + 1] >> 4], i += t[(15 & r[n + 1]) << 2 | r[n + 2] >> 6], i += t[63 & r[n + 2]];\n return o % 3 === 2 ? i = i.substring(0, i.length - 1) + \"=\" : o % 3 === 1 && (i = i.substring(0, i.length - 2) + \"==\"), i\n }, n.decode = function (e) {\n var n, r, o, i, s, a = .75 * e.length, c = e.length, p = 0;\n \"=\" === e[e.length - 1] && (a--, \"=\" === e[e.length - 2] && a--);\n var u = new ArrayBuffer(a), f = new Uint8Array(u);\n for (n = 0; c > n; n += 4) r = t.indexOf(e[n]), o = t.indexOf(e[n + 1]), i = t.indexOf(e[n + 2]), s = t.indexOf(e[n + 3]), f[p++] = r << 2 | o >> 4, f[p++] = (15 & o) << 4 | i >> 2, f[p++] = (3 & i) << 6 | 63 & s;\n return u\n }\n }(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\")\n }, {}],\n 30: [function (t, e) {\n (function (t) {\n function n(t) {\n for (var e = 0; e < t.length; e++) {\n var n = t[e];\n if (n.buffer instanceof ArrayBuffer) {\n var r = n.buffer;\n if (n.byteLength !== r.byteLength) {\n var o = new Uint8Array(n.byteLength);\n o.set(new Uint8Array(r, n.byteOffset, n.byteLength)), r = o.buffer\n }\n t[e] = r\n }\n }\n }\n\n function r(t, e) {\n e = e || {};\n var r = new i;\n n(t);\n for (var o = 0; o < t.length; o++) r.append(t[o]);\n return e.type ? r.getBlob(e.type) : r.getBlob()\n }\n\n function o(t, e) {\n return n(t), new Blob(t, e || {})\n }\n\n var i = t.BlobBuilder || t.WebKitBlobBuilder || t.MSBlobBuilder || t.MozBlobBuilder, s = function () {\n try {\n var t = new Blob([\"hi\"]);\n return 2 === t.size\n } catch (e) {\n return !1\n }\n }(), a = s && function () {\n try {\n var t = new Blob([new Uint8Array([1, 2])]);\n return 2 === t.size\n } catch (e) {\n return !1\n }\n }(), c = i && i.prototype.append && i.prototype.getBlob;\n e.exports = function () {\n return s ? a ? t.Blob : o : c ? r : void 0\n }()\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 31: [function (e, n, r) {\n (function (e) {\n !function (o) {\n function i(t) {\n for (var e, n, r = [], o = 0, i = t.length; i > o;) e = t.charCodeAt(o++), e >= 55296 && 56319 >= e && i > o ? (n = t.charCodeAt(o++), 56320 == (64512 & n) ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) : (r.push(e), o--)) : r.push(e);\n return r\n }\n\n function s(t) {\n for (var e, n = t.length, r = -1, o = \"\"; ++r < n;) e = t[r], e > 65535 && (e -= 65536, o += w(e >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), o += w(e);\n return o\n }\n\n function a(t) {\n if (t >= 55296 && 57343 >= t) throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\")\n }\n\n function c(t, e) {\n return w(t >> e & 63 | 128)\n }\n\n function p(t) {\n if (0 == (4294967168 & t)) return w(t);\n var e = \"\";\n return 0 == (4294965248 & t) ? e = w(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (a(t), e = w(t >> 12 & 15 | 224), e += c(t, 6)) : 0 == (4292870144 & t) && (e = w(t >> 18 & 7 | 240), e += c(t, 12), e += c(t, 6)), e += w(63 & t | 128)\n }\n\n function u(t) {\n for (var e, n = i(t), r = n.length, o = -1, s = \"\"; ++o < r;) e = n[o], s += p(e);\n return s\n }\n\n function f() {\n if (b >= v) throw Error(\"Invalid byte index\");\n var t = 255 & m[b];\n if (b++, 128 == (192 & t)) return 63 & t;\n throw Error(\"Invalid continuation byte\")\n }\n\n function h() {\n var t, e, n, r, o;\n if (b > v) throw Error(\"Invalid byte index\");\n if (b == v) return !1;\n if (t = 255 & m[b], b++, 0 == (128 & t)) return t;\n if (192 == (224 & t)) {\n var e = f();\n if (o = (31 & t) << 6 | e, o >= 128) return o;\n throw Error(\"Invalid continuation byte\")\n }\n if (224 == (240 & t)) {\n if (e = f(), n = f(), o = (15 & t) << 12 | e << 6 | n, o >= 2048) return a(o), o;\n throw Error(\"Invalid continuation byte\")\n }\n if (240 == (248 & t) && (e = f(), n = f(), r = f(), o = (15 & t) << 18 | e << 12 | n << 6 | r, o >= 65536 && 1114111 >= o)) return o;\n throw Error(\"Invalid UTF-8 detected\")\n }\n\n function l(t) {\n m = i(t), v = m.length, b = 0;\n for (var e, n = []; (e = h()) !== !1;) n.push(e);\n return s(n)\n }\n\n var d = \"object\" == typeof r && r, y = \"object\" == typeof n && n && n.exports == d && n,\n g = \"object\" == typeof e && e;\n (g.global === g || g.window === g) && (o = g);\n var m, v, b, w = String.fromCharCode, k = {version: \"2.0.0\", encode: u, decode: l};\n if (\"function\" == typeof t && \"object\" == typeof t.amd && t.amd) t(function () {\n return k\n }); else if (d && !d.nodeType) if (y) y.exports = k; else {\n var x = {}, A = x.hasOwnProperty;\n for (var B in k) A.call(k, B) && (d[B] = k[B])\n } else o.utf8 = k\n }(this)\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 32: [function (t, e) {\n (function (t) {\n var n = /^[\\],:{}\\s]*$/, r = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\n o = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, i = /(?:^|:|,)(?:\\s*\\[)+/g,\n s = /^\\s+/, a = /\\s+$/;\n e.exports = function (e) {\n return \"string\" == typeof e && e ? (e = e.replace(s, \"\").replace(a, \"\"), t.JSON && JSON.parse ? JSON.parse(e) : n.test(e.replace(r, \"@\").replace(o, \"]\").replace(i, \"\")) ? new Function(\"return \" + e)() : void 0) : null\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 33: [function (t, e, n) {\n n.encode = function (t) {\n var e = \"\";\n for (var n in t) t.hasOwnProperty(n) && (e.length && (e += \"&\"), e += encodeURIComponent(n) + \"=\" + encodeURIComponent(t[n]));\n return e\n }, n.decode = function (t) {\n for (var e = {}, n = t.split(\"&\"), r = 0, o = n.length; o > r; r++) {\n var i = n[r].split(\"=\");\n e[decodeURIComponent(i[0])] = decodeURIComponent(i[1])\n }\n return e\n }\n }, {}],\n 34: [function (t, e) {\n var n = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n r = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n e.exports = function (t) {\n var e = t, o = t.indexOf(\"[\"), i = t.indexOf(\"]\");\n -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, \";\") + t.substring(i, t.length));\n for (var s = n.exec(t || \"\"), a = {}, c = 14; c--;) a[r[c]] = s[c] || \"\";\n return -1 != o && -1 != i && (a.source = e, a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, \":\"), a.authority = a.authority.replace(\"[\", \"\").replace(\"]\", \"\").replace(/;/g, \":\"), a.ipv6uri = !0), a\n }\n }, {}],\n 35: [function (t, e) {\n function n(t, e) {\n var n;\n return n = e ? new o(t, e) : new o(t)\n }\n\n var r = function () {\n return self\n }(), o = r.WebSocket || r.MozWebSocket;\n e.exports = o ? n : null, o && (n.prototype = o.prototype)\n }, {}],\n 36: [function (t, e) {\n (function (n) {\n function r(t) {\n function e(t) {\n if (!t) return !1;\n if (n.Buffer && n.Buffer.isBuffer(t) || n.ArrayBuffer && t instanceof ArrayBuffer || n.Blob && t instanceof Blob || n.File && t instanceof File) return !0;\n if (o(t)) {\n for (var r = 0; r < t.length; r++) if (e(t[r])) return !0\n } else if (t && \"object\" == typeof t) {\n t.toJSON && (t = t.toJSON());\n for (var i in t) if (Object.prototype.hasOwnProperty.call(t, i) && e(t[i])) return !0\n }\n return !1\n }\n\n return e(t)\n }\n\n var o = t(\"isarray\");\n e.exports = r\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {isarray: 37}],\n 37: [function (t, e) {\n e.exports = Array.isArray || function (t) {\n return \"[object Array]\" == Object.prototype.toString.call(t)\n }\n }, {}],\n 38: [function (t, e) {\n var n = t(\"global\");\n try {\n e.exports = \"XMLHttpRequest\" in n && \"withCredentials\" in new n.XMLHttpRequest\n } catch (r) {\n e.exports = !1\n }\n }, {global: 39}],\n 39: [function (t, e) {\n e.exports = function () {\n return this\n }()\n }, {}],\n 40: [function (t, e) {\n var n = [].indexOf;\n e.exports = function (t, e) {\n if (n) return t.indexOf(e);\n for (var r = 0; r < t.length; ++r) if (t[r] === e) return r;\n return -1\n }\n }, {}],\n 41: [function (t, e, n) {\n var r = Object.prototype.hasOwnProperty;\n n.keys = Object.keys || function (t) {\n var e = [];\n for (var n in t) r.call(t, n) && e.push(n);\n return e\n }, n.values = function (t) {\n var e = [];\n for (var n in t) r.call(t, n) && e.push(t[n]);\n return e\n }, n.merge = function (t, e) {\n for (var n in e) r.call(e, n) && (t[n] = e[n]);\n return t\n }, n.length = function (t) {\n return n.keys(t).length\n }, n.isEmpty = function (t) {\n return 0 == n.length(t)\n }\n }, {}],\n 42: [function (t, e) {\n var n = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n r = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n e.exports = function (t) {\n for (var e = n.exec(t || \"\"), o = {}, i = 14; i--;) o[r[i]] = e[i] || \"\";\n return o\n }\n }, {}],\n 43: [function (t, e, n) {\n (function (e) {\n var r = t(\"isarray\"), o = t(\"./is-buffer\");\n n.deconstructPacket = function (t) {\n function e(t) {\n if (!t) return t;\n if (o(t)) {\n var i = {_placeholder: !0, num: n.length};\n return n.push(t), i\n }\n if (r(t)) {\n for (var s = new Array(t.length), a = 0; a < t.length; a++) s[a] = e(t[a]);\n return s\n }\n if (\"object\" == typeof t && !(t instanceof Date)) {\n var s = {};\n for (var c in t) s[c] = e(t[c]);\n return s\n }\n return t\n }\n\n var n = [], i = t.data, s = t;\n return s.data = e(i), s.attachments = n.length, {packet: s, buffers: n}\n }, n.reconstructPacket = function (t, e) {\n function n(t) {\n if (t && t._placeholder) {\n var o = e[t.num];\n return o\n }\n if (r(t)) {\n for (var i = 0; i < t.length; i++) t[i] = n(t[i]);\n return t\n }\n if (t && \"object\" == typeof t) {\n for (var s in t) t[s] = n(t[s]);\n return t\n }\n return t\n }\n\n return t.data = n(t.data), t.attachments = void 0, t\n }, n.removeBlobs = function (t, n) {\n function i(t, c, p) {\n if (!t) return t;\n if (e.Blob && t instanceof Blob || e.File && t instanceof File) {\n s++;\n var u = new FileReader;\n u.onload = function () {\n p ? p[c] = this.result : a = this.result, --s || n(a)\n }, u.readAsArrayBuffer(t)\n } else if (r(t)) for (var f = 0; f < t.length; f++) i(t[f], f, t); else if (t && \"object\" == typeof t && !o(t)) for (var h in t) i(t[h], h, t)\n }\n\n var s = 0, a = t;\n i(a), s || n(a)\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./is-buffer\": 45, isarray: 46}],\n 44: [function (t, e, n) {\n function r() {\n }\n\n function o(t) {\n var e = \"\", r = !1;\n return e += t.type, (n.BINARY_EVENT == t.type || n.BINARY_ACK == t.type) && (e += t.attachments, e += \"-\"), t.nsp && \"/\" != t.nsp && (r = !0, e += t.nsp), null != t.id && (r && (e += \",\", r = !1), e += t.id), null != t.data && (r && (e += \",\"), e += f.stringify(t.data)), u(\"encoded %j as %s\", t, e), e\n }\n\n function i(t, e) {\n function n(t) {\n var n = l.deconstructPacket(t), r = o(n.packet), i = n.buffers;\n i.unshift(r), e(i)\n }\n\n l.removeBlobs(t, n)\n }\n\n function s() {\n this.reconstructor = null\n }\n\n function a(t) {\n var e = {}, r = 0;\n if (e.type = Number(t.charAt(0)), null == n.types[e.type]) return p();\n if (n.BINARY_EVENT == e.type || n.BINARY_ACK == e.type) {\n for (var o = \"\"; \"-\" != t.charAt(++r) && (o += t.charAt(r), r != t.length);) ;\n if (o != Number(o) || \"-\" != t.charAt(r)) throw new Error(\"Illegal attachments\");\n e.attachments = Number(o)\n }\n if (\"/\" == t.charAt(r + 1)) for (e.nsp = \"\"; ++r;) {\n var i = t.charAt(r);\n if (\",\" == i) break;\n if (e.nsp += i, r == t.length) break\n } else e.nsp = \"/\";\n var s = t.charAt(r + 1);\n if (\"\" !== s && Number(s) == s) {\n for (e.id = \"\"; ++r;) {\n var i = t.charAt(r);\n if (null == i || Number(i) != i) {\n --r;\n break\n }\n if (e.id += t.charAt(r), r == t.length) break\n }\n e.id = Number(e.id)\n }\n if (t.charAt(++r)) try {\n e.data = f.parse(t.substr(r))\n } catch (a) {\n return p()\n }\n return u(\"decoded %s as %j\", t, e), e\n }\n\n function c(t) {\n this.reconPack = t, this.buffers = []\n }\n\n function p() {\n return {type: n.ERROR, data: \"parser error\"}\n }\n\n var u = t(\"debug\")(\"socket.io-parser\"), f = t(\"json3\"), h = (t(\"isarray\"), t(\"component-emitter\")),\n l = t(\"./binary\"), d = t(\"./is-buffer\");\n n.protocol = 4, n.types = [\"CONNECT\", \"DISCONNECT\", \"EVENT\", \"BINARY_EVENT\", \"ACK\", \"BINARY_ACK\", \"ERROR\"], n.CONNECT = 0, n.DISCONNECT = 1, n.EVENT = 2, n.ACK = 3, n.ERROR = 4, n.BINARY_EVENT = 5, n.BINARY_ACK = 6, n.Encoder = r, n.Decoder = s, r.prototype.encode = function (t, e) {\n if (u(\"encoding packet %j\", t), n.BINARY_EVENT == t.type || n.BINARY_ACK == t.type) i(t, e); else {\n var r = o(t);\n e([r])\n }\n }, h(s.prototype), s.prototype.add = function (t) {\n var e;\n if (\"string\" == typeof t) e = a(t), n.BINARY_EVENT == e.type || n.BINARY_ACK == e.type ? (this.reconstructor = new c(e), 0 === this.reconstructor.reconPack.attachments && this.emit(\"decoded\", e)) : this.emit(\"decoded\", e); else {\n if (!d(t) && !t.base64) throw new Error(\"Unknown type: \" + t);\n if (!this.reconstructor) throw new Error(\"got binary data when not reconstructing a packet\");\n e = this.reconstructor.takeBinaryData(t), e && (this.reconstructor = null, this.emit(\"decoded\", e))\n }\n }, s.prototype.destroy = function () {\n this.reconstructor && this.reconstructor.finishedReconstruction()\n }, c.prototype.takeBinaryData = function (t) {\n if (this.buffers.push(t), this.buffers.length == this.reconPack.attachments) {\n var e = l.reconstructPacket(this.reconPack, this.buffers);\n return this.finishedReconstruction(), e\n }\n return null\n }, c.prototype.finishedReconstruction = function () {\n this.reconPack = null, this.buffers = []\n }\n }, {\"./binary\": 43, \"./is-buffer\": 45, \"component-emitter\": 9, debug: 10, isarray: 46, json3: 47}],\n 45: [function (t, e) {\n (function (t) {\n function n(e) {\n return t.Buffer && t.Buffer.isBuffer(e) || t.ArrayBuffer && e instanceof ArrayBuffer\n }\n\n e.exports = n\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 46: [function (t, e) {\n e.exports = t(37)\n }, {}],\n 47: [function (e, n, r) {\n !function (e) {\n function n(t) {\n if (n[t] !== s) return n[t];\n var e;\n if (\"bug-string-char-index\" == t) e = \"a\" != \"a\"[0]; else if (\"json\" == t) e = n(\"json-stringify\") && n(\"json-parse\"); else {\n var r, o = '{\"a\":[1,true,false,null,\"\\\\u0000\\\\b\\\\n\\\\f\\\\r\\\\t\"]}';\n if (\"json-stringify\" == t) {\n var i = u.stringify, c = \"function\" == typeof i && f;\n if (c) {\n (r = function () {\n return 1\n }).toJSON = r;\n try {\n c = \"0\" === i(0) && \"0\" === i(new Number) && '\"\"' == i(new String) && i(a) === s && i(s) === s && i() === s && \"1\" === i(r) && \"[1]\" == i([r]) && \"[null]\" == i([s]) && \"null\" == i(null) && \"[null,null,null]\" == i([s, a, null]) && i({a: [r, !0, !1, null, \"\\x00\\b\\n\\f\\r\t\"]}) == o && \"1\" === i(null, r) && \"[\\n 1,\\n 2\\n]\" == i([1, 2], null, 1) && '\"-271821-04-20T00:00:00.000Z\"' == i(new Date(-864e13)) && '\"+275760-09-13T00:00:00.000Z\"' == i(new Date(864e13)) && '\"-000001-01-01T00:00:00.000Z\"' == i(new Date(-621987552e5)) && '\"1969-12-31T23:59:59.999Z\"' == i(new Date(-1))\n } catch (p) {\n c = !1\n }\n }\n e = c\n }\n if (\"json-parse\" == t) {\n var h = u.parse;\n if (\"function\" == typeof h) try {\n if (0 === h(\"0\") && !h(!1)) {\n r = h(o);\n var l = 5 == r.a.length && 1 === r.a[0];\n if (l) {\n try {\n l = !h('\"\t\"')\n } catch (p) {\n }\n if (l) try {\n l = 1 !== h(\"01\")\n } catch (p) {\n }\n if (l) try {\n l = 1 !== h(\"1.\")\n } catch (p) {\n }\n }\n }\n } catch (p) {\n l = !1\n }\n e = l\n }\n }\n return n[t] = !!e\n }\n\n var o, i, s, a = {}.toString, c = \"function\" == typeof t && t.amd, p = \"object\" == typeof JSON && JSON,\n u = \"object\" == typeof r && r && !r.nodeType && r;\n u && p ? (u.stringify = p.stringify, u.parse = p.parse) : u = e.JSON = p || {};\n var f = new Date(-0xc782b5b800cec);\n try {\n f = -109252 == f.getUTCFullYear() && 0 === f.getUTCMonth() && 1 === f.getUTCDate() && 10 == f.getUTCHours() && 37 == f.getUTCMinutes() && 6 == f.getUTCSeconds() && 708 == f.getUTCMilliseconds()\n } catch (h) {\n }\n if (!n(\"json\")) {\n var l = \"[object Function]\", d = \"[object Date]\", y = \"[object Number]\", g = \"[object String]\",\n m = \"[object Array]\", v = \"[object Boolean]\", b = n(\"bug-string-char-index\");\n if (!f) var w = Math.floor, k = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n x = function (t, e) {\n return k[e] + 365 * (t - 1970) + w((t - 1969 + (e = +(e > 1))) / 4) - w((t - 1901 + e) / 100) + w((t - 1601 + e) / 400)\n };\n (o = {}.hasOwnProperty) || (o = function (t) {\n var e, n = {};\n return (n.__proto__ = null, n.__proto__ = {toString: 1}, n).toString != a ? o = function (t) {\n var e = this.__proto__, n = t in (this.__proto__ = null, this);\n return this.__proto__ = e, n\n } : (e = n.constructor, o = function (t) {\n var n = (this.constructor || e).prototype;\n return t in this && !(t in n && this[t] === n[t])\n }), n = null, o.call(this, t)\n });\n var A = {\"boolean\": 1, number: 1, string: 1, undefined: 1}, B = function (t, e) {\n var n = typeof t[e];\n return \"object\" == n ? !!t[e] : !A[n]\n };\n if (i = function (t, e) {\n var n, r, s, c = 0;\n (n = function () {\n this.valueOf = 0\n }).prototype.valueOf = 0, r = new n;\n for (s in r) o.call(r, s) && c++;\n return n = r = null, c ? i = 2 == c ? function (t, e) {\n var n, r = {}, i = a.call(t) == l;\n for (n in t) i && \"prototype\" == n || o.call(r, n) || !(r[n] = 1) || !o.call(t, n) || e(n)\n } : function (t, e) {\n var n, r, i = a.call(t) == l;\n for (n in t) i && \"prototype\" == n || !o.call(t, n) || (r = \"constructor\" === n) || e(n);\n (r || o.call(t, n = \"constructor\")) && e(n)\n } : (r = [\"valueOf\", \"toString\", \"toLocaleString\", \"propertyIsEnumerable\", \"isPrototypeOf\", \"hasOwnProperty\", \"constructor\"], i = function (t, e) {\n var n, i, s = a.call(t) == l,\n c = !s && \"function\" != typeof t.constructor && B(t, \"hasOwnProperty\") ? t.hasOwnProperty : o;\n for (n in t) s && \"prototype\" == n || !c.call(t, n) || e(n);\n for (i = r.length; n = r[--i]; c.call(t, n) && e(n)) ;\n }), i(t, e)\n }, !n(\"json-stringify\")) {\n var C = {92: \"\\\\\\\\\", 34: '\\\\\"', 8: \"\\\\b\", 12: \"\\\\f\", 10: \"\\\\n\", 13: \"\\\\r\", 9: \"\\\\t\"},\n S = \"000000\", E = function (t, e) {\n return (S + (e || 0)).slice(-t)\n }, T = \"\\\\u00\", j = function (t) {\n var e, n = '\"', r = 0, o = t.length, i = o > 10 && b;\n for (i && (e = t.split(\"\")); o > r; r++) {\n var s = t.charCodeAt(r);\n switch (s) {\n case 8:\n case 9:\n case 10:\n case 12:\n case 13:\n case 34:\n case 92:\n n += C[s];\n break;\n default:\n if (32 > s) {\n n += T + E(2, s.toString(16));\n break\n }\n n += i ? e[r] : b ? t.charAt(r) : t[r]\n }\n }\n return n + '\"'\n }, _ = function (t, e, n, r, c, p, u) {\n var f, h, l, b, k, A, B, C, S, T, P, R, N, O, U, q;\n try {\n f = e[t]\n } catch (D) {\n }\n if (\"object\" == typeof f && f) if (h = a.call(f), h != d || o.call(f, \"toJSON\")) \"function\" == typeof f.toJSON && (h != y && h != g && h != m || o.call(f, \"toJSON\")) && (f = f.toJSON(t)); else if (f > -1 / 0 && 1 / 0 > f) {\n if (x) {\n for (k = w(f / 864e5), l = w(k / 365.2425) + 1970 - 1; x(l + 1, 0) <= k; l++) ;\n for (b = w((k - x(l, 0)) / 30.42); x(l, b + 1) <= k; b++) ;\n k = 1 + k - x(l, b), A = (f % 864e5 + 864e5) % 864e5, B = w(A / 36e5) % 24, C = w(A / 6e4) % 60, S = w(A / 1e3) % 60, T = A % 1e3\n } else l = f.getUTCFullYear(), b = f.getUTCMonth(), k = f.getUTCDate(), B = f.getUTCHours(), C = f.getUTCMinutes(), S = f.getUTCSeconds(), T = f.getUTCMilliseconds();\n f = (0 >= l || l >= 1e4 ? (0 > l ? \"-\" : \"+\") + E(6, 0 > l ? -l : l) : E(4, l)) + \"-\" + E(2, b + 1) + \"-\" + E(2, k) + \"T\" + E(2, B) + \":\" + E(2, C) + \":\" + E(2, S) + \".\" + E(3, T) + \"Z\"\n } else f = null;\n if (n && (f = n.call(e, t, f)), null === f) return \"null\";\n if (h = a.call(f), h == v) return \"\" + f;\n if (h == y) return f > -1 / 0 && 1 / 0 > f ? \"\" + f : \"null\";\n if (h == g) return j(\"\" + f);\n if (\"object\" == typeof f) {\n for (O = u.length; O--;) if (u[O] === f) throw TypeError();\n if (u.push(f), P = [], U = p, p += c, h == m) {\n for (N = 0, O = f.length; O > N; N++) R = _(N, f, n, r, c, p, u), P.push(R === s ? \"null\" : R);\n q = P.length ? c ? \"[\\n\" + p + P.join(\",\\n\" + p) + \"\\n\" + U + \"]\" : \"[\" + P.join(\",\") + \"]\" : \"[]\"\n } else i(r || f, function (t) {\n var e = _(t, f, n, r, c, p, u);\n e !== s && P.push(j(t) + \":\" + (c ? \" \" : \"\") + e)\n }), q = P.length ? c ? \"{\\n\" + p + P.join(\",\\n\" + p) + \"\\n\" + U + \"}\" : \"{\" + P.join(\",\") + \"}\" : \"{}\";\n return u.pop(), q\n }\n };\n u.stringify = function (t, e, n) {\n var r, o, i, s;\n if (\"function\" == typeof e || \"object\" == typeof e && e) if ((s = a.call(e)) == l) o = e; else if (s == m) {\n i = {};\n for (var c, p = 0, u = e.length; u > p; c = e[p++], s = a.call(c), (s == g || s == y) && (i[c] = 1)) ;\n }\n if (n) if ((s = a.call(n)) == y) {\n if ((n -= n % 1) > 0) for (r = \"\", n > 10 && (n = 10); r.length < n; r += \" \") ;\n } else s == g && (r = n.length <= 10 ? n : n.slice(0, 10));\n return _(\"\", (c = {}, c[\"\"] = t, c), o, i, r, \"\", [])\n }\n }\n if (!n(\"json-parse\")) {\n var P, R, N = String.fromCharCode,\n O = {92: \"\\\\\", 34: '\"', 47: \"/\", 98: \"\\b\", 116: \"\t\", 110: \"\\n\", 102: \"\\f\", 114: \"\\r\"},\n U = function () {\n throw P = R = null, SyntaxError()\n }, q = function () {\n for (var t, e, n, r, o, i = R, s = i.length; s > P;) switch (o = i.charCodeAt(P)) {\n case 9:\n case 10:\n case 13:\n case 32:\n P++;\n break;\n case 123:\n case 125:\n case 91:\n case 93:\n case 58:\n case 44:\n return t = b ? i.charAt(P) : i[P], P++, t;\n case 34:\n for (t = \"@\", P++; s > P;) if (o = i.charCodeAt(P), 32 > o) U(); else if (92 == o) switch (o = i.charCodeAt(++P)) {\n case 92:\n case 34:\n case 47:\n case 98:\n case 116:\n case 110:\n case 102:\n case 114:\n t += O[o], P++;\n break;\n case 117:\n for (e = ++P, n = P + 4; n > P; P++) o = i.charCodeAt(P), o >= 48 && 57 >= o || o >= 97 && 102 >= o || o >= 65 && 70 >= o || U();\n t += N(\"0x\" + i.slice(e, P));\n break;\n default:\n U()\n } else {\n if (34 == o) break;\n for (o = i.charCodeAt(P), e = P; o >= 32 && 92 != o && 34 != o;) o = i.charCodeAt(++P);\n t += i.slice(e, P)\n }\n if (34 == i.charCodeAt(P)) return P++, t;\n U();\n default:\n if (e = P, 45 == o && (r = !0, o = i.charCodeAt(++P)), o >= 48 && 57 >= o) {\n for (48 == o && (o = i.charCodeAt(P + 1), o >= 48 && 57 >= o) && U(), r = !1; s > P && (o = i.charCodeAt(P), o >= 48 && 57 >= o); P++) ;\n if (46 == i.charCodeAt(P)) {\n for (n = ++P; s > n && (o = i.charCodeAt(n), o >= 48 && 57 >= o); n++) ;\n n == P && U(), P = n\n }\n if (o = i.charCodeAt(P), 101 == o || 69 == o) {\n for (o = i.charCodeAt(++P), (43 == o || 45 == o) && P++, n = P; s > n && (o = i.charCodeAt(n), o >= 48 && 57 >= o); n++) ;\n n == P && U(), P = n\n }\n return +i.slice(e, P)\n }\n if (r && U(), \"true\" == i.slice(P, P + 4)) return P += 4, !0;\n if (\"false\" == i.slice(P, P + 5)) return P += 5, !1;\n if (\"null\" == i.slice(P, P + 4)) return P += 4, null;\n U()\n }\n return \"$\"\n }, D = function (t) {\n var e, n;\n if (\"$\" == t && U(), \"string\" == typeof t) {\n if (\"@\" == (b ? t.charAt(0) : t[0])) return t.slice(1);\n if (\"[\" == t) {\n for (e = []; t = q(), \"]\" != t; n || (n = !0)) n && (\",\" == t ? (t = q(), \"]\" == t && U()) : U()), \",\" == t && U(), e.push(D(t));\n return e\n }\n if (\"{\" == t) {\n for (e = {}; t = q(), \"}\" != t; n || (n = !0)) n && (\",\" == t ? (t = q(), \"}\" == t && U()) : U()), (\",\" == t || \"string\" != typeof t || \"@\" != (b ? t.charAt(0) : t[0]) || \":\" != q()) && U(), e[t.slice(1)] = D(q());\n return e\n }\n U()\n }\n return t\n }, I = function (t, e, n) {\n var r = L(t, e, n);\n r === s ? delete t[e] : t[e] = r\n }, L = function (t, e, n) {\n var r, o = t[e];\n if (\"object\" == typeof o && o) if (a.call(o) == m) for (r = o.length; r--;) I(o, r, n); else i(o, function (t) {\n I(o, t, n)\n });\n return n.call(t, e, o)\n };\n u.parse = function (t, e) {\n var n, r;\n return P = 0, R = \"\" + t, n = D(q()), \"$\" != q() && U(), P = R = null, e && a.call(e) == l ? L((r = {}, r[\"\"] = n, r), \"\", e) : n\n }\n }\n }\n c && t(function () {\n return u\n })\n }(this)\n }, {}],\n 48: [function (t, e) {\n function n(t, e) {\n var n = [];\n e = e || 0;\n for (var r = e || 0; r < t.length; r++) n[r - e] = t[r];\n return n\n }\n\n e.exports = n\n }, {}]\n }, {}, [1])(1)\n}\n","import { io } from 'socket.io-client'\nimport type { SocketTyped } from '@/types/socket'\n\nconst importModules: Record<string, { default?: unknown }> = import.meta.glob(\n './v*.js',\n { eager: true }\n)\n\nconst SOCKET_NAME_REGEX = /v\\d+_\\d+_\\d+/\n\nexport type TypedSocketIo = (...args: Parameters<typeof io>) => SocketTyped\n\nexport type SocketIoFn = () => TypedSocketIo\n\nfunction isSocketIoFn (socket: unknown): socket is SocketIoFn {\n return typeof socket === 'function'\n}\n\nconst sockets = Object.entries(importModules)\n .reduce<Record<string, TypedSocketIo>>(\n (acc, currentValue) => {\n const module = currentValue[1].default\n const moduleName = currentValue[0].match(SOCKET_NAME_REGEX)?.[0]\n\n if (isSocketIoFn(module) && moduleName) {\n acc[moduleName] = module()\n }\n\n return acc\n },\n {}\n )\n\nconst getSocketVersion = (version: string) => {\n if (version in sockets) {\n return sockets[version]\n } else {\n throw new Error(`Socket version ${version} not found`)\n }\n}\n\nconst makeSocketVersion = (version: string, ...args: Parameters<typeof io>) => {\n const socket = getSocketVersion(version)\n\n return socket(...args)\n}\n\nexport default {\n ...sockets,\n getSocketVersion,\n makeSocketVersion\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum CallStatusEnum {\n RINGING = 'Ringing',\n TALKING = 'Talking',\n DIALING = 'Dialing',\n HOLD = 'Hold',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum CallTypeEnum {\n INCOMING = 'Incoming',\n OUTGOING = 'Outgoing',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ConnectionStatusEnum {\n CONNECTED = 'connected',\n DISCONNECTED = 'disconnected',\n TRYING_TO_CONNECT = 'tryingToConnect',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DialerTypeEnum {\n AUTOMATIC = 'Automatic',\n IVR = 'IVR',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DirectionEnum {\n INCOMINC = 'Incoming',\n OUTGOING = 'Outgoing',\n SPY = 'Spy',\n CLICK2CALL = 'Click2Call',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DoNotCallMeStatusCodeEnum {\n RESPONSE_FROM_API_VALID = 'RESPONSE_FROM_API_VALID',\n RESPONSE_FROM_API_INVALID = 'RESPONSE_FROM_API_INVALID',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum EventsEnum {\n ALL_DIALER_STATUS = 'AllDialersStatus',\n ALL_EXTENSION_STATUS = 'AllExtensionsStatus',\n ALL_USERS_STATUS = 'AllUsersStatus',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n CONNECT_ERROR_EVENT = 'connect_error',\n EXTENSION_EVENT = 'ExtensionEvent',\n KEEP_ALIVE = 'keepalive',\n KEEP_ALIVE_RESPONSE = 'keepaliveResponse',\n LOGIN_STATUS = 'loginStatus',\n LOGIN_SUCCESS = 'loginSuccess',\n QUEUE_EVENT = 'QueueEvent',\n ONLINE_STATUS_EVENT = 'onlineStatusEvent',\n DIALER_EVENT = 'DialerEvent',\n EXTENSIONS_UPDATED = 'ExtensionsUpdated',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ExtensionEventReasonEnum {\n NEWCALL = 'NEWCALL',\n ANSWER = 'ANSWER',\n HOLD = 'HOLD',\n UNHOLD = 'UNHOLD',\n HANGUP = 'HANGUP',\n USER_STATUS_UPDATE = 'userStatusUpdate',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ExtensionHangupCauseEnum {\n NORMAL_HANGUP = 'Normal hangup',\n USER_BUSY = 'User busy',\n CALL_REJECTED = 'Call Rejected',\n UNALLOCATED_NUMBER = 'Unallocated (unassigned) number',\n UNKNOWN = 'Unknown',\n NO_USER_RESPONDING = 'No user responding',\n USER_ALERTING = 'User alerting, no answer',\n ANSWERED_ELSEWHERE = 'Answered elsewhere',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum QueueEventReasonEnum {\n ANSWER = 'ANSWER',\n ABANDONED = 'ABANDONED',\n EXIT = 'EXIT',\n JOIN = 'JOIN',\n}","import { EventsEnum, Extension, ExtensionEventReasonEnum, type QueueCall } from '@voicenter-team/real-time-events-types'\nimport { EventDataMap, EventDataMapExtended } from '@/types/events'\nimport { CurrentCallUTCExtended, ExtensionCallSDK, ExtensionEventExtended, ExtensionUTCExtended } from '@/types/sdk-extension-extended'\nimport type { ExtensionCall } from '@voicenter-team/real-time-events-types/dist/models/ExtensionCall'\nimport { QueueCallSDK } from '@/types/sdk-queue-extended'\n\ntype NumericKeys<T> = {\n [P in keyof T]: T[P] extends number\n ? P extends string\n ? P\n : never\n : never\n}[keyof T]\n\ntype PropertyWithUTC<T extends string> = `${T}_UTC` | `${T}_UTC_CLIENT`\n\ntype WithUTCProperties<T extends object, K extends NumericKeys<T>> = T & {\n [P in K as PropertyWithUTC<P & string>]: number\n}\n\nexport default class EventsHandler {\n public static mapExtensionEvent (data: EventDataMap[EventsEnum.EXTENSION_EVENT]): EventDataMapExtended[EventsEnum.EXTENSION_EVENT] {\n const reason = data.reason\n let dataExtended: undefined | ExtensionEventExtended\n let currentCallExtended: undefined | CurrentCallUTCExtended\n\n if (data.data.currentCall) {\n currentCallExtended = this.mapExtensionCall(data, data.data.currentCall)\n }\n\n const extensionExtended = this.mapExtensionData(data, data.data)\n\n if (reason === ExtensionEventReasonEnum.HANGUP) {\n dataExtended = {\n ...data,\n reason,\n data: {\n ...extensionExtended,\n currentCall: currentCallExtended ?\n {\n ...currentCallExtended,\n duration: currentCallExtended.callAnswered_UTC_CLIENT ? Date.now() - currentCallExtended.callAnswered_UTC_CLIENT : 0\n }\n : undefined,\n calls: data.data.calls?.map((call) => {\n const callExtended = this.mapExtensionCall(data, call)\n\n return {\n ...callExtended,\n duration: callExtended.callAnswered_UTC_CLIENT ? Date.now() - callExtended.callAnswered_UTC_CLIENT : 0\n }\n })\n }\n }\n } else {\n dataExtended = {\n ...data,\n data: {\n ...extensionExtended,\n currentCall: currentCallExtended,\n calls: data.data.calls?.map((call) => this.mapExtensionCall(data, call))\n },\n reason\n }\n }\n\n return dataExtended\n }\n\n public static mapAllExtensionStatus (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS]): EventDataMapExtended[EventsEnum.ALL_EXTENSION_STATUS] {\n return {\n ...data,\n extensions: data.extensions.map((extension) => {\n return {\n ...this.mapExtensionData(data, extension),\n currentCall: extension.currentCall\n ? this.mapExtensionCall(data, extension.currentCall)\n : undefined,\n calls: extension.calls?.map((call) => this.mapExtensionCall(data, call))\n }\n })\n }\n }\n\n public static mapExtensionData (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS] | EventDataMap[EventsEnum.EXTENSION_EVENT], extension: Extension): ExtensionUTCExtended {\n return this.configureUTCForObject(\n extension,\n [\n {\n key: 'lastAnsweredCallEventEpoch',\n format: 'sec'\n },\n {\n key: 'lastCallEventEpoch',\n format: 'sec'\n },\n {\n key: 'lastHangupCallEpoch',\n format: 'sec'\n },\n {\n key: 'representativeUpdated',\n format: 'ms'\n }\n ],\n data.servertime,\n data.servertimeoffset\n )\n }\n\n public static mapExtensionCall (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS] | EventDataMap[EventsEnum.EXTENSION_EVENT], call: ExtensionCall): ExtensionCallSDK {\n return this.configureUTCForObject(\n call,\n [\n {\n key: 'callAnswered',\n format: 'sec'\n },\n {\n key: 'callStarted',\n format: 'sec'\n }\n ],\n data.servertime,\n data.servertimeoffset\n )\n }\n\n public static mapQueueCall (data: EventDataMap[EventsEnum.QUEUE_EVENT] | EventDataMap[EventsEnum.LOGIN_STATUS], call: QueueCall): QueueCallSDK {\n return this.configureUTCForObject(\n call,\n [\n {\n key: 'JoinTimeStamp',\n format: 'sec'\n },\n {\n key: 'VHJoinTimeStamp', // TODO: should add the VHJoinTimeStamp in TS definitions\n format: 'sec'\n }\n ],\n data.servertime, // TODO: currently the TS error because in LoginStatusEvent type the key is \"serverTime\" but actual is \"servertime\", remove comment after fixed\n data.servertimeoffset // TODO: currently the TS error because in LoginStatusEvent type the key is \"serverTimeOffset\" but actual is \"servertimeoffset\", remove comment after fixed\n )\n }\n\n public static mapLoginStatusEvent (data: EventDataMap[EventsEnum.LOGIN_STATUS]): EventDataMapExtended[EventsEnum.LOGIN_STATUS] {\n return {\n ...data,\n queues: data.queues.map(queue => {\n return {\n ...queue,\n Calls: queue.Calls.map(call => this.mapQueueCall(data, call))\n }\n })\n }\n }\n\n public static mapQueueEvent (data: EventDataMap[EventsEnum.QUEUE_EVENT]): EventDataMapExtended[EventsEnum.QUEUE_EVENT] {\n return {\n ...data,\n data: {\n ...data.data,\n Calls: data.data.Calls.map(call => this.mapQueueCall(data, call))\n }\n }\n }\n\n private static assignProperty <T extends object, K extends string> (obj: T, key: K, value: number) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any)[key] = value\n }\n\n /**\n * Configures UTC timestamps for an object by converting server-time properties to both UTC and client-local UTC timestamps\n *\n * For each specified property, creates two new timestamp properties:\n * - property_UTC: Server timestamp converted to UTC milliseconds\n * - property_UTC_CLIENT: Server timestamp converted to client-local UTC milliseconds\n *\n * @example\n * // Input object\n * const data = {\n * callStarted: 1634567890 // Unix timestamp in seconds\n * }\n *\n * // After configureUTCForObject:\n * {\n * callStarted: 1634567890,\n * callStarted_UTC: 1634567890000, // Converted to UTC ms\n * callStarted_UTC_CLIENT: 1634571490000 // Converted to client-local UTC ms\n * }\n *\n * @param data - Source object containing server timestamp properties\n * @param properties - Array of property configs specifying which properties to convert and their format\n * @param servertime - Current server time in seconds\n * @param servertimeoffset - Server timezone offset in minutes\n * @private\n * @returns Original object extended with new _UTC and _UTC_CLIENT properties for each configured timestamp\n */\n private static configureUTCForObject<T extends object, K extends NumericKeys<T>> (\n data: T,\n properties: Array<{ key: K, format: 'sec' | 'ms' }>,\n servertime: number,\n servertimeoffset: number\n ): WithUTCProperties<T, K> {\n const serverTimeUTC: number = (servertime - servertimeoffset * 60) * 1000\n const diffServerAndClient: number = Date.now() - serverTimeUTC\n\n type UTCProps = {\n [P in K]: number\n } & {\n [P in K as `${P}_UTC`]: number\n } & {\n [P in K as `${P}_UTC_CLIENT`]: number\n }\n\n const extendedProperties: Partial<UTCProps> = {}\n\n properties.forEach((property) => {\n const value = data[property.key]\n const key = property.key\n\n if (value !== 0 && typeof value === 'number' && !isNaN(value)) {\n let valueFormatted: number = value\n\n if (property.format === 'ms') {\n valueFormatted = Math.floor(valueFormatted / 1000)\n }\n\n const baseTime: number = (valueFormatted - servertimeoffset * 60) * 1000\n\n this.assignProperty(extendedProperties, `${key}_UTC`, baseTime)\n this.assignProperty(extendedProperties, `${key}_UTC_CLIENT`, baseTime + diffServerAndClient)\n } else {\n this.assignProperty(extendedProperties, `${key}_UTC`, 0)\n this.assignProperty(extendedProperties, `${key}_UTC_CLIENT`, 0)\n }\n })\n\n return {\n ...data,\n ...extendedProperties,\n } as WithUTCProperties<T, K>\n }\n}\n","export enum ServerListenerEventsEnum {\n UPDATE_MONITORED_EXTENSIONS = 'updateMonitoredExtensions',\n KEEP_ALIVE = 'keepalive'\n}\n","import { ManagerOptions, Socket, SocketOptions } from 'socket.io-client'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport sockets, { TypedSocketIo } from '@/classes/socket-io/versions'\nimport { SocketTyped } from '@/types/socket'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport {\n AllDialersStatusEvent,\n AllExtensionStatusEvent,\n ConnectionStatusEnum,\n DialerEvent,\n EventsEnum,\n ExtensionEvent,\n ExtensionsUpdated,\n KeepAliveResponseEvent,\n LoginStatusEvent,\n LoginSuccessEvent,\n QueueEvent\n} from '@voicenter-team/real-time-events-types'\nimport { StorageClass } from '@/classes/storage/storage.class'\nimport EventsHandler from '@/classes/socket-io/events-handler'\nimport { ServerListenerEventsEnum } from '@/enum/socket.enum'\n\nexport class SocketIoClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n\n if (typeof window !== 'undefined') {\n window.addEventListener('offline', () => {\n this.closeAllConnections()\n })\n\n window.addEventListener('online', () => {\n setTimeout(() => {\n if (this.keepReconnectTimeout) {\n clearTimeout(this.keepReconnectTimeout)\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n }, 5000)\n })\n }\n\n if (typeof self !== 'undefined' && typeof window === 'undefined' && typeof global === 'undefined') {\n self.addEventListener('offline', () => {\n this.closeAllConnections()\n })\n\n self.addEventListener('online', () => {\n setTimeout(() => {\n if (this.keepReconnectTimeout) {\n clearTimeout(this.keepReconnectTimeout)\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n }, 5000)\n })\n }\n }\n\n public io: SocketTyped | undefined\n public ioFunction: TypedSocketIo | undefined\n public lastEventTimestamp = new Date().getTime()\n public doReconnect = true\n private keepAliveInterval: ReturnType<typeof setInterval> | undefined\n private keepReconnectInterval: ReturnType<typeof setInterval> | undefined\n private keepReconnectTimeout: ReturnType<typeof setTimeout> | undefined\n private connected = false\n private reconnectionTime = 20\n\n public getSocketIoFunction (Client: string) {\n const parsedArray = Client.split('v=')\n\n const version = 'v'\n .concat(parsedArray[parsedArray.length - 1])\n .replaceAll('.', '_')\n\n this.ioFunction = sockets.getSocketVersion(version)\n }\n\n public initSocketConnection () {\n const token = this.eventsSdkClass.authClass.token\n\n const protocol = this.eventsSdkClass.options.protocol\n\n const server = this.eventsSdkClass.server\n\n try {\n const domain = server ? server.Domain : this.eventsSdkClass.URL\n\n const url = server ? `${protocol}://${domain}` : this.eventsSdkClass.URL\n\n const options: Partial<ManagerOptions & SocketOptions> = {\n reconnection: false,\n upgrade: false,\n transports: [ 'websocket' ],\n forceNew: true,\n query: {\n token\n },\n timeout: this.eventsSdkClass.options.timeout\n }\n\n if (this.ioFunction && url) {\n this.io = this.ioFunction(url, options)\n\n this.eventsSdkClass.eventEmitterClass.emit(\n EventsEnum.ONLINE_STATUS_EVENT,\n {\n attemptToConnect: url,\n connectionStatus: ConnectionStatusEnum.TRYING_TO_CONNECT\n }\n )\n\n this.eventsSdkClass.loggerClass.sdkAttemptToConnect(domain)\n } else {\n throw new Error('Socket server url no defined')\n }\n } catch (error) {\n this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(error as Error)\n }\n }\n\n public clearKeepAliveInterval () {\n if (this.keepAliveInterval) {\n clearInterval(this.keepAliveInterval)\n }\n }\n\n public initKeepAlive () {\n if (this.keepAliveInterval) {\n clearInterval(this.keepAliveInterval)\n }\n\n this.keepAliveInterval = setInterval(async () => {\n const now = new Date().getTime()\n\n if (now > this.lastEventTimestamp + this.eventsSdkClass.options.keepAliveTimeout && this.io && this.eventsSdkClass.authClass.token) {\n this.eventsSdkClass.emit(ServerListenerEventsEnum.KEEP_ALIVE, this.eventsSdkClass.authClass.token)\n\n this.eventsSdkClass.loggerClass.keepAliveEmit()\n\n return\n }\n\n }, this.eventsSdkClass.options.keepAliveTimeout)\n }\n\n public closeAllConnections () {\n if (this.io) {\n this.io.close()\n\n this.io?.disconnect()\n\n this.io = undefined\n }\n\n this.eventsSdkClass.loggerClass.stop()\n\n StorageClass.clearSessionStorage()\n }\n\n public initSocketEvents () {\n if (!this.io) {\n return\n }\n\n this.io\n .on(EventsEnum.LOGIN_SUCCESS, (data) => this.onLoginSuccessEvent(data, EventsEnum.LOGIN_SUCCESS))\n .on(EventsEnum.QUEUE_EVENT, (data) => this.onQueueEvent(data, EventsEnum.QUEUE_EVENT))\n .on(EventsEnum.EXTENSION_EVENT, (data) => this.onExtensionEvent(data, EventsEnum.EXTENSION_EVENT))\n .on(EventsEnum.DIALER_EVENT, (data) => this.onDialerEvent(data, EventsEnum.DIALER_EVENT))\n .on(EventsEnum.LOGIN_STATUS, (data) => this.onLoginStatusEvent(data, EventsEnum.LOGIN_STATUS))\n .on(EventsEnum.ALL_EXTENSION_STATUS, (data) => this.onAllExtensionStatus(data, EventsEnum.ALL_EXTENSION_STATUS))\n .on(EventsEnum.ALL_DIALER_STATUS, (data) => this.onAllDialerStatus(data, EventsEnum.ALL_DIALER_STATUS))\n .on(EventsEnum.KEEP_ALIVE_RESPONSE, (data) => this.onKeepAliveResponse(data))\n .on(EventsEnum.EXTENSIONS_UPDATED, (data) => this.onExtensionsUpdatedEvent(data, EventsEnum.EXTENSIONS_UPDATED))\n .on(EventsEnum.CONNECT, () => this.onConnect())\n .on(EventsEnum.DISCONNECT, (data) => this.onDisconnect(data))\n .on(EventsEnum.CONNECT_ERROR_EVENT, (data) => this.onConnectError(data))\n }\n\n private onLoginSuccessEvent (data: LoginSuccessEvent, eventName: EventsEnum.LOGIN_SUCCESS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onQueueEvent (data: QueueEvent, eventName: EventsEnum.QUEUE_EVENT) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, EventsHandler.mapQueueEvent(data))\n }\n\n private onExtensionEvent (data: ExtensionEvent, eventName: EventsEnum.EXTENSION_EVENT) {\n const dataExtended = EventsHandler.mapExtensionEvent(data)\n\n if (dataExtended) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, dataExtended)\n }\n }\n\n private onDialerEvent (data: DialerEvent, eventName: EventsEnum.DIALER_EVENT) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onLoginStatusEvent (data: LoginStatusEvent, eventName: EventsEnum.LOGIN_STATUS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, EventsHandler.mapLoginStatusEvent(data))\n }\n\n private onAllExtensionStatus (data: AllExtensionStatusEvent, eventName: EventsEnum.ALL_EXTENSION_STATUS) {\n const dataExtended = EventsHandler.mapAllExtensionStatus(data)\n\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, dataExtended)\n }\n\n private onAllDialerStatus (data: AllDialersStatusEvent, eventName: EventsEnum.ALL_DIALER_STATUS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onKeepAliveResponse (data: KeepAliveResponseEvent) {\n this.eventsSdkClass.loggerClass.keepAliveResponse(data)\n\n if (data.errorCode) {\n this.initSocketConnection()\n\n return\n }\n\n if (this.connected) {\n this.lastEventTimestamp = new Date().getTime()\n } else {\n this.initSocketConnection()\n }\n }\n\n private onExtensionsUpdatedEvent (data: ExtensionsUpdated, eventName: EventsEnum.EXTENSIONS_UPDATED) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onConnect () {\n this.connected = true\n\n if (this.keepReconnectInterval) {\n clearInterval(this.keepReconnectInterval)\n }\n\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: ConnectionStatusEnum.CONNECTED\n })\n\n this.eventsSdkClass.loggerClass.start().then(() => {\n this.eventsSdkClass.loggerClass.sdkConnectionSuccess()\n })\n }\n\n private onDisconnect (reason: Socket.DisconnectReason) {\n this.connected = false\n\n if (!this.doReconnect) {\n return\n }\n\n this.closeAllConnections()\n\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: this.doReconnect ? ConnectionStatusEnum.TRYING_TO_CONNECT : ConnectionStatusEnum.DISCONNECTED\n })\n\n this.eventsSdkClass.loggerClass.sdkDisconnect([ reason ])\n\n this.keepReconnectTimeout = setTimeout(\n () => {\n this.reconnectionTime = this.reconnectionTime + 20\n\n if (this.reconnectionTime > 120) {\n this.reconnectionTime = 20\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n },\n this.reconnectionTime * 1000\n )\n }\n\n private onConnectError (data: Error) {\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: this.doReconnect ? ConnectionStatusEnum.TRYING_TO_CONNECT : ConnectionStatusEnum.DISCONNECTED\n })\n\n this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(data)\n\n this.keepReconnectTimeout = setTimeout(\n () => {\n this.reconnectionTime = this.reconnectionTime + 20\n\n if (this.reconnectionTime > 60) {\n this.reconnectionTime = 20\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n },\n this.reconnectionTime * 1000\n )\n }\n}\n","var ke = Object.defineProperty;\nvar _e = (s, e, t) => e in s ? ke(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;\nvar u = (s, e, t) => (_e(s, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nconst b = /* @__PURE__ */ Object.create(null);\nb.open = \"0\";\nb.close = \"1\";\nb.ping = \"2\";\nb.pong = \"3\";\nb.message = \"4\";\nb.upgrade = \"5\";\nb.noop = \"6\";\nconst I = /* @__PURE__ */ Object.create(null);\nObject.keys(b).forEach((s) => {\n I[b[s]] = s;\n});\nconst P = { type: \"error\", data: \"parser error\" }, ce = typeof Blob == \"function\" || typeof Blob < \"u\" && Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\", he = typeof ArrayBuffer == \"function\", ue = (s) => typeof ArrayBuffer.isView == \"function\" ? ArrayBuffer.isView(s) : s && s.buffer instanceof ArrayBuffer, J = ({ type: s, data: e }, t, n) => ce && e instanceof Blob ? t ? n(e) : Q(e, n) : he && (e instanceof ArrayBuffer || ue(e)) ? t ? n(e) : Q(new Blob([e]), n) : n(b[s] + (e || \"\")), Q = (s, e) => {\n const t = new FileReader();\n return t.onload = function() {\n const n = t.result.split(\",\")[1];\n e(\"b\" + (n || \"\"));\n }, t.readAsDataURL(s);\n};\nfunction j(s) {\n return s instanceof Uint8Array ? s : s instanceof ArrayBuffer ? new Uint8Array(s) : new Uint8Array(s.buffer, s.byteOffset, s.byteLength);\n}\nlet U;\nfunction Oe(s, e) {\n if (ce && s.data instanceof Blob)\n return s.data.arrayBuffer().then(j).then(e);\n if (he && (s.data instanceof ArrayBuffer || ue(s.data)))\n return e(j(s.data));\n J(s, !1, (t) => {\n U || (U = new TextEncoder()), e(U.encode(t));\n });\n}\nconst X = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", A = typeof Uint8Array > \"u\" ? [] : new Uint8Array(256);\nfor (let s = 0; s < X.length; s++)\n A[X.charCodeAt(s)] = s;\nconst Ae = (s) => {\n let e = s.length * 0.75, t = s.length, n, i = 0, r, o, c, h;\n s[s.length - 1] === \"=\" && (e--, s[s.length - 2] === \"=\" && e--);\n const g = new ArrayBuffer(e), y = new Uint8Array(g);\n for (n = 0; n < t; n += 4)\n r = A[s.charCodeAt(n)], o = A[s.charCodeAt(n + 1)], c = A[s.charCodeAt(n + 2)], h = A[s.charCodeAt(n + 3)], y[i++] = r << 2 | o >> 4, y[i++] = (o & 15) << 4 | c >> 2, y[i++] = (c & 3) << 6 | h & 63;\n return g;\n}, Ce = typeof ArrayBuffer == \"function\", K = (s, e) => {\n if (typeof s != \"string\")\n return {\n type: \"message\",\n data: le(s, e)\n };\n const t = s.charAt(0);\n return t === \"b\" ? {\n type: \"message\",\n data: Se(s.substring(1), e)\n } : I[t] ? s.length > 1 ? {\n type: I[t],\n data: s.substring(1)\n } : {\n type: I[t]\n } : P;\n}, Se = (s, e) => {\n if (Ce) {\n const t = Ae(s);\n return le(t, e);\n } else\n return { base64: !0, data: s };\n}, le = (s, e) => {\n switch (e) {\n case \"blob\":\n return s instanceof Blob ? s : new Blob([s]);\n case \"arraybuffer\":\n default:\n return s instanceof ArrayBuffer ? s : s.buffer;\n }\n}, fe = \"\u001e\", Te = (s, e) => {\n const t = s.length, n = new Array(t);\n let i = 0;\n s.forEach((r, o) => {\n J(r, !1, (c) => {\n n[o] = c, ++i === t && e(n.join(fe));\n });\n });\n}, Re = (s, e) => {\n const t = s.split(fe), n = [];\n for (let i = 0; i < t.length; i++) {\n const r = K(t[i], e);\n if (n.push(r), r.type === \"error\")\n break;\n }\n return n;\n};\nfunction Ne() {\n return new TransformStream({\n transform(s, e) {\n Oe(s, (t) => {\n const n = t.length;\n let i;\n if (n < 126)\n i = new Uint8Array(1), new DataView(i.buffer).setUint8(0, n);\n else if (n < 65536) {\n i = new Uint8Array(3);\n const r = new DataView(i.buffer);\n r.setUint8(0, 126), r.setUint16(1, n);\n } else {\n i = new Uint8Array(9);\n const r = new DataView(i.buffer);\n r.setUint8(0, 127), r.setBigUint64(1, BigInt(n));\n }\n s.data && typeof s.data != \"string\" && (i[0] |= 128), e.enqueue(i), e.enqueue(t);\n });\n }\n });\n}\nlet D;\nfunction C(s) {\n return s.reduce((e, t) => e + t.length, 0);\n}\nfunction S(s, e) {\n if (s[0].length === e)\n return s.shift();\n const t = new Uint8Array(e);\n let n = 0;\n for (let i = 0; i < e; i++)\n t[i] = s[0][n++], n === s[0].length && (s.shift(), n = 0);\n return s.length && n < s[0].length && (s[0] = s[0].slice(n)), t;\n}\nfunction Ie(s, e) {\n D || (D = new TextDecoder());\n const t = [];\n let n = 0, i = -1, r = !1;\n return new TransformStream({\n transform(o, c) {\n for (t.push(o); ; ) {\n if (n === 0) {\n if (C(t) < 1)\n break;\n const h = S(t, 1);\n r = (h[0] & 128) === 128, i = h[0] & 127, i < 126 ? n = 3 : i === 126 ? n = 1 : n = 2;\n } else if (n === 1) {\n if (C(t) < 2)\n break;\n const h = S(t, 2);\n i = new DataView(h.buffer, h.byteOffset, h.length).getUint16(0), n = 3;\n } else if (n === 2) {\n if (C(t) < 8)\n break;\n const h = S(t, 8), g = new DataView(h.buffer, h.byteOffset, h.length), y = g.getUint32(0);\n if (y > Math.pow(2, 21) - 1) {\n c.enqueue(P);\n break;\n }\n i = y * Math.pow(2, 32) + g.getUint32(4), n = 3;\n } else {\n if (C(t) < i)\n break;\n const h = S(t, i);\n c.enqueue(K(r ? h : D.decode(h), e)), n = 0;\n }\n if (i === 0 || i > s) {\n c.enqueue(P);\n break;\n }\n }\n }\n });\n}\nconst de = 4;\nfunction l(s) {\n if (s)\n return Le(s);\n}\nfunction Le(s) {\n for (var e in l.prototype)\n s[e] = l.prototype[e];\n return s;\n}\nl.prototype.on = l.prototype.addEventListener = function(s, e) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[\"$\" + s] = this._callbacks[\"$\" + s] || []).push(e), this;\n};\nl.prototype.once = function(s, e) {\n function t() {\n this.off(s, t), e.apply(this, arguments);\n }\n return t.fn = e, this.on(s, t), this;\n};\nl.prototype.off = l.prototype.removeListener = l.prototype.removeAllListeners = l.prototype.removeEventListener = function(s, e) {\n if (this._callbacks = this._callbacks || {}, arguments.length == 0)\n return this._callbacks = {}, this;\n var t = this._callbacks[\"$\" + s];\n if (!t)\n return this;\n if (arguments.length == 1)\n return delete this._callbacks[\"$\" + s], this;\n for (var n, i = 0; i < t.length; i++)\n if (n = t[i], n === e || n.fn === e) {\n t.splice(i, 1);\n break;\n }\n return t.length === 0 && delete this._callbacks[\"$\" + s], this;\n};\nl.prototype.emit = function(s) {\n this._callbacks = this._callbacks || {};\n for (var e = new Array(arguments.length - 1), t = this._callbacks[\"$\" + s], n = 1; n < arguments.length; n++)\n e[n - 1] = arguments[n];\n if (t) {\n t = t.slice(0);\n for (var n = 0, i = t.length; n < i; ++n)\n t[n].apply(this, e);\n }\n return this;\n};\nl.prototype.emitReserved = l.prototype.emit;\nl.prototype.listeners = function(s) {\n return this._callbacks = this._callbacks || {}, this._callbacks[\"$\" + s] || [];\n};\nl.prototype.hasListeners = function(s) {\n return !!this.listeners(s).length;\n};\nconst p = typeof self < \"u\" ? self : typeof window < \"u\" ? window : Function(\"return this\")();\nfunction pe(s, ...e) {\n return e.reduce((t, n) => (s.hasOwnProperty(n) && (t[n] = s[n]), t), {});\n}\nconst Be = p.setTimeout, xe = p.clearTimeout;\nfunction x(s, e) {\n e.useNativeTimers ? (s.setTimeoutFn = Be.bind(p), s.clearTimeoutFn = xe.bind(p)) : (s.setTimeoutFn = p.setTimeout.bind(p), s.clearTimeoutFn = p.clearTimeout.bind(p));\n}\nconst Ue = 1.33;\nfunction De(s) {\n return typeof s == \"string\" ? qe(s) : Math.ceil((s.byteLength || s.size) * Ue);\n}\nfunction qe(s) {\n let e = 0, t = 0;\n for (let n = 0, i = s.length; n < i; n++)\n e = s.charCodeAt(n), e < 128 ? t += 1 : e < 2048 ? t += 2 : e < 55296 || e >= 57344 ? t += 3 : (n++, t += 4);\n return t;\n}\nfunction Pe(s) {\n let e = \"\";\n for (let t in s)\n s.hasOwnProperty(t) && (e.length && (e += \"&\"), e += encodeURIComponent(t) + \"=\" + encodeURIComponent(s[t]));\n return e;\n}\nfunction Me(s) {\n let e = {}, t = s.split(\"&\");\n for (let n = 0, i = t.length; n < i; n++) {\n let r = t[n].split(\"=\");\n e[decodeURIComponent(r[0])] = decodeURIComponent(r[1]);\n }\n return e;\n}\nclass Ve extends Error {\n constructor(e, t, n) {\n super(e), this.description = t, this.context = n, this.type = \"TransportError\";\n }\n}\nclass G extends l {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(e) {\n super(), this.writable = !1, x(this, e), this.opts = e, this.query = e.query, this.socket = e.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(e, t, n) {\n return super.emitReserved(\"error\", new Ve(e, t, n)), this;\n }\n /**\n * Opens the transport.\n */\n open() {\n return this.readyState = \"opening\", this.doOpen(), this;\n }\n /**\n * Closes the transport.\n */\n close() {\n return (this.readyState === \"opening\" || this.readyState === \"open\") && (this.doClose(), this.onClose()), this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(e) {\n this.readyState === \"open\" && this.write(e);\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\", this.writable = !0, super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(e) {\n const t = K(e, this.socket.binaryType);\n this.onPacket(t);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(e) {\n super.emitReserved(\"packet\", e);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(e) {\n this.readyState = \"closed\", super.emitReserved(\"close\", e);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(e) {\n }\n createUri(e, t = {}) {\n return e + \"://\" + this._hostname() + this._port() + this.opts.path + this._query(t);\n }\n _hostname() {\n const e = this.opts.hostname;\n return e.indexOf(\":\") === -1 ? e : \"[\" + e + \"]\";\n }\n _port() {\n return this.opts.port && (this.opts.secure && +(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80) ? \":\" + this.opts.port : \"\";\n }\n _query(e) {\n const t = Pe(e);\n return t.length ? \"?\" + t : \"\";\n }\n}\nconst ge = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\".split(\"\"), M = 64, Fe = {};\nlet Z = 0, T = 0, ee;\nfunction te(s) {\n let e = \"\";\n do\n e = ge[s % M] + e, s = Math.floor(s / M);\n while (s > 0);\n return e;\n}\nfunction ye() {\n const s = te(+/* @__PURE__ */ new Date());\n return s !== ee ? (Z = 0, ee = s) : s + \".\" + te(Z++);\n}\nfor (; T < M; T++)\n Fe[ge[T]] = T;\nlet me = !1;\ntry {\n me = typeof XMLHttpRequest < \"u\" && \"withCredentials\" in new XMLHttpRequest();\n} catch {\n}\nconst We = me;\nfunction we(s) {\n const e = s.xdomain;\n try {\n if (typeof XMLHttpRequest < \"u\" && (!e || We))\n return new XMLHttpRequest();\n } catch {\n }\n if (!e)\n try {\n return new p[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n } catch {\n }\n}\nfunction He() {\n}\nconst Je = function() {\n return new we({\n xdomain: !1\n }).responseType != null;\n}();\nclass Ke extends G {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(e) {\n if (super(e), this.polling = !1, typeof location < \"u\") {\n const n = location.protocol === \"https:\";\n let i = location.port;\n i || (i = n ? \"443\" : \"80\"), this.xd = typeof location < \"u\" && e.hostname !== location.hostname || i !== e.port;\n }\n const t = e && e.forceBase64;\n this.supportsBinary = Je && !t, this.opts.withCredentials && (this.cookieJar = void 0);\n }\n get name() {\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 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 pause(e) {\n this.readyState = \"pausing\";\n const t = () => {\n this.readyState = \"paused\", e();\n };\n if (this.polling || !this.writable) {\n let n = 0;\n this.polling && (n++, this.once(\"pollComplete\", function() {\n --n || t();\n })), this.writable || (n++, this.once(\"drain\", function() {\n --n || t();\n }));\n } else\n t();\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = !0, this.doPoll(), this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(e) {\n const t = (n) => {\n if (this.readyState === \"opening\" && n.type === \"open\" && this.onOpen(), n.type === \"close\")\n return this.onClose({ description: \"transport closed by the server\" }), !1;\n this.onPacket(n);\n };\n Re(e, this.socket.binaryType).forEach(t), this.readyState !== \"closed\" && (this.polling = !1, this.emitReserved(\"pollComplete\"), this.readyState === \"open\" && this.poll());\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const e = () => {\n this.write([{ type: \"close\" }]);\n };\n this.readyState === \"open\" ? e() : this.once(\"open\", e);\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(e) {\n this.writable = !1, Te(e, (t) => {\n this.doWrite(t, () => {\n this.writable = !0, this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const e = this.opts.secure ? \"https\" : \"http\", t = this.query || {};\n return this.opts.timestampRequests !== !1 && (t[this.opts.timestampParam] = ye()), !this.supportsBinary && !t.sid && (t.b64 = 1), this.createUri(e, t);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(e = {}) {\n return Object.assign(e, { xd: this.xd, cookieJar: this.cookieJar }, this.opts), new w(this.uri(), e);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(e, t) {\n const n = this.request({\n method: \"POST\",\n data: e\n });\n n.on(\"success\", t), n.on(\"error\", (i, r) => {\n this.onError(\"xhr post error\", i, r);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const e = this.request();\n e.on(\"data\", this.onData.bind(this)), e.on(\"error\", (t, n) => {\n this.onError(\"xhr poll error\", t, n);\n }), this.pollXhr = e;\n }\n}\nclass w extends l {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(e, t) {\n super(), x(this, t), this.opts = t, this.method = t.method || \"GET\", this.uri = e, this.data = t.data !== void 0 ? t.data : null, this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var e;\n const t = pe(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n t.xdomain = !!this.opts.xd;\n const n = this.xhr = new we(t);\n try {\n n.open(this.method, this.uri, !0);\n try {\n if (this.opts.extraHeaders) {\n n.setDisableHeaderCheck && n.setDisableHeaderCheck(!0);\n for (let i in this.opts.extraHeaders)\n this.opts.extraHeaders.hasOwnProperty(i) && n.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n } catch {\n }\n if (this.method === \"POST\")\n try {\n n.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n } catch {\n }\n try {\n n.setRequestHeader(\"Accept\", \"*/*\");\n } catch {\n }\n (e = this.opts.cookieJar) === null || e === void 0 || e.addCookies(n), \"withCredentials\" in n && (n.withCredentials = this.opts.withCredentials), this.opts.requestTimeout && (n.timeout = this.opts.requestTimeout), n.onreadystatechange = () => {\n var i;\n n.readyState === 3 && ((i = this.opts.cookieJar) === null || i === void 0 || i.parseCookies(n)), n.readyState === 4 && (n.status === 200 || n.status === 1223 ? this.onLoad() : this.setTimeoutFn(() => {\n this.onError(typeof n.status == \"number\" ? n.status : 0);\n }, 0));\n }, n.send(this.data);\n } catch (i) {\n this.setTimeoutFn(() => {\n this.onError(i);\n }, 0);\n return;\n }\n typeof document < \"u\" && (this.index = w.requestsCount++, w.requests[this.index] = this);\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(e) {\n this.emitReserved(\"error\", e, this.xhr), this.cleanup(!0);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(e) {\n if (!(typeof this.xhr > \"u\" || this.xhr === null)) {\n if (this.xhr.onreadystatechange = He, e)\n try {\n this.xhr.abort();\n } catch {\n }\n typeof document < \"u\" && delete w.requests[this.index], this.xhr = null;\n }\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const e = this.xhr.responseText;\n e !== null && (this.emitReserved(\"data\", e), this.emitReserved(\"success\"), this.cleanup());\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nw.requestsCount = 0;\nw.requests = {};\nif (typeof document < \"u\") {\n if (typeof attachEvent == \"function\")\n attachEvent(\"onunload\", se);\n else if (typeof addEventListener == \"function\") {\n const s = \"onpagehide\" in p ? \"pagehide\" : \"unload\";\n addEventListener(s, se, !1);\n }\n}\nfunction se() {\n for (let s in w.requests)\n w.requests.hasOwnProperty(s) && w.requests[s].abort();\n}\nconst $ = typeof Promise == \"function\" && typeof Promise.resolve == \"function\" ? (e) => Promise.resolve().then(e) : (e, t) => t(e, 0), R = p.WebSocket || p.MozWebSocket, ne = !0, Ge = \"arraybuffer\", ie = typeof navigator < \"u\" && typeof navigator.product == \"string\" && navigator.product.toLowerCase() === \"reactnative\";\nclass $e extends G {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(e) {\n super(e), this.supportsBinary = !e.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check())\n return;\n const e = this.uri(), t = this.opts.protocols, n = ie ? {} : pe(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n this.opts.extraHeaders && (n.headers = this.opts.extraHeaders);\n try {\n this.ws = ne && !ie ? t ? new R(e, t) : new R(e) : new R(e, t, n);\n } catch (i) {\n return this.emitReserved(\"error\", i);\n }\n this.ws.binaryType = this.socket.binaryType, this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n this.opts.autoUnref && this.ws._socket.unref(), this.onOpen();\n }, this.ws.onclose = (e) => this.onClose({\n description: \"websocket connection closed\",\n context: e\n }), this.ws.onmessage = (e) => this.onData(e.data), this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(e) {\n this.writable = !1;\n for (let t = 0; t < e.length; t++) {\n const n = e[t], i = t === e.length - 1;\n J(n, this.supportsBinary, (r) => {\n const o = {};\n try {\n ne && this.ws.send(r);\n } catch {\n }\n i && $(() => {\n this.writable = !0, this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n });\n }\n }\n doClose() {\n typeof this.ws < \"u\" && (this.ws.close(), this.ws = null);\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const e = this.opts.secure ? \"wss\" : \"ws\", t = this.query || {};\n return this.opts.timestampRequests && (t[this.opts.timestampParam] = ye()), this.supportsBinary || (t.b64 = 1), this.createUri(e, t);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!R;\n }\n}\nclass Ye extends G {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n typeof WebTransport == \"function\" && (this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]), this.transport.closed.then(() => {\n this.onClose();\n }).catch((e) => {\n this.onError(\"webtransport error\", e);\n }), this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((e) => {\n const t = Ie(Number.MAX_SAFE_INTEGER, this.socket.binaryType), n = e.readable.pipeThrough(t).getReader(), i = Ne();\n i.readable.pipeTo(e.writable), this.writer = i.writable.getWriter();\n const r = () => {\n n.read().then(({ done: c, value: h }) => {\n c || (this.onPacket(h), r());\n }).catch((c) => {\n });\n };\n r();\n const o = { type: \"open\" };\n this.query.sid && (o.data = `{\"sid\":\"${this.query.sid}\"}`), this.writer.write(o).then(() => this.onOpen());\n });\n }));\n }\n write(e) {\n this.writable = !1;\n for (let t = 0; t < e.length; t++) {\n const n = e[t], i = t === e.length - 1;\n this.writer.write(n).then(() => {\n i && $(() => {\n this.writable = !0, this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n });\n }\n }\n doClose() {\n var e;\n (e = this.transport) === null || e === void 0 || e.close();\n }\n}\nconst ze = {\n websocket: $e,\n webtransport: Ye,\n polling: Ke\n}, Qe = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/, je = [\n \"source\",\n \"protocol\",\n \"authority\",\n \"userInfo\",\n \"user\",\n \"password\",\n \"host\",\n \"port\",\n \"relative\",\n \"path\",\n \"directory\",\n \"file\",\n \"query\",\n \"anchor\"\n];\nfunction V(s) {\n if (s.length > 2e3)\n throw \"URI too long\";\n const e = s, t = s.indexOf(\"[\"), n = s.indexOf(\"]\");\n t != -1 && n != -1 && (s = s.substring(0, t) + s.substring(t, n).replace(/:/g, \";\") + s.substring(n, s.length));\n let i = Qe.exec(s || \"\"), r = {}, o = 14;\n for (; o--; )\n r[je[o]] = i[o] || \"\";\n return t != -1 && n != -1 && (r.source = e, r.host = r.host.substring(1, r.host.length - 1).replace(/;/g, \":\"), r.authority = r.authority.replace(\"[\", \"\").replace(\"]\", \"\").replace(/;/g, \":\"), r.ipv6uri = !0), r.pathNames = Xe(r, r.path), r.queryKey = Ze(r, r.query), r;\n}\nfunction Xe(s, e) {\n const t = /\\/{2,9}/g, n = e.replace(t, \"/\").split(\"/\");\n return (e.slice(0, 1) == \"/\" || e.length === 0) && n.splice(0, 1), e.slice(-1) == \"/\" && n.splice(n.length - 1, 1), n;\n}\nfunction Ze(s, e) {\n const t = {};\n return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function(n, i, r) {\n i && (t[i] = r);\n }), t;\n}\nlet be = class k extends l {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(e, t = {}) {\n super(), this.binaryType = Ge, this.writeBuffer = [], e && typeof e == \"object\" && (t = e, e = null), e ? (e = V(e), t.hostname = e.host, t.secure = e.protocol === \"https\" || e.protocol === \"wss\", t.port = e.port, e.query && (t.query = e.query)) : t.host && (t.hostname = V(t.host).host), x(this, t), this.secure = t.secure != null ? t.secure : typeof location < \"u\" && location.protocol === \"https:\", t.hostname && !t.port && (t.port = this.secure ? \"443\" : \"80\"), this.hostname = t.hostname || (typeof location < \"u\" ? location.hostname : \"localhost\"), this.port = t.port || (typeof location < \"u\" && location.port ? location.port : this.secure ? \"443\" : \"80\"), this.transports = t.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\"\n ], this.writeBuffer = [], this.prevBufferLen = 0, this.opts = Object.assign({\n path: \"/engine.io\",\n agent: !1,\n withCredentials: !1,\n upgrade: !0,\n timestampParam: \"t\",\n rememberUpgrade: !1,\n addTrailingSlash: !0,\n rejectUnauthorized: !0,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: !1\n }, t), this.opts.path = this.opts.path.replace(/\\/$/, \"\") + (this.opts.addTrailingSlash ? \"/\" : \"\"), typeof this.opts.query == \"string\" && (this.opts.query = Me(this.opts.query)), this.id = null, this.upgrades = null, this.pingInterval = null, this.pingTimeout = null, this.pingTimeoutTimer = null, typeof addEventListener == \"function\" && (this.opts.closeOnBeforeunload && (this.beforeunloadEventListener = () => {\n this.transport && (this.transport.removeAllListeners(), this.transport.close());\n }, addEventListener(\"beforeunload\", this.beforeunloadEventListener, !1)), this.hostname !== \"localhost\" && (this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n }, addEventListener(\"offline\", this.offlineEventListener, !1))), this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(e) {\n const t = Object.assign({}, this.opts.query);\n t.EIO = de, t.transport = e, this.id && (t.sid = this.id);\n const n = Object.assign({}, this.opts, {\n query: t,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n }, this.opts.transportOptions[e]);\n return new ze[e](n);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let e;\n if (this.opts.rememberUpgrade && k.priorWebsocketSuccess && this.transports.indexOf(\"websocket\") !== -1)\n e = \"websocket\";\n else if (this.transports.length === 0) {\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n } else\n e = this.transports[0];\n this.readyState = \"opening\";\n try {\n e = this.createTransport(e);\n } catch {\n this.transports.shift(), this.open();\n return;\n }\n e.open(), this.setTransport(e);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(e) {\n this.transport && this.transport.removeAllListeners(), this.transport = e, e.on(\"drain\", this.onDrain.bind(this)).on(\"packet\", this.onPacket.bind(this)).on(\"error\", this.onError.bind(this)).on(\"close\", (t) => this.onClose(\"transport close\", t));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(e) {\n let t = this.createTransport(e), n = !1;\n k.priorWebsocketSuccess = !1;\n const i = () => {\n n || (t.send([{ type: \"ping\", data: \"probe\" }]), t.once(\"packet\", (E) => {\n if (!n)\n if (E.type === \"pong\" && E.data === \"probe\") {\n if (this.upgrading = !0, this.emitReserved(\"upgrading\", t), !t)\n return;\n k.priorWebsocketSuccess = t.name === \"websocket\", this.transport.pause(() => {\n n || this.readyState !== \"closed\" && (y(), this.setTransport(t), t.send([{ type: \"upgrade\" }]), this.emitReserved(\"upgrade\", t), t = null, this.upgrading = !1, this.flush());\n });\n } else {\n const v = new Error(\"probe error\");\n v.transport = t.name, this.emitReserved(\"upgradeError\", v);\n }\n }));\n };\n function r() {\n n || (n = !0, y(), t.close(), t = null);\n }\n const o = (E) => {\n const v = new Error(\"probe error: \" + E);\n v.transport = t.name, r(), this.emitReserved(\"upgradeError\", v);\n };\n function c() {\n o(\"transport closed\");\n }\n function h() {\n o(\"socket closed\");\n }\n function g(E) {\n t && E.name !== t.name && r();\n }\n const y = () => {\n t.removeListener(\"open\", i), t.removeListener(\"error\", o), t.removeListener(\"close\", c), this.off(\"close\", h), this.off(\"upgrading\", g);\n };\n t.once(\"open\", i), t.once(\"error\", o), t.once(\"close\", c), this.once(\"close\", h), this.once(\"upgrading\", g), this.upgrades.indexOf(\"webtransport\") !== -1 && e !== \"webtransport\" ? this.setTimeoutFn(() => {\n n || t.open();\n }, 200) : t.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n if (this.readyState = \"open\", k.priorWebsocketSuccess = this.transport.name === \"websocket\", this.emitReserved(\"open\"), this.flush(), this.readyState === \"open\" && this.opts.upgrade) {\n let e = 0;\n const t = this.upgrades.length;\n for (; e < t; e++)\n this.probe(this.upgrades[e]);\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(e) {\n if (this.readyState === \"opening\" || this.readyState === \"open\" || this.readyState === \"closing\")\n switch (this.emitReserved(\"packet\", e), this.emitReserved(\"heartbeat\"), this.resetPingTimeout(), e.type) {\n case \"open\":\n this.onHandshake(JSON.parse(e.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\"), this.emitReserved(\"ping\"), this.emitReserved(\"pong\");\n break;\n case \"error\":\n const t = new Error(\"server error\");\n t.code = e.data, this.onError(t);\n break;\n case \"message\":\n this.emitReserved(\"data\", e.data), this.emitReserved(\"message\", e.data);\n break;\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(e) {\n this.emitReserved(\"handshake\", e), this.id = e.sid, this.transport.query.sid = e.sid, this.upgrades = this.filterUpgrades(e.upgrades), this.pingInterval = e.pingInterval, this.pingTimeout = e.pingTimeout, this.maxPayload = e.maxPayload, this.onOpen(), this.readyState !== \"closed\" && this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer), this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout), this.opts.autoUnref && this.pingTimeoutTimer.unref();\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, this.writeBuffer.length === 0 ? this.emitReserved(\"drain\") : this.flush();\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (this.readyState !== \"closed\" && this.transport.writable && !this.upgrading && this.writeBuffer.length) {\n const e = this.getWritablePackets();\n this.transport.send(e), this.prevBufferLen = e.length, 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 getWritablePackets() {\n if (!(this.maxPayload && this.transport.name === \"polling\" && this.writeBuffer.length > 1))\n return this.writeBuffer;\n let t = 1;\n for (let n = 0; n < this.writeBuffer.length; n++) {\n const i = this.writeBuffer[n].data;\n if (i && (t += De(i)), n > 0 && t > this.maxPayload)\n return this.writeBuffer.slice(0, n);\n t += 2;\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 write(e, t, n) {\n return this.sendPacket(\"message\", e, t, n), this;\n }\n send(e, t, n) {\n return this.sendPacket(\"message\", e, t, n), 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 sendPacket(e, t, n, i) {\n if (typeof t == \"function\" && (i = t, t = void 0), typeof n == \"function\" && (i = n, n = null), this.readyState === \"closing\" || this.readyState === \"closed\")\n return;\n n = n || {}, n.compress = n.compress !== !1;\n const r = {\n type: e,\n data: t,\n options: n\n };\n this.emitReserved(\"packetCreate\", r), this.writeBuffer.push(r), i && this.once(\"flush\", i), this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const e = () => {\n this.onClose(\"forced close\"), this.transport.close();\n }, t = () => {\n this.off(\"upgrade\", t), this.off(\"upgradeError\", t), e();\n }, n = () => {\n this.once(\"upgrade\", t), this.once(\"upgradeError\", t);\n };\n return (this.readyState === \"opening\" || this.readyState === \"open\") && (this.readyState = \"closing\", this.writeBuffer.length ? this.once(\"drain\", () => {\n this.upgrading ? n() : e();\n }) : this.upgrading ? n() : e()), this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(e) {\n k.priorWebsocketSuccess = !1, this.emitReserved(\"error\", e), this.onClose(\"transport error\", e);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(e, t) {\n (this.readyState === \"opening\" || this.readyState === \"open\" || this.readyState === \"closing\") && (this.clearTimeoutFn(this.pingTimeoutTimer), this.transport.removeAllListeners(\"close\"), this.transport.close(), this.transport.removeAllListeners(), typeof removeEventListener == \"function\" && (removeEventListener(\"beforeunload\", this.beforeunloadEventListener, !1), removeEventListener(\"offline\", this.offlineEventListener, !1)), this.readyState = \"closed\", this.id = null, this.emitReserved(\"close\", e, t), this.writeBuffer = [], this.prevBufferLen = 0);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(e) {\n const t = [];\n let n = 0;\n const i = e.length;\n for (; n < i; n++)\n ~this.transports.indexOf(e[n]) && t.push(e[n]);\n return t;\n }\n};\nbe.protocol = de;\nfunction et(s, e = \"\", t) {\n let n = s;\n t = t || typeof location < \"u\" && location, s == null && (s = t.protocol + \"//\" + t.host), typeof s == \"string\" && (s.charAt(0) === \"/\" && (s.charAt(1) === \"/\" ? s = t.protocol + s : s = t.host + s), /^(https?|wss?):\\/\\//.test(s) || (typeof t < \"u\" ? s = t.protocol + \"//\" + s : s = \"https://\" + s), n = V(s)), n.port || (/^(http|ws)$/.test(n.protocol) ? n.port = \"80\" : /^(http|ws)s$/.test(n.protocol) && (n.port = \"443\")), n.path = n.path || \"/\";\n const r = n.host.indexOf(\":\") !== -1 ? \"[\" + n.host + \"]\" : n.host;\n return n.id = n.protocol + \"://\" + r + \":\" + n.port + e, n.href = n.protocol + \"://\" + r + (t && t.port === n.port ? \"\" : \":\" + n.port), n;\n}\nconst tt = typeof ArrayBuffer == \"function\", st = (s) => typeof ArrayBuffer.isView == \"function\" ? ArrayBuffer.isView(s) : s.buffer instanceof ArrayBuffer, Ee = Object.prototype.toString, nt = typeof Blob == \"function\" || typeof Blob < \"u\" && Ee.call(Blob) === \"[object BlobConstructor]\", it = typeof File == \"function\" || typeof File < \"u\" && Ee.call(File) === \"[object FileConstructor]\";\nfunction Y(s) {\n return tt && (s instanceof ArrayBuffer || st(s)) || nt && s instanceof Blob || it && s instanceof File;\n}\nfunction L(s, e) {\n if (!s || typeof s != \"object\")\n return !1;\n if (Array.isArray(s)) {\n for (let t = 0, n = s.length; t < n; t++)\n if (L(s[t]))\n return !0;\n return !1;\n }\n if (Y(s))\n return !0;\n if (s.toJSON && typeof s.toJSON == \"function\" && arguments.length === 1)\n return L(s.toJSON(), !0);\n for (const t in s)\n if (Object.prototype.hasOwnProperty.call(s, t) && L(s[t]))\n return !0;\n return !1;\n}\nfunction rt(s) {\n const e = [], t = s.data, n = s;\n return n.data = F(t, e), n.attachments = e.length, { packet: n, buffers: e };\n}\nfunction F(s, e) {\n if (!s)\n return s;\n if (Y(s)) {\n const t = { _placeholder: !0, num: e.length };\n return e.push(s), t;\n } else if (Array.isArray(s)) {\n const t = new Array(s.length);\n for (let n = 0; n < s.length; n++)\n t[n] = F(s[n], e);\n return t;\n } else if (typeof s == \"object\" && !(s instanceof Date)) {\n const t = {};\n for (const n in s)\n Object.prototype.hasOwnProperty.call(s, n) && (t[n] = F(s[n], e));\n return t;\n }\n return s;\n}\nfunction ot(s, e) {\n return s.data = W(s.data, e), delete s.attachments, s;\n}\nfunction W(s, e) {\n if (!s)\n return s;\n if (s && s._placeholder === !0) {\n if (typeof s.num == \"number\" && s.num >= 0 && s.num < e.length)\n return e[s.num];\n throw new Error(\"illegal attachments\");\n } else if (Array.isArray(s))\n for (let t = 0; t < s.length; t++)\n s[t] = W(s[t], e);\n else if (typeof s == \"object\")\n for (const t in s)\n Object.prototype.hasOwnProperty.call(s, t) && (s[t] = W(s[t], e));\n return s;\n}\nconst at = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\"\n // used by the Node.js EventEmitter\n], ct = 5;\nvar a;\n(function(s) {\n s[s.CONNECT = 0] = \"CONNECT\", s[s.DISCONNECT = 1] = \"DISCONNECT\", s[s.EVENT = 2] = \"EVENT\", s[s.ACK = 3] = \"ACK\", s[s.CONNECT_ERROR = 4] = \"CONNECT_ERROR\", s[s.BINARY_EVENT = 5] = \"BINARY_EVENT\", s[s.BINARY_ACK = 6] = \"BINARY_ACK\";\n})(a || (a = {}));\nclass ht {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(e) {\n this.replacer = e;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(e) {\n return (e.type === a.EVENT || e.type === a.ACK) && L(e) ? this.encodeAsBinary({\n type: e.type === a.EVENT ? a.BINARY_EVENT : a.BINARY_ACK,\n nsp: e.nsp,\n data: e.data,\n id: e.id\n }) : [this.encodeAsString(e)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(e) {\n let t = \"\" + e.type;\n return (e.type === a.BINARY_EVENT || e.type === a.BINARY_ACK) && (t += e.attachments + \"-\"), e.nsp && e.nsp !== \"/\" && (t += e.nsp + \",\"), e.id != null && (t += e.id), e.data != null && (t += JSON.stringify(e.data, this.replacer)), t;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(e) {\n const t = rt(e), n = this.encodeAsString(t.packet), i = t.buffers;\n return i.unshift(n), i;\n }\n}\nfunction re(s) {\n return Object.prototype.toString.call(s) === \"[object Object]\";\n}\nclass z extends l {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(e) {\n super(), this.reviver = e;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(e) {\n let t;\n if (typeof e == \"string\") {\n if (this.reconstructor)\n throw new Error(\"got plaintext data when reconstructing a packet\");\n t = this.decodeString(e);\n const n = t.type === a.BINARY_EVENT;\n n || t.type === a.BINARY_ACK ? (t.type = n ? a.EVENT : a.ACK, this.reconstructor = new ut(t), t.attachments === 0 && super.emitReserved(\"decoded\", t)) : super.emitReserved(\"decoded\", t);\n } else if (Y(e) || e.base64)\n if (this.reconstructor)\n t = this.reconstructor.takeBinaryData(e), t && (this.reconstructor = null, super.emitReserved(\"decoded\", t));\n else\n throw new Error(\"got binary data when not reconstructing a packet\");\n else\n throw new Error(\"Unknown type: \" + e);\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(e) {\n let t = 0;\n const n = {\n type: Number(e.charAt(0))\n };\n if (a[n.type] === void 0)\n throw new Error(\"unknown packet type \" + n.type);\n if (n.type === a.BINARY_EVENT || n.type === a.BINARY_ACK) {\n const r = t + 1;\n for (; e.charAt(++t) !== \"-\" && t != e.length; )\n ;\n const o = e.substring(r, t);\n if (o != Number(o) || e.charAt(t) !== \"-\")\n throw new Error(\"Illegal attachments\");\n n.attachments = Number(o);\n }\n if (e.charAt(t + 1) === \"/\") {\n const r = t + 1;\n for (; ++t && !(e.charAt(t) === \",\" || t === e.length); )\n ;\n n.nsp = e.substring(r, t);\n } else\n n.nsp = \"/\";\n const i = e.charAt(t + 1);\n if (i !== \"\" && Number(i) == i) {\n const r = t + 1;\n for (; ++t; ) {\n const o = e.charAt(t);\n if (o == null || Number(o) != o) {\n --t;\n break;\n }\n if (t === e.length)\n break;\n }\n n.id = Number(e.substring(r, t + 1));\n }\n if (e.charAt(++t)) {\n const r = this.tryParse(e.substr(t));\n if (z.isPayloadValid(n.type, r))\n n.data = r;\n else\n throw new Error(\"invalid payload\");\n }\n return n;\n }\n tryParse(e) {\n try {\n return JSON.parse(e, this.reviver);\n } catch {\n return !1;\n }\n }\n static isPayloadValid(e, t) {\n switch (e) {\n case a.CONNECT:\n return re(t);\n case a.DISCONNECT:\n return t === void 0;\n case a.CONNECT_ERROR:\n return typeof t == \"string\" || re(t);\n case a.EVENT:\n case a.BINARY_EVENT:\n return Array.isArray(t) && (typeof t[0] == \"number\" || typeof t[0] == \"string\" && at.indexOf(t[0]) === -1);\n case a.ACK:\n case a.BINARY_ACK:\n return Array.isArray(t);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n this.reconstructor && (this.reconstructor.finishedReconstruction(), this.reconstructor = null);\n }\n}\nclass ut {\n constructor(e) {\n this.packet = e, this.buffers = [], this.reconPack = e;\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 takeBinaryData(e) {\n if (this.buffers.push(e), this.buffers.length === this.reconPack.attachments) {\n const t = ot(this.reconPack, this.buffers);\n return this.finishedReconstruction(), t;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null, this.buffers = [];\n }\n}\nconst lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Decoder: z,\n Encoder: ht,\n get PacketType() {\n return a;\n },\n protocol: ct\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction m(s, e, t) {\n return s.on(e, t), function() {\n s.off(e, t);\n };\n}\nconst ft = 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});\nclass ve extends l {\n /**\n * `Socket` constructor.\n */\n constructor(e, t, n) {\n super(), this.connected = !1, this.recovered = !1, this.receiveBuffer = [], this.sendBuffer = [], this._queue = [], this._queueSeq = 0, this.ids = 0, this.acks = {}, this.flags = {}, this.io = e, this.nsp = t, n && n.auth && (this.auth = n.auth), this._opts = Object.assign({}, n), this.io._autoConnect && this.open();\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 get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const e = this.io;\n this.subs = [\n m(e, \"open\", this.onopen.bind(this)),\n m(e, \"packet\", this.onpacket.bind(this)),\n m(e, \"error\", this.onerror.bind(this)),\n m(e, \"close\", this.onclose.bind(this))\n ];\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 get active() {\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 connect() {\n return this.connected ? this : (this.subEvents(), this.io._reconnecting || this.io.open(), this.io._readyState === \"open\" && this.onopen(), this);\n }\n /**\n * Alias for {@link connect()}.\n */\n 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 send(...e) {\n return e.unshift(\"message\"), this.emit.apply(this, e), 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 emit(e, ...t) {\n if (ft.hasOwnProperty(e))\n throw new Error('\"' + e.toString() + '\" is a reserved event name');\n if (t.unshift(e), this._opts.retries && !this.flags.fromQueue && !this.flags.volatile)\n return this._addToQueue(t), this;\n const n = {\n type: a.EVENT,\n data: t\n };\n if (n.options = {}, n.options.compress = this.flags.compress !== !1, typeof t[t.length - 1] == \"function\") {\n const o = this.ids++, c = t.pop();\n this._registerAckCallback(o, c), n.id = o;\n }\n const i = this.io.engine && this.io.engine.transport && this.io.engine.transport.writable;\n return this.flags.volatile && (!i || !this.connected) || (this.connected ? (this.notifyOutgoingListeners(n), this.packet(n)) : this.sendBuffer.push(n)), this.flags = {}, this;\n }\n /**\n * @private\n */\n _registerAckCallback(e, t) {\n var n;\n const i = (n = this.flags.timeout) !== null && n !== void 0 ? n : this._opts.ackTimeout;\n if (i === void 0) {\n this.acks[e] = t;\n return;\n }\n const r = this.io.setTimeoutFn(() => {\n delete this.acks[e];\n for (let o = 0; o < this.sendBuffer.length; o++)\n this.sendBuffer[o].id === e && this.sendBuffer.splice(o, 1);\n t.call(this, new Error(\"operation has timed out\"));\n }, i);\n this.acks[e] = (...o) => {\n this.io.clearTimeoutFn(r), t.apply(this, [null, ...o]);\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 emitWithAck(e, ...t) {\n const n = this.flags.timeout !== void 0 || this._opts.ackTimeout !== void 0;\n return new Promise((i, r) => {\n t.push((o, c) => n ? o ? r(o) : i(c) : i(o)), this.emit(e, ...t);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(e) {\n let t;\n typeof e[e.length - 1] == \"function\" && (t = e.pop());\n const n = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: !1,\n args: e,\n flags: Object.assign({ fromQueue: !0 }, this.flags)\n };\n e.push((i, ...r) => n !== this._queue[0] ? void 0 : (i !== null ? n.tryCount > this._opts.retries && (this._queue.shift(), t && t(i)) : (this._queue.shift(), t && t(null, ...r)), n.pending = !1, this._drainQueue())), this._queue.push(n), this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(e = !1) {\n if (!this.connected || this._queue.length === 0)\n return;\n const t = this._queue[0];\n t.pending && !e || (t.pending = !0, t.tryCount++, this.flags = t.flags, this.emit.apply(this, t.args));\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(e) {\n e.nsp = this.nsp, this.io._packet(e);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n typeof this.auth == \"function\" ? this.auth((e) => {\n this._sendConnectPacket(e);\n }) : this._sendConnectPacket(this.auth);\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(e) {\n this.packet({\n type: a.CONNECT,\n data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, e) : e\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(e) {\n this.connected || this.emitReserved(\"connect_error\", e);\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(e, t) {\n this.connected = !1, delete this.id, this.emitReserved(\"disconnect\", e, t);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(e) {\n if (e.nsp === this.nsp)\n switch (e.type) {\n case a.CONNECT:\n e.data && e.data.sid ? this.onconnect(e.data.sid, e.data.pid) : 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 break;\n case a.EVENT:\n case a.BINARY_EVENT:\n this.onevent(e);\n break;\n case a.ACK:\n case a.BINARY_ACK:\n this.onack(e);\n break;\n case a.DISCONNECT:\n this.ondisconnect();\n break;\n case a.CONNECT_ERROR:\n this.destroy();\n const n = new Error(e.data.message);\n n.data = e.data.data, this.emitReserved(\"connect_error\", n);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(e) {\n const t = e.data || [];\n e.id != null && t.push(this.ack(e.id)), this.connected ? this.emitEvent(t) : this.receiveBuffer.push(Object.freeze(t));\n }\n emitEvent(e) {\n if (this._anyListeners && this._anyListeners.length) {\n const t = this._anyListeners.slice();\n for (const n of t)\n n.apply(this, e);\n }\n super.emit.apply(this, e), this._pid && e.length && typeof e[e.length - 1] == \"string\" && (this._lastOffset = e[e.length - 1]);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(e) {\n const t = this;\n let n = !1;\n return function(...i) {\n n || (n = !0, t.packet({\n type: a.ACK,\n id: e,\n data: i\n }));\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(e) {\n const t = this.acks[e.id];\n typeof t == \"function\" && (t.apply(this, e.data), delete this.acks[e.id]);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(e, t) {\n this.id = e, this.recovered = t && this._pid === t, this._pid = t, this.connected = !0, this.emitBuffered(), this.emitReserved(\"connect\"), this._drainQueue(!0);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((e) => this.emitEvent(e)), this.receiveBuffer = [], this.sendBuffer.forEach((e) => {\n this.notifyOutgoingListeners(e), this.packet(e);\n }), this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy(), 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 destroy() {\n this.subs && (this.subs.forEach((e) => e()), this.subs = void 0), 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 disconnect() {\n return this.connected && this.packet({ type: a.DISCONNECT }), this.destroy(), this.connected && this.onclose(\"io client disconnect\"), this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n 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 compress(e) {\n return this.flags.compress = e, 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 get volatile() {\n return this.flags.volatile = !0, 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 timeout(e) {\n return this.flags.timeout = e, 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 onAny(e) {\n return this._anyListeners = this._anyListeners || [], this._anyListeners.push(e), 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 prependAny(e) {\n return this._anyListeners = this._anyListeners || [], this._anyListeners.unshift(e), 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 offAny(e) {\n if (!this._anyListeners)\n return this;\n if (e) {\n const t = this._anyListeners;\n for (let n = 0; n < t.length; n++)\n if (e === t[n])\n return t.splice(n, 1), this;\n } else\n this._anyListeners = [];\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 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 onAnyOutgoing(e) {\n return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.push(e), 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 prependAnyOutgoing(e) {\n return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.unshift(e), 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 offAnyOutgoing(e) {\n if (!this._anyOutgoingListeners)\n return this;\n if (e) {\n const t = this._anyOutgoingListeners;\n for (let n = 0; n < t.length; n++)\n if (e === t[n])\n return t.splice(n, 1), this;\n } else\n this._anyOutgoingListeners = [];\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 listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(e) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const t = this._anyOutgoingListeners.slice();\n for (const n of t)\n n.apply(this, e.data);\n }\n }\n}\nfunction _(s) {\n s = s || {}, this.ms = s.min || 100, this.max = s.max || 1e4, this.factor = s.factor || 2, this.jitter = s.jitter > 0 && s.jitter <= 1 ? s.jitter : 0, this.attempts = 0;\n}\n_.prototype.duration = function() {\n var s = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var e = Math.random(), t = Math.floor(e * this.jitter * s);\n s = Math.floor(e * 10) & 1 ? s + t : s - t;\n }\n return Math.min(s, this.max) | 0;\n};\n_.prototype.reset = function() {\n this.attempts = 0;\n};\n_.prototype.setMin = function(s) {\n this.ms = s;\n};\n_.prototype.setMax = function(s) {\n this.max = s;\n};\n_.prototype.setJitter = function(s) {\n this.jitter = s;\n};\nclass H extends l {\n constructor(e, t) {\n var n;\n super(), this.nsps = {}, this.subs = [], e && typeof e == \"object\" && (t = e, e = void 0), t = t || {}, t.path = t.path || \"/socket.io\", this.opts = t, x(this, t), this.reconnection(t.reconnection !== !1), this.reconnectionAttempts(t.reconnectionAttempts || 1 / 0), this.reconnectionDelay(t.reconnectionDelay || 1e3), this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), this.randomizationFactor((n = t.randomizationFactor) !== null && n !== void 0 ? n : 0.5), this.backoff = new _({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n }), this.timeout(t.timeout == null ? 2e4 : t.timeout), this._readyState = \"closed\", this.uri = e;\n const i = t.parser || lt;\n this.encoder = new i.Encoder(), this.decoder = new i.Decoder(), this._autoConnect = t.autoConnect !== !1, this._autoConnect && this.open();\n }\n reconnection(e) {\n return arguments.length ? (this._reconnection = !!e, this) : this._reconnection;\n }\n reconnectionAttempts(e) {\n return e === void 0 ? this._reconnectionAttempts : (this._reconnectionAttempts = e, this);\n }\n reconnectionDelay(e) {\n var t;\n return e === void 0 ? this._reconnectionDelay : (this._reconnectionDelay = e, (t = this.backoff) === null || t === void 0 || t.setMin(e), this);\n }\n randomizationFactor(e) {\n var t;\n return e === void 0 ? this._randomizationFactor : (this._randomizationFactor = e, (t = this.backoff) === null || t === void 0 || t.setJitter(e), this);\n }\n reconnectionDelayMax(e) {\n var t;\n return e === void 0 ? this._reconnectionDelayMax : (this._reconnectionDelayMax = e, (t = this.backoff) === null || t === void 0 || t.setMax(e), this);\n }\n timeout(e) {\n return arguments.length ? (this._timeout = e, this) : this._timeout;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n !this._reconnecting && this._reconnection && this.backoff.attempts === 0 && this.reconnect();\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(e) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new be(this.uri, this.opts);\n const t = this.engine, n = this;\n this._readyState = \"opening\", this.skipReconnect = !1;\n const i = m(t, \"open\", function() {\n n.onopen(), e && e();\n }), r = (c) => {\n this.cleanup(), this._readyState = \"closed\", this.emitReserved(\"error\", c), e ? e(c) : this.maybeReconnectOnOpen();\n }, o = m(t, \"error\", r);\n if (this._timeout !== !1) {\n const c = this._timeout, h = this.setTimeoutFn(() => {\n i(), r(new Error(\"timeout\")), t.close();\n }, c);\n this.opts.autoUnref && h.unref(), this.subs.push(() => {\n this.clearTimeoutFn(h);\n });\n }\n return this.subs.push(i), this.subs.push(o), this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(e) {\n return this.open(e);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n this.cleanup(), this._readyState = \"open\", this.emitReserved(\"open\");\n const e = this.engine;\n this.subs.push(m(e, \"ping\", this.onping.bind(this)), m(e, \"data\", this.ondata.bind(this)), m(e, \"error\", this.onerror.bind(this)), m(e, \"close\", this.onclose.bind(this)), m(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(e) {\n try {\n this.decoder.add(e);\n } catch (t) {\n this.onclose(\"parse error\", t);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(e) {\n $(() => {\n this.emitReserved(\"packet\", e);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(e) {\n this.emitReserved(\"error\", e);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(e, t) {\n let n = this.nsps[e];\n return n ? this._autoConnect && !n.active && n.connect() : (n = new ve(this, e, t), this.nsps[e] = n), n;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(e) {\n const t = Object.keys(this.nsps);\n for (const n of t)\n if (this.nsps[n].active)\n return;\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(e) {\n const t = this.encoder.encode(e);\n for (let n = 0; n < t.length; n++)\n this.engine.write(t[n], e.options);\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((e) => e()), this.subs.length = 0, this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = !0, this._reconnecting = !1, this.onclose(\"forced close\"), this.engine && this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(e, t) {\n this.cleanup(), this.backoff.reset(), this._readyState = \"closed\", this.emitReserved(\"close\", e, t), this._reconnection && !this.skipReconnect && this.reconnect();\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const e = this;\n if (this.backoff.attempts >= this._reconnectionAttempts)\n this.backoff.reset(), this.emitReserved(\"reconnect_failed\"), this._reconnecting = !1;\n else {\n const t = this.backoff.duration();\n this._reconnecting = !0;\n const n = this.setTimeoutFn(() => {\n e.skipReconnect || (this.emitReserved(\"reconnect_attempt\", e.backoff.attempts), !e.skipReconnect && e.open((i) => {\n i ? (e._reconnecting = !1, e.reconnect(), this.emitReserved(\"reconnect_error\", i)) : e.onreconnect();\n }));\n }, t);\n this.opts.autoUnref && n.unref(), this.subs.push(() => {\n this.clearTimeoutFn(n);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const e = this.backoff.attempts;\n this._reconnecting = !1, this.backoff.reset(), this.emitReserved(\"reconnect\", e);\n }\n}\nconst O = {};\nfunction B(s, e) {\n typeof s == \"object\" && (e = s, s = void 0), e = e || {};\n const t = et(s, e.path || \"/socket.io\"), n = t.source, i = t.id, r = t.path, o = O[i] && r in O[i].nsps, c = e.forceNew || e[\"force new connection\"] || e.multiplex === !1 || o;\n let h;\n return c ? h = new H(n, e) : (O[i] || (O[i] = new H(n, e)), h = O[i]), t.query && !e.query && (e.query = t.queryKey), h.socket(t.path, e);\n}\nObject.assign(B, {\n Manager: H,\n Socket: ve,\n io: B,\n connect: B\n});\nlet N;\nconst dt = new Uint8Array(16);\nfunction pt() {\n if (!N && (N = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !N))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return N(dt);\n}\nconst f = [];\nfor (let s = 0; s < 256; ++s)\n f.push((s + 256).toString(16).slice(1));\nfunction gt(s, e = 0) {\n return f[s[e + 0]] + f[s[e + 1]] + f[s[e + 2]] + f[s[e + 3]] + \"-\" + f[s[e + 4]] + f[s[e + 5]] + \"-\" + f[s[e + 6]] + f[s[e + 7]] + \"-\" + f[s[e + 8]] + f[s[e + 9]] + \"-\" + f[s[e + 10]] + f[s[e + 11]] + f[s[e + 12]] + f[s[e + 13]] + f[s[e + 14]] + f[s[e + 15]];\n}\nconst yt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), oe = {\n randomUUID: yt\n};\nfunction mt(s, e, t) {\n if (oe.randomUUID && !e && !s)\n return oe.randomUUID();\n s = s || {};\n const n = s.random || (s.rng || pt)();\n if (n[6] = n[6] & 15 | 64, n[8] = n[8] & 63 | 128, e) {\n t = t || 0;\n for (let i = 0; i < 16; ++i)\n e[t + i] = n[i];\n return e;\n }\n return gt(n);\n}\nfunction wt(s, e) {\n const t = e.map((i) => JSON.stringify(i)).join(\" \"), n = (/* @__PURE__ */ new Date()).toISOString();\n return JSON.stringify({\n level: s,\n time: n,\n message: t\n });\n}\nfunction bt(s, e) {\n const t = JSON.parse(s);\n return e.forEach((n) => delete t[n]), t;\n}\nfunction Et(s) {\n if (typeof s == \"object\" && s !== null)\n return s;\n try {\n return JSON.parse(s);\n } catch {\n return { extraData: s };\n }\n}\nfunction vt(s) {\n const e = /\\(([^)]+)\\)/, t = s.match(e);\n if (t && t[1]) {\n const n = t[1].split(\";\");\n for (let i of n)\n if (i = i.trim(), i.startsWith(\"Windows\") || i.startsWith(\"Macintosh\") || i.startsWith(\"Linux\"))\n return i;\n }\n return \"Unknown\";\n}\nfunction ae(s) {\n return (...e) => new Promise((t, n) => {\n try {\n const i = s(...e);\n t(i);\n } catch (i) {\n n(i);\n }\n });\n}\nconst kt = {\n reconnection: !0,\n reconnectionDelay: 5e3,\n reconnectionAttempts: 10,\n //perMessageDeflate: false,\n upgrade: !1,\n transports: [\"websocket\"],\n debug: !1\n}, q = {\n logToConsole: !0,\n overloadGlobalConsole: !1,\n socketEmitInterval: 6e4\n}, At = {\n CREATE: \"Create\",\n READ: \"Read\",\n UPDATE: \"Update\",\n DELETE: \"Delete\",\n CONVERT: \"Convert\",\n DOWNLOAD: \"Download\",\n UPLOAD: \"Upload\",\n ENCRYPT: \"Encrypt\",\n DECRYPT: \"Decrypt\",\n FILTER: \"Filter\",\n INPUT: \"Input\",\n OUTPUT: \"Output\",\n PLUGIN: \"Plugin\",\n LOGIN: \"Login\",\n LOGOUT: \"Logout\",\n REFRESH: \"Refresh\",\n CHECK: \"Check\",\n WEBHOOK: \"Webhook\",\n WSCONNECT: \"WSConnect\"\n}, _t = {\n Create: 1,\n Read: 2,\n Update: 3,\n Delete: 4,\n Convert: 5,\n Download: 6,\n Upload: 7,\n Encrypt: 8,\n Decrypt: 9,\n Filter: 10,\n Input: 11,\n Output: 12,\n Plugin: 13,\n Login: 14,\n Logout: 15,\n Refresh: 16,\n Check: 17,\n Webhook: 18,\n WSConnect: 19\n}, Ct = {\n INFO: \"info\",\n WARNING: \"warning\",\n MODIFY: \"modify\",\n ERROR: \"error\",\n VIEW: \"view\"\n}, St = {\n INFO: \"info\",\n WARNING: \"warning\",\n ERROR: \"error\",\n DEBUG: \"debug\"\n}, Tt = {\n USER: \"User\",\n ACCOUNT: \"Account\"\n}, Rt = {\n USER: \"UserName\",\n ACCOUNT: \"AccountName\",\n EXTENSION: \"ExtensionName\"\n}, Nt = {\n USER: \"UserID\",\n ACCOUNT: \"AccountID\",\n EXTENSION: \"ExtensionID\"\n}, It = {\n USER: \"User ID\",\n ACCOUNT: \"Account ID\",\n EXTENSION: \"Extension ID\",\n CAMPAIGN: \"Campaign ID\",\n QUEUE: \"Queue ID\"\n}, Lt = {\n USER: \"User\",\n ACCOUNT: \"Account\",\n EXTENSION: \"Extension\",\n CAMPAIGN: \"Campaign\",\n QUEUE: \"Queue\"\n};\nlet d = console;\nclass Bt {\n /**\n * Initialize storage logger\n * @param options The configuration of the logger.\n */\n constructor(e) {\n u(this, \"logToConsole\");\n u(this, \"overloadGlobalConsole\");\n u(this, \"system\");\n u(this, \"socketEmitInterval\");\n u(this, \"storageId\");\n u(this, \"emitInProgress\");\n u(this, \"queue\");\n u(this, \"processing\");\n u(this, \"storageInitialized\");\n u(this, \"interval\");\n u(this, \"logIndex\");\n u(this, \"socket\");\n u(this, \"requestUrl\");\n u(this, \"staticObject\", {});\n u(this, \"localObject\", {});\n u(this, \"isGetItemAsync\");\n u(this, \"isSetItemAsync\");\n u(this, \"getItem\");\n u(this, \"setItem\");\n u(this, \"parseLog\");\n u(this, \"_logMethod\");\n u(this, \"_warnMethod\");\n u(this, \"_errorMethod\");\n u(this, \"_debugMethod\");\n const { loggerOptions: t } = e;\n if (!t.system)\n throw new Error(\"Config property 'system' should be provided!\");\n this.isGetItemAsync = t.isGetItemAsync || !1, this.isSetItemAsync = t.isSetItemAsync || !1, this.setupStorageFunctions(t.getItem, t.setItem, t.parseLog), this.system = t.system, this.socketEmitInterval = t.socketEmitInterval || q.socketEmitInterval, this.logToConsole = t.logToConsole !== void 0 ? t.logToConsole : q.logToConsole, this.overloadGlobalConsole = t.overloadGlobalConsole !== void 0 ? t.overloadGlobalConsole : q.overloadGlobalConsole, this.storageId = this.getStorageName(), this.queue = [], this.processing = !1, this.storageInitialized = !1, this.emitInProgress = !1, this.logIndex = 0, this.init(e);\n }\n /**\n * Used to setup storage functions and logs parser function.\n * @param getItemFunction Function for getting item from storage.\n * @param setItemFunction Function for setting item to storage.\n * @param parseLogFunction Function for parsing logs.\n * @return void\n */\n setupStorageFunctions(e, t, n) {\n this.getItem = e && typeof e == \"function\" ? this.isGetItemAsync ? e : ae(e) : this.defaultGetItemFunction, this.setItem = t && typeof t == \"function\" ? this.isSetItemAsync ? t : ae(t) : this.defaultSetItemFunction, this.parseLog = n && typeof n == \"function\" ? n : wt;\n }\n /**\n * Used to send http log request.\n * @param logs logs array which is sent in request body.\n * @return {Promise<Response>}\n */\n sendHttpRequest(e) {\n if (!this.requestUrl)\n throw new Error(\"requestUrl is not provided\");\n const t = {\n Data: e\n };\n return fetch(this.requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(t)\n });\n }\n /**\n * Used to initialize logger. Initializes storage, establishes socket connection and overloads console if needed\n * @param options The logger config.\n * @return void\n */\n init(e) {\n const { socket: t, url: n, requestUrl: i, socketOptions: r = {} } = e;\n this._logMethod = d.log.bind(d), this._warnMethod = d.warn.bind(d), this._errorMethod = d.error.bind(d), this._debugMethod = d.debug.bind(d), this.initStorage().then(() => {\n if (t)\n this.socket = t;\n else if (n)\n this.socket = this.createConnection(n, r);\n else if (i)\n this.requestUrl = i;\n else\n throw new Error(\"Must provide either a 'socket', 'requestUrl' or a 'url' for logger requests\");\n this.interval = setInterval(async () => {\n await this.emitLogs();\n }, this.socketEmitInterval), this.overloadGlobalConsole && this._overloadConsole();\n });\n }\n /**\n * Used to initialize new socket connection\n * @param url The url used for the socket connection.\n * @param options The options used for the socket connection.\n * @return void\n */\n createConnection(e, t) {\n let n = {\n ...kt\n };\n return t && (n = {\n ...n,\n ...t\n }), B(e, n);\n }\n /**\n * Emits stored logs to the server and clears the log storage in case the emit operation was successful\n * @return {Promise<void>}\n */\n async emitLogs() {\n if (!this.emitInProgress)\n try {\n const e = await this.getItem(this.storageId), t = JSON.parse(e || \"{}\"), n = {\n ...this.localObject,\n ...t\n };\n if (!Object.keys(n).length)\n return;\n const i = [];\n this.emitInProgress = !0;\n const r = Object.keys(n);\n if (!r.length)\n return;\n if ((!this.socket || !this.socket.connected) && !this.requestUrl)\n throw new Error(\"Log request can't be sent. Socket is disconnected or requestUrl is not provided\");\n const o = [];\n for (const g of r) {\n const y = Et(n[g]), E = {\n ...this.staticObject,\n ...y\n }, v = this.populateSendingLog(E);\n this.socket ? this.socket.emit(\"Log\", JSON.stringify(v)) : this.requestUrl && o.push(v), i.push(g);\n }\n o.length && await this.sendHttpRequest(o);\n const c = await this.getItem(this.storageId);\n if (!c)\n return;\n const h = bt(c, i);\n this.localObject = {}, await this.setItem(this.storageId, JSON.stringify(h));\n } catch (e) {\n this._errorMethod(e);\n } finally {\n this.emitInProgress = !1;\n }\n }\n /**\n * Used to set additional properties for every sending log\n * @return LoggerDataInner\n */\n populateSendingLog(e) {\n const t = {\n ...e\n }, n = t.ActionName;\n return n && (t.ActionID = _t[n]), t;\n }\n /**\n * Used to set a static object which will be send in every message\n * @return void\n */\n setupStaticFields(e) {\n this.staticObject = { ...e };\n }\n /**\n * Used to populate sending message object with static client parameters\n * @return object\n */\n populateMetaData() {\n const e = /* @__PURE__ */ new Date();\n let t;\n typeof window < \"u\" && typeof window.document < \"u\" ? t = window == null ? void 0 : window.navigator.userAgent : typeof self < \"u\" && self.navigator && (t = self.navigator.userAgent);\n let n;\n return t && (n = vt(t)), {\n System: this.system,\n DateTime: e,\n UserAgent: t,\n OSVersion: n\n };\n }\n /**\n * Used to stop logger and interrupt socket connection\n * @return void\n */\n async stop() {\n !this.socket || !this.socket.connected || (clearInterval(this.interval), await this.emitLogs(), this.socket.disconnect());\n }\n /**\n * Used to start logger and reconnect socket connection\n * @return void\n */\n async start() {\n var e;\n this.socket && this.socket.connected || ((e = this.socket) == null || e.connect(), this.interval = setInterval(async () => {\n await this.emitLogs();\n }, this.socketEmitInterval));\n }\n /**\n * Used to overload the global console object by logger methods.\n * @return void\n */\n _overloadConsole() {\n d = Object.assign(\n d,\n {\n log: (e) => {\n this.log(e);\n },\n warn: (e) => {\n this.warn(e);\n },\n error: (e) => {\n this.error(e);\n },\n debug: (e) => {\n this.debug(e);\n }\n }\n );\n }\n /**\n * Used to initialize the storage if it wasn't created before.\n * @return void\n */\n async initStorage() {\n const e = await this.getItem(this.storageId);\n (!e || typeof e != \"string\") && (await this.setItem(this.storageId, JSON.stringify({})), this.storageInitialized = !0);\n }\n /**\n * Reset log storage\n * @return void\n */\n async resetStorage() {\n await this.setItem(this.storageId, JSON.stringify({}));\n }\n /**\n * Get storage name which is used to access the logs storage\n * @return string\n */\n getStorageName() {\n const e = mt();\n return this.system.toString().toUpperCase() + e + Date.now();\n }\n /**\n * Does common logic for logging data.\n * @param args The arguments of the log where the first argument contains the log level and other\n * arguments are logs to be stored\n * @return void\n */\n async processLog(...e) {\n try {\n if (e.length < 2)\n return;\n const t = e[0], n = e[1], i = this.formItemKey(t);\n if (!this.storageInitialized) {\n this.localObject = {\n ...this.localObject,\n [i]: n\n };\n return;\n }\n const r = await this.getItem(this.storageId);\n if (!r)\n return;\n const o = JSON.parse(r);\n o[i] = JSON.stringify(n), await this.setItem(this.storageId, JSON.stringify(o));\n } catch (t) {\n this._errorMethod(t);\n }\n }\n /**\n * Used to process logs queue.\n * @return Promise<void>\n */\n async processQueue() {\n if (this.processing || this.queue.length === 0)\n return;\n const e = this.queue.shift();\n e && (this.processing = !0, await this.processLog(...e).finally(() => {\n this.processing = !1, this.processQueue();\n }));\n }\n /**\n * Logs info data into the storage\n * @param logData The arguments to be logged.\n * @return void\n */\n log(e) {\n const n = {\n ...this.populateMetaData(),\n ...e\n }, i = [\"INFO\", n];\n this.queue.push(i), this.logToConsole && this._logMethod.apply(d, [n]), this.processQueue();\n }\n /**\n * Logs warn data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n warn(e) {\n const t = [\"WARN\", e];\n this.queue.push(t), this.logToConsole && this._warnMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * Logs error data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n error(e) {\n const t = [\"ERROR\", e];\n this.queue.push(t), this.logToConsole && this._errorMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * Logs debug data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n debug(e) {\n const t = [\"DEBUG\", e];\n this.queue.push(t), this.logToConsole && this._debugMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * The default method for getting logs from storage\n * @param storageId The identifier of storage where logs are stored.\n * @return string || null\n */\n async defaultGetItemFunction(e) {\n return localStorage.getItem(e);\n }\n /**\n * The default method for setting logs into the storage\n * @param storageId The identifier of storage where to store the logs.\n * @param logs The logs to be stored.\n * @return void\n */\n async defaultSetItemFunction(e, t) {\n try {\n localStorage.setItem(e, t);\n } catch (n) {\n this._errorMethod(n);\n }\n }\n /**\n * Used to form a key which will be used to store a log in the storage\n * @param level The log level. For example: Info, Warn, Error etc..\n * @return string\n */\n formItemKey(e) {\n const t = (/* @__PURE__ */ new Date()).toISOString();\n return this.logIndex++, `${e}-${this.system}-${t}-${this.logIndex}`;\n }\n}\nexport {\n _t as ActionIDEnum,\n At as ActionNameEnum,\n It as EntityIDEnum,\n Lt as EntityTypeEnum,\n Nt as IdentityIDEnum,\n Rt as IdentityNameEnum,\n Tt as IdentityTypeEnum,\n St as LevelEnum,\n Ct as LogTypeEnum,\n Bt as default,\n kt as defaultConnectOptions,\n q as defaultLoggerOptions\n};\n//# sourceMappingURL=storage-logger.es.js.map\n","import { Socket } from 'socket.io-client'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport type { LoggerDataPartial } from '@voicenter-team/socketio-storage-logger'\nimport StorageLogger, { ActionNameEnum, LevelEnum, LogTypeEnum } from '@voicenter-team/socketio-storage-logger'\nimport { LoginType } from '@/enum/auth.enum'\nimport { EventsEnum, KeepAliveResponseEvent } from '@voicenter-team/real-time-events-types'\nimport { DebugOption } from '@/enum/events-sdk.enum'\nimport { EventDataMap, EventTypeNames } from '@/types/events'\n\nexport class LoggerClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n }\n\n private storageLogger: StorageLogger | undefined\n\n public init () {\n if (!this.eventsSdkClass.options.useLogger) {\n return\n }\n\n if (this.eventsSdkClass.options.storageLoggerInstance) {\n this.storageLogger = this.eventsSdkClass.options.storageLoggerInstance\n\n return\n }\n\n let socket: Socket | undefined\n\n if (this.eventsSdkClass.options.loggerSocketConnection) {\n socket = this.eventsSdkClass.options.loggerSocketConnection\n }\n\n if (this.eventsSdkClass.socketIoClass.ioFunction && !socket) {\n socket = this.eventsSdkClass.socketIoClass.ioFunction(\n this.eventsSdkClass.options.loggerServer,\n this.eventsSdkClass.options.loggerConnectOptions\n )\n }\n\n if (socket) {\n this.storageLogger = new StorageLogger<LoggerDataPartial>({\n socket,\n loggerOptions: this.eventsSdkClass.options.loggerConfig\n })\n }\n }\n\n async start () {\n if (!this.storageLogger) {\n return\n }\n\n await this.storageLogger.start()\n }\n\n stop () {\n if (!this.storageLogger) {\n return\n }\n\n this.storageLogger.stop()\n }\n\n public log (data: LoggerDataPartial) {\n if (this.eventsSdkClass.options.useLogger) {\n if (this.storageLogger) {\n if (data.Level === LevelEnum.INFO) {\n this.storageLogger.log(data)\n } else if (data.Level === LevelEnum.ERROR) {\n this.storageLogger.error(data)\n }\n } else {\n if (data.Level === LevelEnum.INFO) {\n console.log(data)\n } else if (data.Level === LevelEnum.ERROR) {\n console.error(data)\n }\n }\n }\n }\n\n public sdkConnectionSuccess () {\n const replacedOptions = {\n ...this.eventsSdkClass.options,\n token: 'CENSORED',\n password: 'CENSORED'\n }\n\n this.log({\n Message: `Sdk connected to the socket server ${this.eventsSdkClass.server && this.eventsSdkClass.server.Domain ? this.eventsSdkClass.server.Domain : this.eventsSdkClass.URL}`,\n Body: JSON.stringify(replacedOptions, this.eventsSdkClass.getCircularReplacer()),\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection established',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkDisconnect (reasons: string[]) {\n this.log({\n Message: `Sdk disconnected from the socket server ${this.eventsSdkClass.server && this.eventsSdkClass.server.Domain ? this.eventsSdkClass.server.Domain : this.eventsSdkClass.URL} (${reasons})`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection closed',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkAttemptToConnect (domain?: string) {\n this.log({\n Message: `${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${domain}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Switching Protocols',\n StatusCode: 101,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkAttemptToConnectError (error: Error) {\n this.log({\n Message: `${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection error',\n StatusCode: 500,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public loginError (loginType: LoginType, statusCode?: number, token?: string, email?: string,) {\n this.log({\n Message: `External login request error with the login type ${loginType} ${loginType === LoginType.TOKEN ? token : email}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'External login error',\n StatusCode: statusCode ? statusCode : 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public getSettingsError (token: string, error: Error) {\n this.log({\n Message: `Get settings error with token ${token}, error: ${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Get settings error',\n StatusCode: 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public refreshTokenError (oldRefreshToken: string, refreshTokenUrl: string, error: Error) {\n this.log({\n Message: `Refresh token error with old refresh token ${oldRefreshToken}, url: ${refreshTokenUrl}, error: ${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Get settings error',\n StatusCode: 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public keepAliveEmit () {\n this.log({\n Message: `Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public keepAliveResponse (data: KeepAliveResponseEvent) {\n this.log({\n Message: `Keep alive response: ${JSON.stringify(data)}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Successful',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public eventLog<T extends EventTypeNames> (\n eventName: T,\n data: EventDataMap[T]\n ) {\n const eventLogMap: Record<DebugOption, EventsEnum[]> = {\n [DebugOption.FULL]: [],\n [DebugOption.BOOTSTRAP]: [ EventsEnum.LOGIN_STATUS, EventsEnum.LOGIN_SUCCESS, EventsEnum.ALL_EXTENSION_STATUS, EventsEnum.ALL_DIALER_STATUS ],\n [DebugOption.DEBUG_EXTENSIONS]: [ EventsEnum.ALL_EXTENSION_STATUS, EventsEnum.EXTENSION_EVENT, EventsEnum.EXTENSIONS_UPDATED ],\n [DebugOption.DEBUG_DIALER]: [ EventsEnum.ALL_DIALER_STATUS, EventsEnum.DIALER_EVENT ],\n [DebugOption.DEBUG_QUEUE]: [ EventsEnum.QUEUE_EVENT ]\n }\n\n if (this.eventsSdkClass.options.debugOption) {\n if (\n eventLogMap[this.eventsSdkClass.options.debugOption].includes(eventName) ||\n this.eventsSdkClass.options.debugOption === DebugOption.FULL\n ) {\n this.log({\n Message: `Event name: ${eventName}`,\n Body: data,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Successful',\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n }\n }\n}\n","import type {\n EventCallbackListenersMap,\n EventData,\n EventSpecificCallback,\n EventTypeData,\n EventTypeNames,\n GenericEventWrapper,\n} from '@/types/events'\nimport { EventsEnum } from '@voicenter-team/real-time-events-types'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\n\nexport class EventEmitterClass {\n private listeners: EventCallbackListenersMap = {\n [EventsEnum.ALL_EXTENSION_STATUS]: [],\n [EventsEnum.ALL_DIALER_STATUS]: [],\n [EventsEnum.ALL_USERS_STATUS]: [],\n [EventsEnum.QUEUE_EVENT]: [],\n [EventsEnum.EXTENSION_EVENT]: [],\n [EventsEnum.DIALER_EVENT]: [],\n [EventsEnum.LOGIN_SUCCESS]: [],\n [EventsEnum.LOGIN_STATUS]: [],\n [EventsEnum.KEEP_ALIVE_RESPONSE]: [],\n [EventsEnum.ONLINE_STATUS_EVENT]: [],\n [EventsEnum.EXTENSIONS_UPDATED]: []\n }\n private allListeners: Array<(data: GenericEventWrapper) => void> = []\n\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n }\n\n public on (event: unknown, callback: unknown) {\n if (event === '*') {\n this.allListeners.push(callback as (data: GenericEventWrapper) => void)\n } else {\n // Handle specific event type with strong typing\n this.listeners[event as EventTypeNames].push(callback as EventSpecificCallback<EventTypeNames>)\n }\n }\n\n public off<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void\n public off (event: '*', callback: (data: GenericEventWrapper) => void): void\n public off (event: unknown, callback: unknown) {\n if (event === '*') {\n this.allListeners = this.allListeners.filter(item => item !== callback)\n } else {\n const data = this.listeners[event as EventTypeNames] as Array<EventSpecificCallback<EventTypeNames>>\n const filtered = data.filter(item => item !== callback)\n\n this.listeners = {\n ...this.listeners,\n [event as EventTypeNames]: filtered\n }\n }\n }\n\n public emit <T extends EventTypeNames> (event: T, data: EventTypeData<T>) {\n this.eventsSdkClass.socketIoClass.lastEventTimestamp = new Date().getTime()\n\n this.listeners[event].forEach(callback => callback({\n name: event,\n data\n }))\n\n const allEventData: GenericEventWrapper = {\n name: event,\n data: data as EventData\n }\n\n this.allListeners.forEach((callback) => callback(allEventData))\n }\n}\n","import AuthClass from '@/classes/auth/auth.class'\nimport { eventsSdkDefaultOptions } from '@/classes/events-sdk/events-sdk-default-options'\nimport { SocketIoClass } from '@/classes/socket-io/socket-io.class'\nimport {\n EventsSdkOptionsBase,\n Server\n} from '@/classes/events-sdk/events-sdk.types'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport type {\n EventsSdkOptionsClient,\n EventsSdkOptionsMain\n} from '@/classes/events-sdk/events-sdk.types'\nimport type {\n ServerEmitEventCallbackRegistry,\n ServerEmitEventTypeNames,\n SocketTyped\n} from '@/types/socket'\nimport type {\n EventSpecificCallback,\n EventTypeNames,\n GenericEventWrapper,\n} from '@/types/events'\nimport { LoggerClass } from '@/classes/logger/logger.class'\nimport { EventEmitterClass } from '@/classes/event-emitter/event-emitter.class'\n\nclass EventsSdkClass {\n public readonly options: EventsSdkOptionsMain & EventsSdkOptionsBase\n public servers: Server[] = []\n public URLList: string[] = []\n public server: Server | undefined\n public URL: string | undefined\n public socket: SocketTyped | undefined\n private mainServer: Server | undefined\n\n private alreadyAttemptedOtherServers: Array<number | string> = []\n\n public authClass = new AuthClass(this)\n public socketIoClass = new SocketIoClass(this)\n public loggerClass = new LoggerClass(this)\n public eventEmitterClass = new EventEmitterClass(this)\n\n constructor (options: EventsSdkOptionsClient) {\n this.options = {\n ...eventsSdkDefaultOptions,\n ...options\n }\n }\n\n public on<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void\n public on (event: '*', callback: (data: GenericEventWrapper) => void): void\n public on (event: unknown, callback: unknown): void {\n this.eventEmitterClass.on(event, callback)\n }\n\n public emit <T extends ServerEmitEventTypeNames> (event: T, ...args: Parameters<ServerEmitEventCallbackRegistry[T]>) {\n if (this.socketIoClass.io) {\n this.socketIoClass.io.emit(event, ...args)\n }\n }\n\n public connect (serverParameter: ServerParameter) {\n if (serverParameter === ServerParameter.MAIN) {\n this.findMainServer()\n }\n\n if (serverParameter === ServerParameter.NEXT) {\n this.findNextServer()\n }\n\n this.socketIoClass.doReconnect = true\n\n try {\n this.loggerClass.init()\n } catch (e) {\n console.error(e)\n }\n\n this.socketIoClass.initSocketConnection()\n\n this.socketIoClass.initSocketEvents()\n\n this.socketIoClass.initKeepAlive()\n }\n\n public disconnect () {\n this.socketIoClass.doReconnect = false\n\n this.socketIoClass.closeAllConnections()\n\n this.loggerClass.stop()\n }\n\n public clearKeepAliveInterval () {\n this.socketIoClass.clearKeepAliveInterval()\n }\n\n private findMainServer () {\n if (this.servers.length) {\n this.mainServer = this.servers.reduce((prev, cur) => {\n return cur.Priority > prev.Priority ? cur : prev\n })\n\n this.server = this.mainServer\n } else {\n if (this.URLList.length) {\n this.URL = this.URLList[0]\n }\n }\n }\n\n private findNextServer () {\n if (this.servers.length && this.server) {\n if (this.server.Priority === this.mainServer!.Priority) {\n let filteredServers = this.servers.filter(\n server =>\n server.Priority !== this.mainServer!.Priority &&\n this.alreadyAttemptedOtherServers.indexOf(server.Priority) + 1 === 0\n )\n\n if (!filteredServers.length) {\n this.alreadyAttemptedOtherServers = []\n\n filteredServers = this.servers.filter(\n server =>\n server.Priority !== this.mainServer!.Priority &&\n this.alreadyAttemptedOtherServers.indexOf(server.Priority) + 1 === 0\n )\n }\n\n if (filteredServers.length) {\n this.server = filteredServers.reduce((prev, cur) => {\n return cur.Priority > prev.Priority ? cur : prev\n })\n\n this.alreadyAttemptedOtherServers.push(this.server.Priority)\n }\n } else {\n this.server = this.mainServer!\n }\n } else {\n if (this.URLList.length) {\n if (this.URL === this.URLList[0]) {\n let filteredServers = this.URLList.filter(\n url =>\n url !== this.URLList[0] &&\n this.alreadyAttemptedOtherServers.indexOf(url) + 1 === 0\n )\n\n if (!filteredServers.length) {\n this.alreadyAttemptedOtherServers = []\n\n filteredServers = this.URLList.filter(\n url =>\n url !== this.URLList[0] &&\n this.alreadyAttemptedOtherServers.indexOf(url) + 1 === 0\n )\n }\n\n if (filteredServers.length) {\n this.URL = filteredServers[0]\n\n this.alreadyAttemptedOtherServers.push(this.URL)\n }\n } else {\n this.URL = this.URLList[0]\n }\n }\n }\n }\n\n public async init () {\n const loginSessionData = await this.authClass.login()\n\n if (loginSessionData) {\n this.authClass.onLoginResponse(loginSessionData)\n }\n\n return true\n }\n\n public getCircularReplacer = () => {\n const seen = new WeakSet()\n return (key: string, value: object) => {\n // Custom handling for specific circular references\n if (key === 'socket' || key === 'io' || key === 'nsps') {\n return undefined\n }\n\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return\n }\n seen.add(value)\n }\n return value\n }\n }\n\n public getCurrentMonitorServer (): Server | undefined {\n return this.server\n }\n}\n\nexport default EventsSdkClass\n"],"names":["base64map","crypt","n","b","i","bytes","words","hex","c","base64","triplet","j","imod4","cryptModule","charenc","str","charenc_1","isBuffer_1","obj","isBuffer","isSlowBuffer","require$$0","utf8","require$$1","require$$2","bin","md5","message","options","m","l","a","d","FF","GG","HH","II","aa","bb","cc","dd","x","s","t","md5Module","digestbytes","DebugOption","ServerParameter","LoginType","StorageClass","key","doParse","loginSessionKey","storageData","AuthClass","eventsSdkClass","__publicField","payload","loginSessionData","loginType","externalLoginResponse","settings","prev","current","date","timeout","maxAllowedTimeout","refreshTokenResponse","url","password","token","email","body","statusCode","res","data","error","refreshTokenUrl","oldRefreshToken","eventsSdkDefaultOptions","v1_3_7","ws","e","r","o","p","f","u","h","g","w","v","y","k","A","B","C","S","E","T","_","P","R","N","O","U","q","D","I","L","importModules","SOCKET_NAME_REGEX","isSocketIoFn","socket","sockets","acc","currentValue","module","moduleName","_a","getSocketVersion","version","sockets$1","args","CallStatusEnum","CallTypeEnum","ConnectionStatusEnum","DialerTypeEnum","DirectionEnum","DoNotCallMeStatusCodeEnum","EventsEnum","ExtensionEventReasonEnum","ExtensionHangupCauseEnum","QueueEventReasonEnum","EventsHandler","reason","dataExtended","currentCallExtended","extensionExtended","call","callExtended","_b","extension","queue","value","properties","servertime","servertimeoffset","serverTimeUTC","diffServerAndClient","extendedProperties","property","valueFormatted","baseTime","ServerListenerEventsEnum","SocketIoClass","Client","parsedArray","protocol","server","domain","eventName","ke","_e","ce","he","ue","J","Q","Oe","X","Ae","Ce","K","le","Se","fe","Te","Re","Ne","Ie","de","Le","pe","Be","xe","Ue","De","qe","Pe","Me","Ve","G","ge","M","Fe","Z","ee","te","ye","me","We","we","He","Je","Ke","se","$","ne","Ge","ie","$e","Ye","ze","Qe","je","V","Xe","Ze","be","et","tt","st","Ee","nt","it","Y","rt","F","ot","W","at","ct","ht","re","z","ut","lt","ft","ve","H","dt","pt","gt","yt","oe","mt","wt","bt","Et","vt","ae","kt","At","_t","Ct","St","Bt","LoggerClass","StorageLogger","LevelEnum","replacedOptions","ActionNameEnum","LogTypeEnum","reasons","eventLogMap","EventEmitterClass","event","callback","item","filtered","allEventData","EventsSdkClass","seen","serverParameter","cur","filteredServers"],"mappings":"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","x_google_ignoreList":[0,1,2,3,11,12,13,14,15,16,17,18,19,20]}
1
+ {"version":3,"file":"voicenter-events-sdk.umd.js","sources":["../node_modules/crypt/crypt.js","../node_modules/charenc/charenc.js","../node_modules/is-buffer/index.js","../node_modules/md5/md5.js","../src/enum/events-sdk.enum.ts","../src/enum/auth.enum.ts","../src/classes/storage/storage.class.ts","../src/classes/auth/auth.class.ts","../src/classes/events-sdk/events-sdk-default-options.ts","../src/classes/socket-io/versions/v1_3_7.js","../src/classes/socket-io/versions/index.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/CallStatusEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/CallTypeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ConnectionStatusEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DialerTypeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DirectionEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/DoNotCallMeStatusCodeEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/EventsEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ExtensionEventReasonEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/ExtensionHangupCauseEnum.ts","../node_modules/@voicenter-team/real-time-events-types/dist/models/QueueEventReasonEnum.ts","../src/classes/socket-io/events-handler.ts","../src/enum/socket.enum.ts","../src/classes/socket-io/socket-io.class.ts","../../socketio-storage-logger/dist/storage-logger.es.js","../src/classes/logger/logger.class.ts","../src/classes/event-emitter/event-emitter.class.ts","../src/classes/events-sdk/events-sdk.class.ts"],"sourcesContent":["(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","export enum DebugOption {\n BOOTSTRAP = 'bootstrap',\n DEBUG_EXTENSIONS = 'debugExtensions',\n DEBUG_QUEUE = 'debugQueue',\n DEBUG_DIALER = 'debugDialer',\n FULL = 'full',\n}\n\nexport enum ServerParameter {\n MAIN = 'main',\n NEXT = 'next'\n}\n","export enum LoginType {\n USER = 'User',\n TOKEN = 'Token'\n}","export class StorageClass {\n public static getSessionStorageDataByKey <T extends object> (key: string, doParse?: true): Promise<T | undefined>\n public static getSessionStorageDataByKey (key: string, doParse?: false): Promise<string | undefined>\n public static async getSessionStorageDataByKey (key: string, doParse = true) {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n const loginSessionKey = await chrome.storage.session.get(key)\n\n if (loginSessionKey[key]) {\n if (doParse) {\n return JSON.parse(loginSessionKey[key])\n } else {\n return loginSessionKey[key]\n }\n }\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.getItem === 'function') {\n const loginSessionKey = window.sessionStorage.getItem(key)\n\n if (loginSessionKey) {\n if (doParse) {\n return JSON.parse(loginSessionKey)\n } else {\n return loginSessionKey\n }\n }\n }\n }\n\n public static async updateSessionStorageKey <T> (key: string, storageData: Partial<T>) {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n await chrome.storage.session.set({\n [key]: JSON.stringify(storageData)\n })\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.setItem === 'function') {\n window.sessionStorage.setItem(key, JSON.stringify(storageData))\n }\n }\n\n public static clearSessionStorage () {\n if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {\n chrome.storage.session.clear()\n }\n\n if (typeof window !== 'undefined' && typeof window.sessionStorage !== 'undefined' && typeof window.sessionStorage.clear === 'function') {\n window.sessionStorage.clear()\n }\n }\n}\n","import md5 from 'md5'\n\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport {\n ExternalLoginNewStackResponseData,\n ExternalLoginOldStackResponseData,\n ExternalLoginResponse,\n LoginSessionData,\n LoginSessionPayload,\n Settings\n} from '@/types/auth'\nimport { LoginType } from '@/enum/auth.enum'\nimport { StorageClass } from '@/classes/storage/storage.class'\n\nclass AuthClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n\n this.storageKey = ''\n }\n\n private delay = 1000\n public lastLoginTimestamp: number | undefined\n public token: string | undefined\n private refreshToken: string | undefined\n private tokenExpiry: Date | undefined\n\n private storageKey: string\n\n public async login () {\n const payload: LoginSessionPayload = {\n token: this.eventsSdkClass.options.token && this.eventsSdkClass.options.token,\n email: this.eventsSdkClass.options.email && this.eventsSdkClass.options.email,\n password: this.eventsSdkClass.options.password && this.eventsSdkClass.options.password\n }\n\n this.storageKey = md5(JSON.stringify({\n ...this.eventsSdkClass.options,\n loggerSocketConnection: null\n }, this.eventsSdkClass.getCircularReplacer()))\n\n if (this.lastLoginTimestamp && this.lastLoginTimestamp + this.delay > new Date().getTime()) {\n return\n }\n\n this.updateLastLoginTimestamp()\n\n const loginSessionData = await this.checkLoginStatus(this.storageKey)\n\n if (!loginSessionData) {\n StorageClass.clearSessionStorage()\n\n return await this.userLoginFunction(payload, this.storageKey, this.eventsSdkClass.options.loginType)\n }\n\n return loginSessionData\n }\n\n public updateLastLoginTimestamp () {\n this.lastLoginTimestamp = new Date().getTime()\n }\n\n private async checkLoginStatus (key: string): Promise<LoginSessionData | undefined> {\n const loginSessionData = await StorageClass.getSessionStorageDataByKey<LoginSessionData>(key)\n\n if (!loginSessionData) {\n return\n }\n\n return loginSessionData\n }\n\n private async userLoginFunction (\n payload: LoginSessionPayload,\n key: string,\n loginType: LoginType,\n ) {\n let externalLoginResponse\n\n let settings\n\n let loginSessionData: Partial<LoginSessionData>\n\n if (this.eventsSdkClass.options.isNewStack) {\n externalLoginResponse = await this.externalLogin<ExternalLoginNewStackResponseData>(\n this.eventsSdkClass.options.loginUrl,\n payload,\n loginType,\n )\n\n settings = await this.getSettings(externalLoginResponse.Data.AccessToken)\n\n loginSessionData = {\n ...externalLoginResponse.Data,\n ...settings\n }\n } else {\n externalLoginResponse = await this.externalLogin<ExternalLoginOldStackResponseData>(\n this.eventsSdkClass.options.loginUrl,\n payload,\n loginType,\n )\n\n loginSessionData = {\n ...externalLoginResponse.Data.Socket,\n }\n }\n\n await StorageClass.updateSessionStorageKey(key, loginSessionData)\n\n return loginSessionData\n }\n\n public onLoginResponse (loginSessionData: Partial<LoginSessionData>) {\n if (!this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {\n this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {\n this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (loginSessionData.MonitorList && loginSessionData.MonitorList.length) {\n this.eventsSdkClass.servers = [ ...loginSessionData.MonitorList ]\n this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>\n (prev.Priority > current.Priority) ? prev : current\n )\n }\n if (!this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.servers.length && loginSessionData.URLList) {\n this.eventsSdkClass.URLList = loginSessionData.URLList\n }\n if (!this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.URLList.length && !this.eventsSdkClass.servers.length) {\n throw new Error('Socket servers not defined')\n }\n if (this.eventsSdkClass.options.isNewStack && !this.eventsSdkClass.servers.length) {\n throw new Error('Socket servers not defined')\n }\n if (this.eventsSdkClass.server) {\n this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${this.eventsSdkClass.server.Version}`)\n }\n if (!this.eventsSdkClass.server && this.eventsSdkClass.URLList.length) {\n this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${loginSessionData.Version}`)\n }\n if (loginSessionData.IdentityCode) {\n this.token = loginSessionData.IdentityCode\n this.eventsSdkClass.connect(ServerParameter.MAIN)\n }\n if (loginSessionData.Token) {\n this.token = loginSessionData.Token\n this.eventsSdkClass.connect(ServerParameter.MAIN)\n }\n if (loginSessionData.RefreshToken && loginSessionData.IdentityCodeExpiry && this.eventsSdkClass.options.loginType === LoginType.USER) {\n this.refreshToken = loginSessionData.RefreshToken\n this.tokenExpiry = loginSessionData.IdentityCodeExpiry\n this.handleTokenExpiry()\n }\n if (loginSessionData.RefreshToken && loginSessionData.TokenExpiry && this.normalizeLoginType(this.eventsSdkClass.options.loginType) === LoginType.USER) {\n this.refreshToken = loginSessionData.RefreshToken\n this.tokenExpiry = loginSessionData.TokenExpiry\n this.handleTokenExpiry()\n }\n }\n\n public handleTokenExpiry () {\n if (!this.eventsSdkClass.options.refreshTokenUrl) {\n throw new Error('refreshTokenUrl not provided')\n }\n\n let date: Date\n\n if (this.tokenExpiry) {\n date = new Date(this.tokenExpiry)\n } else {\n return\n }\n\n const timeout = date.getTime() - new Date().getTime() - 5000 // 5 seconds before expire\n\n const maxAllowedTimeout = Math.min(timeout, 0x7FFFFFFF)\n\n setTimeout(\n async () => {\n if (this.refreshToken) {\n this.eventsSdkClass.socketIoClass.closeAllConnections()\n\n let settings\n\n let loginSessionData: Partial<LoginSessionData>\n\n if (this.eventsSdkClass.options.isNewStack) {\n const refreshTokenResponse = await this.externalRefreshToken<ExternalLoginNewStackResponseData>(\n this.eventsSdkClass.options.refreshTokenUrl,\n this.refreshToken\n )\n\n settings = await this.getSettings(refreshTokenResponse.Data.AccessToken)\n\n loginSessionData = {\n ...refreshTokenResponse.Data,\n ...settings\n }\n } else {\n const refreshTokenResponse = await this.externalRefreshToken<ExternalLoginOldStackResponseData>(\n this.eventsSdkClass.options.refreshTokenUrl,\n this.refreshToken\n )\n\n loginSessionData = {\n ...refreshTokenResponse.Data.Socket,\n }\n }\n\n this.onLoginResponse(loginSessionData)\n\n await StorageClass.updateSessionStorageKey(this.storageKey, loginSessionData)\n }\n },\n maxAllowedTimeout)\n }\n\n private async externalLogin<T> (\n url: string,\n { password, token, email }: LoginSessionPayload,\n loginType: LoginType,\n ): Promise<ExternalLoginResponse<T>> {\n if (!url) {\n throw new Error('loginUrl not provided')\n }\n\n let body: string\n\n if (this.eventsSdkClass.options.isNewStack) {\n if (loginType === LoginType.TOKEN) {\n body = JSON.stringify({\n identityType: LoginType.TOKEN,\n token\n })\n } else {\n body = JSON.stringify({\n identityType: LoginType.USER,\n username: email,\n password,\n })\n }\n } else {\n if (this.eventsSdkClass.options.loginType === LoginType.TOKEN) {\n body = JSON.stringify({ token })\n\n url = `${url}/${LoginType.TOKEN}`\n } else {\n body = JSON.stringify({\n email,\n pin: password\n })\n\n url = `${url}/${LoginType.USER}`\n }\n }\n\n let statusCode\n\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body,\n })\n\n if (!res.ok && res.status === 400) {\n statusCode = 400\n\n throw new Error('Bad body request. Login type or isNewStack values not correct or not provided')\n }\n\n if (!res.ok && res.status === 401) {\n statusCode = 401\n\n throw new Error('Unauthorized. Invalid token provided')\n }\n\n if (!res.ok && res.status === 403) {\n statusCode = 403\n\n throw new Error('Forbidden. Identity token not provided or not valid')\n }\n\n const data = await res.json()\n\n if (data.error) {\n throw new Error(data.error)\n }\n return data\n } catch (error) {\n this.eventsSdkClass.loggerClass.loginError(loginType, statusCode, token, email)\n\n throw error\n }\n }\n\n private async getSettings (token: string): Promise<Settings> {\n try {\n if (!this.eventsSdkClass.options.getSettingsUrl) {\n throw new Error('getSettingsUrl not provided')\n }\n\n const res = await fetch(this.eventsSdkClass.options.getSettingsUrl, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n })\n\n if (!res.ok && res.status === 401) {\n throw new Error('Unauthorized. Access token not provided or not valid')\n }\n\n return res.json()\n } catch (error) {\n this.eventsSdkClass.loggerClass.getSettingsError(token, error as Error)\n\n throw error\n }\n }\n\n private async externalRefreshToken<T> (refreshTokenUrl: string, oldRefreshToken: string): Promise<ExternalLoginResponse<T>> {\n try {\n const res = await fetch(refreshTokenUrl, {\n method: 'GET',\n\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${oldRefreshToken}`\n }\n })\n return res.json()\n } catch (error) {\n this.eventsSdkClass.loggerClass.refreshTokenError(oldRefreshToken, refreshTokenUrl, error as Error)\n\n throw error\n }\n }\n\n private normalizeLoginType (loginType: string): string {\n return loginType.charAt(0).toUpperCase() + loginType.slice(1).toLowerCase()\n }\n}\n\nexport default AuthClass\n","import type { EventsSdkOptionsMain } from '@/classes/events-sdk/events-sdk.types'\n\nexport const eventsSdkDefaultOptions: EventsSdkOptionsMain = {\n isNewStack: false,\n loginUrl: 'https://loginapi.voicenter.co.il/monitorAPI/Login',\n refreshTokenUrl: 'https://loginapi.voicenter.co.il/monitorAPI/RefreshIdentityToken',\n forceNew: true,\n reconnectionDelay: 10000,\n timeout: 10000,\n keepAliveTimeout: 60000,\n protocol: 'https',\n useLogger: true,\n loggerServer: 'https://socketlog.voicenter.co',\n loggerConfig: {\n logToConsole: true,\n overloadGlobalConsole: false,\n system: 'events-sdk', // ws-connection (should be like a subSystem)\n socketEmitInterval: 10000,\n },\n loggerConnectOptions: {\n reconnection: false,\n reconnectionDelay: 5000,\n reconnectionAttempts: 10,\n perMessageDeflate: undefined,\n upgrade: false,\n transports: [ 'websocket' ],\n debug: false\n },\n}\n","/* eslint-disable */\nimport ws from 'ws'\n\nexport default function () {\n // Fix for react-native\n if (typeof window !== 'undefined') {\n if (typeof window.navigator === 'undefined' || typeof window.navigator.userAgent === 'undefined') {\n window.navigator.userAgent = 'react-native'\n }\n }\n\n // Fix for node.js usage\n if (typeof self === 'undefined' && typeof global === 'object') {\n global.self = global\n\n global.WebSocket = ws\n\n if (typeof self.navigator === 'undefined') {\n self.navigator = { userAgent: 'node' }\n }\n }\n\n var t;\n return function e(t, n, r) {\n function o(s, a) {\n if (!n[s]) {\n if (!t[s]) {\n var c = \"function\" == typeof require && require;\n if (!a && c) return c(s, !0);\n if (i) return i(s, !0);\n throw new Error(\"Cannot find module '\" + s + \"'\")\n }\n var p = n[s] = {exports: {}};\n t[s][0].call(p.exports, function (e) {\n var n = t[s][1][e];\n return o(n ? n : e)\n }, p, p.exports, e, t, n, r)\n }\n return n[s].exports\n }\n\n for (var i = \"function\" == typeof require && require, s = 0; s < r.length; s++) o(r[s]);\n return o\n }({\n 1: [function (t, e) {\n e.exports = t(\"./lib/\")\n }, {\"./lib/\": 2}],\n 2: [function (t, e, n) {\n function r(t, e) {\n \"object\" == typeof t && (e = t, t = void 0), e = e || {};\n var n, r = o(t), i = r.source, p = r.id;\n return e.forceNew || e[\"force new connection\"] || !1 === e.multiplex ? (a(\"ignoring socket cache for %s\", i), n = s(i, e)) : (c[p] || (a(\"new io instance for %s\", i), c[p] = s(i, e)), n = c[p]), n.socket(r.path)\n }\n\n var o = t(\"./url\"), i = t(\"socket.io-parser\"), s = t(\"./manager\"), a = t(\"debug\")(\"socket.io-client\");\n e.exports = n = r;\n var c = n.managers = {};\n n.protocol = i.protocol, n.connect = r, n.Manager = t(\"./manager\"), n.Socket = t(\"./socket\")\n }, {\"./manager\": 3, \"./socket\": 5, \"./url\": 6, debug: 10, \"socket.io-parser\": 44}],\n 3: [function (t, e) {\n function n(t, e) {\n return this instanceof n ? (t && \"object\" == typeof t && (e = t, t = void 0), e = e || {}, e.path = e.path || \"/socket.io\", this.nsps = {}, this.subs = [], this.opts = e, this.reconnection(e.reconnection !== !1), this.reconnectionAttempts(e.reconnectionAttempts || 1 / 0), this.reconnectionDelay(e.reconnectionDelay || 1e3), this.reconnectionDelayMax(e.reconnectionDelayMax || 5e3), this.randomizationFactor(e.randomizationFactor || .5), this.backoff = new f({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n }), this.timeout(null == e.timeout ? 2e4 : e.timeout), this.readyState = \"closed\", this.uri = t, this.connected = [], this.encoding = !1, this.packetBuffer = [], this.encoder = new s.Encoder, this.decoder = new s.Decoder, this.autoConnect = e.autoConnect !== !1, void (this.autoConnect && this.open())) : new n(t, e)\n }\n\n var r = (t(\"./url\"), t(\"engine.io-client\")), o = t(\"./socket\"), i = t(\"component-emitter\"),\n s = t(\"socket.io-parser\"), a = t(\"./on\"), c = t(\"component-bind\"),\n p = (t(\"object-component\"), t(\"debug\")(\"socket.io-client:manager\")), u = t(\"indexof\"), f = t(\"backo2\");\n e.exports = n, n.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var t in this.nsps) this.nsps[t].emit.apply(this.nsps[t], arguments)\n }, n.prototype.updateSocketIds = function () {\n for (var t in this.nsps) this.nsps[t].id = this.engine.id\n }, i(n.prototype), n.prototype.reconnection = function (t) {\n return arguments.length ? (this._reconnection = !!t, this) : this._reconnection\n }, n.prototype.reconnectionAttempts = function (t) {\n return arguments.length ? (this._reconnectionAttempts = t, this) : this._reconnectionAttempts\n }, n.prototype.reconnectionDelay = function (t) {\n return arguments.length ? (this._reconnectionDelay = t, this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay\n }, n.prototype.randomizationFactor = function (t) {\n return arguments.length ? (this._randomizationFactor = t, this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor\n }, n.prototype.reconnectionDelayMax = function (t) {\n return arguments.length ? (this._reconnectionDelayMax = t, this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax\n }, n.prototype.timeout = function (t) {\n return arguments.length ? (this._timeout = t, this) : this._timeout\n }, n.prototype.maybeReconnectOnOpen = function () {\n !this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect()\n }, n.prototype.open = n.prototype.connect = function (t) {\n if (p(\"readyState %s\", this.readyState), ~this.readyState.indexOf(\"open\")) return this;\n p(\"opening %s\", this.uri), this.engine = r(this.uri, this.opts);\n var e = this.engine, n = this;\n this.readyState = \"opening\", this.skipReconnect = !1;\n var o = a(e, \"open\", function () {\n n.onopen(), t && t()\n }), i = a(e, \"error\", function (e) {\n if (p(\"connect_error\"), n.cleanup(), n.readyState = \"closed\", n.emitAll(\"connect_error\", e), t) {\n var r = new Error(\"Connection error\");\n r.data = e, t(r)\n } else n.maybeReconnectOnOpen()\n });\n if (!1 !== this._timeout) {\n var s = this._timeout;\n p(\"connect attempt will timeout after %d\", s);\n var c = setTimeout(function () {\n p(\"connect attempt timed out after %d\", s), o.destroy(), e.close(), e.emit(\"error\", \"timeout\"), n.emitAll(\"connect_timeout\", s)\n }, s);\n this.subs.push({\n destroy: function () {\n clearTimeout(c)\n }\n })\n }\n return this.subs.push(o), this.subs.push(i), this\n }, n.prototype.onopen = function () {\n p(\"open\"), this.cleanup(), this.readyState = \"open\", this.emit(\"open\");\n var t = this.engine;\n this.subs.push(a(t, \"data\", c(this, \"ondata\"))), this.subs.push(a(this.decoder, \"decoded\", c(this, \"ondecoded\"))), this.subs.push(a(t, \"error\", c(this, \"onerror\"))), this.subs.push(a(t, \"close\", c(this, \"onclose\")))\n }, n.prototype.ondata = function (t) {\n this.decoder.add(t)\n }, n.prototype.ondecoded = function (t) {\n this.emit(\"packet\", t)\n }, n.prototype.onerror = function (t) {\n p(\"error\", t), this.emitAll(\"error\", t)\n }, n.prototype.socket = function (t) {\n var e = this.nsps[t];\n if (!e) {\n e = new o(this, t), this.nsps[t] = e;\n var n = this;\n e.on(\"connect\", function () {\n e.id = n.engine.id, ~u(n.connected, e) || n.connected.push(e)\n })\n }\n return e\n }, n.prototype.destroy = function (t) {\n var e = u(this.connected, t);\n ~e && this.connected.splice(e, 1), this.connected.length || this.close()\n }, n.prototype.packet = function (t) {\n p(\"writing packet %j\", t);\n var e = this;\n e.encoding ? e.packetBuffer.push(t) : (e.encoding = !0, this.encoder.encode(t, function (t) {\n for (var n = 0; n < t.length; n++) e.engine.write(t[n]);\n e.encoding = !1, e.processPacketQueue()\n }))\n }, n.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var t = this.packetBuffer.shift();\n this.packet(t)\n }\n }, n.prototype.cleanup = function () {\n for (var t; t = this.subs.shift();) t.destroy();\n this.packetBuffer = [], this.encoding = !1, this.decoder.destroy()\n }, n.prototype.close = n.prototype.disconnect = function () {\n this.skipReconnect = !0, this.backoff.reset(), this.readyState = \"closed\", this.engine && this.engine.close()\n }, n.prototype.onclose = function (t) {\n p(\"close\"), this.cleanup(), this.backoff.reset(), this.readyState = \"closed\", this.emit(\"close\", t), this._reconnection && !this.skipReconnect && this.reconnect()\n }, n.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n var t = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) p(\"reconnect failed\"), this.backoff.reset(), this.emitAll(\"reconnect_failed\"), this.reconnecting = !1; else {\n var e = this.backoff.duration();\n p(\"will wait %dms before reconnect attempt\", e), this.reconnecting = !0;\n var n = setTimeout(function () {\n t.skipReconnect || (p(\"attempting reconnect\"), t.emitAll(\"reconnect_attempt\", t.backoff.attempts), t.emitAll(\"reconnecting\", t.backoff.attempts), t.skipReconnect || t.open(function (e) {\n e ? (p(\"reconnect attempt error\"), t.reconnecting = !1, t.reconnect(), t.emitAll(\"reconnect_error\", e.data)) : (p(\"reconnect success\"), t.onreconnect())\n }))\n }, e);\n this.subs.push({\n destroy: function () {\n clearTimeout(n)\n }\n })\n }\n }, n.prototype.onreconnect = function () {\n var t = this.backoff.attempts;\n this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll(\"reconnect\", t)\n }\n }, {\n \"./on\": 4,\n \"./socket\": 5,\n \"./url\": 6,\n backo2: 7,\n \"component-bind\": 8,\n \"component-emitter\": 9,\n debug: 10,\n \"engine.io-client\": 11,\n indexof: 40,\n \"object-component\": 41,\n \"socket.io-parser\": 44\n }],\n 4: [function (t, e) {\n function n(t, e, n) {\n return t.on(e, n), {\n destroy: function () {\n t.removeListener(e, n)\n }\n }\n }\n\n e.exports = n\n }, {}],\n 5: [function (t, e, n) {\n function r(t, e) {\n this.io = t, this.nsp = e, this.json = this, this.ids = 0, this.acks = {}, this.io.autoConnect && this.open(), this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0\n }\n\n var o = t(\"socket.io-parser\"), i = t(\"component-emitter\"), s = t(\"to-array\"), a = t(\"./on\"),\n c = t(\"component-bind\"), p = t(\"debug\")(\"socket.io-client:socket\"), u = t(\"has-binary\");\n e.exports = n = r;\n var f = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1\n }, h = i.prototype.emit;\n i(r.prototype), r.prototype.subEvents = function () {\n if (!this.subs) {\n var t = this.io;\n this.subs = [a(t, \"open\", c(this, \"onopen\")), a(t, \"packet\", c(this, \"onpacket\")), a(t, \"close\", c(this, \"onclose\"))]\n }\n }, r.prototype.open = r.prototype.connect = function () {\n return this.connected ? this : (this.subEvents(), this.io.open(), \"open\" == this.io.readyState && this.onopen(), this)\n }, r.prototype.send = function () {\n var t = s(arguments);\n return t.unshift(\"message\"), this.emit.apply(this, t), this\n }, r.prototype.emit = function (t) {\n if (f.hasOwnProperty(t)) return h.apply(this, arguments), this;\n var e = s(arguments), n = o.EVENT;\n u(e) && (n = o.BINARY_EVENT);\n var r = {type: n, data: e};\n return \"function\" == typeof e[e.length - 1] && (p(\"emitting packet with ack id %d\", this.ids), this.acks[this.ids] = e.pop(), r.id = this.ids++), this.connected ? this.packet(r) : this.sendBuffer.push(r), this\n }, r.prototype.packet = function (t) {\n t.nsp = this.nsp, this.io.packet(t)\n }, r.prototype.onopen = function () {\n p(\"transport is open - connecting\"), \"/\" != this.nsp && this.packet({type: o.CONNECT})\n }, r.prototype.onclose = function (t) {\n p(\"close (%s)\", t), this.connected = !1, this.disconnected = !0, delete this.id, this.emit(\"disconnect\", t)\n }, r.prototype.onpacket = function (t) {\n if (t.nsp == this.nsp) switch (t.type) {\n case o.CONNECT:\n this.onconnect();\n break;\n case o.EVENT:\n this.onevent(t);\n break;\n case o.BINARY_EVENT:\n this.onevent(t);\n break;\n case o.ACK:\n this.onack(t);\n break;\n case o.BINARY_ACK:\n this.onack(t);\n break;\n case o.DISCONNECT:\n this.ondisconnect();\n break;\n case o.ERROR:\n this.emit(\"error\", t.data)\n }\n }, r.prototype.onevent = function (t) {\n var e = t.data || [];\n p(\"emitting event %j\", e), null != t.id && (p(\"attaching ack callback to event\"), e.push(this.ack(t.id))), this.connected ? h.apply(this, e) : this.receiveBuffer.push(e)\n }, r.prototype.ack = function (t) {\n var e = this, n = !1;\n return function () {\n if (!n) {\n n = !0;\n var r = s(arguments);\n p(\"sending ack %j\", r);\n var i = u(r) ? o.BINARY_ACK : o.ACK;\n e.packet({type: i, id: t, data: r})\n }\n }\n }, r.prototype.onack = function (t) {\n p(\"calling ack %s with %j\", t.id, t.data);\n var e = this.acks[t.id];\n e.apply(this, t.data), delete this.acks[t.id]\n }, r.prototype.onconnect = function () {\n this.connected = !0, this.disconnected = !1, this.emit(\"connect\"), this.emitBuffered()\n }, r.prototype.emitBuffered = function () {\n var t;\n for (t = 0; t < this.receiveBuffer.length; t++) h.apply(this, this.receiveBuffer[t]);\n for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);\n this.sendBuffer = []\n }, r.prototype.ondisconnect = function () {\n p(\"server disconnect (%s)\", this.nsp), this.destroy(), this.onclose(\"io server disconnect\")\n }, r.prototype.destroy = function () {\n if (this.subs) {\n for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();\n this.subs = null\n }\n this.io.destroy(this)\n }, r.prototype.close = r.prototype.disconnect = function () {\n return this.connected && (p(\"performing disconnect (%s)\", this.nsp), this.packet({type: o.DISCONNECT})), this.destroy(), this.connected && this.onclose(\"io client disconnect\"), this\n }\n }, {\n \"./on\": 4,\n \"component-bind\": 8,\n \"component-emitter\": 9,\n debug: 10,\n \"has-binary\": 36,\n \"socket.io-parser\": 44,\n \"to-array\": 48\n }],\n 6: [function (t, e) {\n (function (n) {\n function r(t, e) {\n var r = t, e = e || n.location;\n return null == t && (t = e.protocol + \"//\" + e.host), \"string\" == typeof t && (\"/\" == t.charAt(0) && (t = \"/\" == t.charAt(1) ? e.protocol + t : e.hostname + t), /^(https?|wss?):\\/\\//.test(t) || (i(\"protocol-less url %s\", t), t = \"undefined\" != typeof e ? e.protocol + \"//\" + t : \"https://\" + t), i(\"parse %s\", t), r = o(t)), r.port || (/^(http|ws)$/.test(r.protocol) ? r.port = \"80\" : /^(http|ws)s$/.test(r.protocol) && (r.port = \"443\")), r.path = r.path || \"/\", r.id = r.protocol + \"://\" + r.host + \":\" + r.port, r.href = r.protocol + \"://\" + r.host + (e && e.port == r.port ? \"\" : \":\" + r.port), r\n }\n\n var o = t(\"parseuri\"), i = t(\"debug\")(\"socket.io-client:url\");\n e.exports = r\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {debug: 10, parseuri: 42}],\n 7: [function (t, e) {\n function n(t) {\n t = t || {}, this.ms = t.min || 100, this.max = t.max || 1e4, this.factor = t.factor || 2, this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0\n }\n\n e.exports = n, n.prototype.duration = function () {\n var t = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var e = Math.random(), n = Math.floor(e * this.jitter * t);\n t = 0 == (1 & Math.floor(10 * e)) ? t - n : t + n\n }\n return 0 | Math.min(t, this.max)\n }, n.prototype.reset = function () {\n this.attempts = 0\n }, n.prototype.setMin = function (t) {\n this.ms = t\n }, n.prototype.setMax = function (t) {\n this.max = t\n }, n.prototype.setJitter = function (t) {\n this.jitter = t\n }\n }, {}],\n 8: [function (t, e) {\n var n = [].slice;\n e.exports = function (t, e) {\n if (\"string\" == typeof e && (e = t[e]), \"function\" != typeof e) throw new Error(\"bind() requires a function\");\n var r = n.call(arguments, 2);\n return function () {\n return e.apply(t, r.concat(n.call(arguments)))\n }\n }\n }, {}],\n 9: [function (t, e) {\n function n(t) {\n return t ? r(t) : void 0\n }\n\n function r(t) {\n for (var e in n.prototype) t[e] = n.prototype[e];\n return t\n }\n\n e.exports = n, n.prototype.on = n.prototype.addEventListener = function (t, e) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[t] = this._callbacks[t] || []).push(e), this\n }, n.prototype.once = function (t, e) {\n function n() {\n r.off(t, n), e.apply(this, arguments)\n }\n\n var r = this;\n return this._callbacks = this._callbacks || {}, n.fn = e, this.on(t, n), this\n }, n.prototype.off = n.prototype.removeListener = n.prototype.removeAllListeners = n.prototype.removeEventListener = function (t, e) {\n if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;\n var n = this._callbacks[t];\n if (!n) return this;\n if (1 == arguments.length) return delete this._callbacks[t], this;\n for (var r, o = 0; o < n.length; o++) if (r = n[o], r === e || r.fn === e) {\n n.splice(o, 1);\n break\n }\n return this\n }, n.prototype.emit = function (t) {\n this._callbacks = this._callbacks || {};\n var e = [].slice.call(arguments, 1), n = this._callbacks[t];\n if (n) {\n n = n.slice(0);\n for (var r = 0, o = n.length; o > r; ++r) n[r].apply(this, e)\n }\n return this\n }, n.prototype.listeners = function (t) {\n return this._callbacks = this._callbacks || {}, this._callbacks[t] || []\n }, n.prototype.hasListeners = function (t) {\n return !!this.listeners(t).length\n }\n }, {}],\n 10: [function (t, e) {\n function n(t) {\n return n.enabled(t) ? function (e) {\n e = r(e);\n var o = new Date, i = o - (n[t] || o);\n n[t] = o, e = t + \" \" + e + \" +\" + n.humanize(i), window.console && console.log && Function.prototype.apply.call(console.log, console, arguments)\n } : function () {\n }\n }\n\n function r(t) {\n return t instanceof Error ? t.stack || t.message : t\n }\n\n e.exports = n, n.names = [], n.skips = [], n.enable = function (t) {\n try {\n localStorage.debug = t\n } catch (e) {\n }\n for (var r = (t || \"\").split(/[\\s,]+/), o = r.length, i = 0; o > i; i++) t = r[i].replace(\"*\", \".*?\"), \"-\" === t[0] ? n.skips.push(new RegExp(\"^\" + t.substr(1) + \"$\")) : n.names.push(new RegExp(\"^\" + t + \"$\"))\n }, n.disable = function () {\n n.enable(\"\")\n }, n.humanize = function (t) {\n var e = 1e3, n = 6e4, r = 60 * n;\n return t >= r ? (t / r).toFixed(1) + \"h\" : t >= n ? (t / n).toFixed(1) + \"m\" : t >= e ? (t / e | 0) + \"s\" : t + \"ms\"\n }, n.enabled = function (t) {\n for (var e = 0, r = n.skips.length; r > e; e++) if (n.skips[e].test(t)) return !1;\n for (var e = 0, r = n.names.length; r > e; e++) if (n.names[e].test(t)) return !0;\n return !1\n };\n try {\n window.localStorage && n.enable(localStorage.debug)\n } catch (o) {\n }\n }, {}],\n 11: [function (t, e) {\n e.exports = t(\"./lib/\")\n }, {\"./lib/\": 12}],\n 12: [function (t, e) {\n e.exports = t(\"./socket\"), e.exports.parser = t(\"engine.io-parser\")\n }, {\"./socket\": 13, \"engine.io-parser\": 25}],\n 13: [function (t, e) {\n (function (n) {\n function r(t, e) {\n if (!(this instanceof r)) return new r(t, e);\n if (e = e || {}, t && \"object\" == typeof t && (e = t, t = null), t && (t = u(t), e.host = t.host, e.secure = \"https\" == t.protocol || \"wss\" == t.protocol, e.port = t.port, t.query && (e.query = t.query)), this.secure = null != e.secure ? e.secure : n.location && \"https:\" == location.protocol, e.host) {\n var o = e.host.split(\":\");\n e.hostname = o.shift(), o.length ? e.port = o.pop() : e.port || (e.port = this.secure ? \"443\" : \"80\")\n }\n this.agent = e.agent || !1, this.hostname = e.hostname || (n.location ? location.hostname : \"localhost\"), this.port = e.port || (n.location && location.port ? location.port : this.secure ? 443 : 80), this.query = e.query || {}, \"string\" == typeof this.query && (this.query = h.decode(this.query)), this.upgrade = !1 !== e.upgrade, this.path = (e.path || \"/engine.io\").replace(/\\/$/, \"\") + \"/\", this.forceJSONP = !!e.forceJSONP, this.jsonp = !1 !== e.jsonp, this.forceBase64 = !!e.forceBase64, this.enablesXDR = !!e.enablesXDR, this.timestampParam = e.timestampParam || \"t\", this.timestampRequests = e.timestampRequests, this.transports = e.transports || [\"polling\", \"websocket\"], this.readyState = \"\", this.writeBuffer = [], this.callbackBuffer = [], this.policyPort = e.policyPort || 843, this.rememberUpgrade = e.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = e.onlyBinaryUpgrades, this.pfx = e.pfx || null, this.key = e.key || null, this.passphrase = e.passphrase || null, this.cert = e.cert || null, this.ca = e.ca || null, this.ciphers = e.ciphers || null, this.rejectUnauthorized = e.rejectUnauthorized || null, this.open()\n }\n\n function o(t) {\n var e = {};\n for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);\n return e\n }\n\n var i = t(\"./transports\"), s = t(\"component-emitter\"), a = t(\"debug\")(\"engine.io-client:socket\"),\n c = t(\"indexof\"), p = t(\"engine.io-parser\"), u = t(\"parseuri\"), f = t(\"parsejson\"),\n h = t(\"parseqs\");\n e.exports = r, r.priorWebsocketSuccess = !1, s(r.prototype), r.protocol = p.protocol, r.Socket = r, r.Transport = t(\"./transport\"), r.transports = t(\"./transports\"), r.parser = t(\"engine.io-parser\"), r.prototype.createTransport = function (t) {\n a('creating transport \"%s\"', t);\n var e = o(this.query);\n e.EIO = p.protocol, e.transport = t, this.id && (e.sid = this.id);\n var n = new i[t]({\n agent: this.agent,\n hostname: this.hostname,\n port: this.port,\n secure: this.secure,\n path: this.path,\n query: e,\n forceJSONP: this.forceJSONP,\n jsonp: this.jsonp,\n forceBase64: this.forceBase64,\n enablesXDR: this.enablesXDR,\n timestampRequests: this.timestampRequests,\n timestampParam: this.timestampParam,\n policyPort: this.policyPort,\n socket: this,\n pfx: this.pfx,\n key: this.key,\n passphrase: this.passphrase,\n cert: this.cert,\n ca: this.ca,\n ciphers: this.ciphers,\n rejectUnauthorized: this.rejectUnauthorized\n });\n return n\n }, r.prototype.open = function () {\n var t;\n if (this.rememberUpgrade && r.priorWebsocketSuccess && -1 != this.transports.indexOf(\"websocket\")) t = \"websocket\"; else {\n if (0 == this.transports.length) {\n var e = this;\n return void setTimeout(function () {\n e.emit(\"error\", \"No transports available\")\n }, 0)\n }\n t = this.transports[0]\n }\n this.readyState = \"opening\";\n var t;\n try {\n t = this.createTransport(t)\n } catch (n) {\n return this.transports.shift(), void this.open()\n }\n t.open(), this.setTransport(t)\n }, r.prototype.setTransport = function (t) {\n a(\"setting transport %s\", t.name);\n var e = this;\n this.transport && (a(\"clearing existing transport %s\", this.transport.name), this.transport.removeAllListeners()), this.transport = t, t.on(\"drain\", function () {\n e.onDrain()\n }).on(\"packet\", function (t) {\n e.onPacket(t)\n }).on(\"error\", function (t) {\n e.onError(t)\n }).on(\"close\", function () {\n e.onClose(\"transport close\")\n })\n }, r.prototype.probe = function (t) {\n function e() {\n if (h.onlyBinaryUpgrades) {\n var e = !this.supportsBinary && h.transport.supportsBinary;\n f = f || e\n }\n f || (a('probe transport \"%s\" opened', t), u.send([{\n type: \"ping\",\n data: \"probe\"\n }]), u.once(\"packet\", function (e) {\n if (!f) if (\"pong\" == e.type && \"probe\" == e.data) {\n if (a('probe transport \"%s\" pong', t), h.upgrading = !0, h.emit(\"upgrading\", u), !u) return;\n r.priorWebsocketSuccess = \"websocket\" == u.name, a('pausing current transport \"%s\"', h.transport.name), h.transport.pause(function () {\n f || \"closed\" != h.readyState && (a(\"changing transport and sending upgrade packet\"), p(), h.setTransport(u), u.send([{type: \"upgrade\"}]), h.emit(\"upgrade\", u), u = null, h.upgrading = !1, h.flush())\n })\n } else {\n a('probe transport \"%s\" failed', t);\n var n = new Error(\"probe error\");\n n.transport = u.name, h.emit(\"upgradeError\", n)\n }\n }))\n }\n\n function n() {\n f || (f = !0, p(), u.close(), u = null)\n }\n\n function o(e) {\n var r = new Error(\"probe error: \" + e);\n r.transport = u.name, n(), a('probe transport \"%s\" failed because of error: %s', t, e), h.emit(\"upgradeError\", r)\n }\n\n function i() {\n o(\"transport closed\")\n }\n\n function s() {\n o(\"socket closed\")\n }\n\n function c(t) {\n u && t.name != u.name && (a('\"%s\" works - aborting \"%s\"', t.name, u.name), n())\n }\n\n function p() {\n u.removeListener(\"open\", e), u.removeListener(\"error\", o), u.removeListener(\"close\", i), h.removeListener(\"close\", s), h.removeListener(\"upgrading\", c)\n }\n\n a('probing transport \"%s\"', t);\n var u = this.createTransport(t, {probe: 1}), f = !1, h = this;\n r.priorWebsocketSuccess = !1, u.once(\"open\", e), u.once(\"error\", o), u.once(\"close\", i), this.once(\"close\", s), this.once(\"upgrading\", c), u.open()\n }, r.prototype.onOpen = function () {\n if (a(\"socket open\"), this.readyState = \"open\", r.priorWebsocketSuccess = \"websocket\" == this.transport.name, this.emit(\"open\"), this.flush(), \"open\" == this.readyState && this.upgrade && this.transport.pause) {\n a(\"starting upgrade probes\");\n for (var t = 0, e = this.upgrades.length; e > t; t++) this.probe(this.upgrades[t])\n }\n }, r.prototype.onPacket = function (t) {\n if (\"opening\" == this.readyState || \"open\" == this.readyState) switch (a('socket receive: type \"%s\", data \"%s\"', t.type, t.data), this.emit(\"packet\", t), this.emit(\"heartbeat\"), t.type) {\n case\"open\":\n this.onHandshake(f(t.data));\n break;\n case\"pong\":\n this.setPing();\n break;\n case\"error\":\n var e = new Error(\"server error\");\n e.code = t.data, this.emit(\"error\", e);\n break;\n case\"message\":\n this.emit(\"data\", t.data), this.emit(\"message\", t.data)\n } else a('packet received with socket readyState \"%s\"', this.readyState)\n }, r.prototype.onHandshake = function (t) {\n this.emit(\"handshake\", t), this.id = t.sid, this.transport.query.sid = t.sid, this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), \"closed\" != this.readyState && (this.setPing(), this.removeListener(\"heartbeat\", this.onHeartbeat), this.on(\"heartbeat\", this.onHeartbeat))\n }, r.prototype.onHeartbeat = function (t) {\n clearTimeout(this.pingTimeoutTimer);\n var e = this;\n e.pingTimeoutTimer = setTimeout(function () {\n \"closed\" != e.readyState && e.onClose(\"ping timeout\")\n }, t || e.pingInterval + e.pingTimeout)\n }, r.prototype.setPing = function () {\n var t = this;\n clearTimeout(t.pingIntervalTimer), t.pingIntervalTimer = setTimeout(function () {\n a(\"writing ping packet - expecting pong within %sms\", t.pingTimeout), t.ping(), t.onHeartbeat(t.pingTimeout)\n }, t.pingInterval)\n }, r.prototype.ping = function () {\n this.sendPacket(\"ping\")\n }, r.prototype.onDrain = function () {\n for (var t = 0; t < this.prevBufferLen; t++) this.callbackBuffer[t] && this.callbackBuffer[t]();\n this.writeBuffer.splice(0, this.prevBufferLen), this.callbackBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 == this.writeBuffer.length ? this.emit(\"drain\") : this.flush()\n }, r.prototype.flush = function () {\n \"closed\" != this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (a(\"flushing %d packets in socket\", this.writeBuffer.length), this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit(\"flush\"))\n }, r.prototype.write = r.prototype.send = function (t, e) {\n return this.sendPacket(\"message\", t, e), this\n }, r.prototype.sendPacket = function (t, e, n) {\n if (\"closing\" != this.readyState && \"closed\" != this.readyState) {\n var r = {type: t, data: e};\n this.emit(\"packetCreate\", r), this.writeBuffer.push(r), this.callbackBuffer.push(n), this.flush()\n }\n }, r.prototype.close = function () {\n function t() {\n r.onClose(\"forced close\"), a(\"socket closing - telling transport to close\"), r.transport.close()\n }\n\n function e() {\n r.removeListener(\"upgrade\", e), r.removeListener(\"upgradeError\", e), t()\n }\n\n function n() {\n r.once(\"upgrade\", e), r.once(\"upgradeError\", e)\n }\n\n if (\"opening\" == this.readyState || \"open\" == this.readyState) {\n this.readyState = \"closing\";\n var r = this;\n this.writeBuffer.length ? this.once(\"drain\", function () {\n this.upgrading ? n() : t()\n }) : this.upgrading ? n() : t()\n }\n return this\n }, r.prototype.onError = function (t) {\n a(\"socket error %j\", t), r.priorWebsocketSuccess = !1, this.emit(\"error\", t), this.onClose(\"transport error\", t)\n }, r.prototype.onClose = function (t, e) {\n if (\"opening\" == this.readyState || \"open\" == this.readyState || \"closing\" == this.readyState) {\n a('socket close with reason: \"%s\"', t);\n var n = this;\n clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), setTimeout(function () {\n n.writeBuffer = [], n.callbackBuffer = [], n.prevBufferLen = 0\n }, 0), this.transport.removeAllListeners(\"close\"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = \"closed\", this.id = null, this.emit(\"close\", t, e)\n }\n }, r.prototype.filterUpgrades = function (t) {\n for (var e = [], n = 0, r = t.length; r > n; n++) ~c(this.transports, t[n]) && e.push(t[n]);\n return e\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\n \"./transport\": 14,\n \"./transports\": 15,\n \"component-emitter\": 9,\n debug: 22,\n \"engine.io-parser\": 25,\n indexof: 40,\n parsejson: 32,\n parseqs: 33,\n parseuri: 34\n }],\n 14: [function (t, e) {\n function n(t) {\n this.path = t.path, this.hostname = t.hostname, this.port = t.port, this.secure = t.secure, this.query = t.query, this.timestampParam = t.timestampParam, this.timestampRequests = t.timestampRequests, this.readyState = \"\", this.agent = t.agent || !1, this.socket = t.socket, this.enablesXDR = t.enablesXDR, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized\n }\n\n var r = t(\"engine.io-parser\"), o = t(\"component-emitter\");\n e.exports = n, o(n.prototype), n.timestamps = 0, n.prototype.onError = function (t, e) {\n var n = new Error(t);\n return n.type = \"TransportError\", n.description = e, this.emit(\"error\", n), this\n }, n.prototype.open = function () {\n return (\"closed\" == this.readyState || \"\" == this.readyState) && (this.readyState = \"opening\", this.doOpen()), this\n }, n.prototype.close = function () {\n return (\"opening\" == this.readyState || \"open\" == this.readyState) && (this.doClose(), this.onClose()), this\n }, n.prototype.send = function (t) {\n if (\"open\" != this.readyState) throw new Error(\"Transport not open\");\n this.write(t)\n }, n.prototype.onOpen = function () {\n this.readyState = \"open\", this.writable = !0, this.emit(\"open\")\n }, n.prototype.onData = function (t) {\n var e = r.decodePacket(t, this.socket.binaryType);\n this.onPacket(e)\n }, n.prototype.onPacket = function (t) {\n this.emit(\"packet\", t)\n }, n.prototype.onClose = function () {\n this.readyState = \"closed\", this.emit(\"close\")\n }\n }, {\"component-emitter\": 9, \"engine.io-parser\": 25}],\n 15: [function (t, e, n) {\n (function (e) {\n function r(t) {\n var n, r = !1, a = !1, c = !1 !== t.jsonp;\n if (e.location) {\n var p = \"https:\" == location.protocol, u = location.port;\n u || (u = p ? 443 : 80), r = t.hostname != location.hostname || u != t.port, a = t.secure != p\n }\n if (t.xdomain = r, t.xscheme = a, n = new o(t), \"open\" in n && !t.forceJSONP) return new i(t);\n if (!c) throw new Error(\"JSONP disabled\");\n return new s(t)\n }\n\n var o = t(\"xmlhttprequest\"), i = t(\"./polling-xhr\"), s = t(\"./polling-jsonp\"), a = t(\"./websocket\");\n n.polling = r, n.websocket = a\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling-jsonp\": 16, \"./polling-xhr\": 17, \"./websocket\": 19, xmlhttprequest: 20}],\n 16: [function (t, e) {\n (function (n) {\n function r() {\n }\n\n function o(t) {\n i.call(this, t), this.query = this.query || {}, a || (n.___eio || (n.___eio = []), a = n.___eio), this.index = a.length;\n var e = this;\n a.push(function (t) {\n e.onData(t)\n }), this.query.j = this.index, n.document && n.addEventListener && n.addEventListener(\"beforeunload\", function () {\n e.script && (e.script.onerror = r)\n }, !1)\n }\n\n var i = t(\"./polling\"), s = t(\"component-inherit\");\n e.exports = o;\n var a, c = /\\n/g, p = /\\\\n/g;\n s(o, i), o.prototype.supportsBinary = !1, o.prototype.doClose = function () {\n this.script && (this.script.parentNode.removeChild(this.script), this.script = null), this.form && (this.form.parentNode.removeChild(this.form), this.form = null, this.iframe = null), i.prototype.doClose.call(this)\n }, o.prototype.doPoll = function () {\n var t = this, e = document.createElement(\"script\");\n this.script && (this.script.parentNode.removeChild(this.script), this.script = null), e.async = !0, e.src = this.uri(), e.onerror = function (e) {\n t.onError(\"jsonp poll error\", e)\n };\n var n = document.getElementsByTagName(\"script\")[0];\n n.parentNode.insertBefore(e, n), this.script = e;\n var r = \"undefined\" != typeof navigator && /gecko/i.test(navigator.userAgent);\n r && setTimeout(function () {\n var t = document.createElement(\"iframe\");\n document.body.appendChild(t), document.body.removeChild(t)\n }, 100)\n }, o.prototype.doWrite = function (t, e) {\n function n() {\n r(), e()\n }\n\n function r() {\n if (o.iframe) try {\n o.form.removeChild(o.iframe)\n } catch (t) {\n o.onError(\"jsonp polling iframe removal error\", t)\n }\n try {\n var e = '<iframe src=\"javascript:0\" name=\"' + o.iframeId + '\">';\n i = document.createElement(e)\n } catch (t) {\n i = document.createElement(\"iframe\"), i.name = o.iframeId, i.src = \"javascript:0\"\n }\n i.id = o.iframeId, o.form.appendChild(i), o.iframe = i\n }\n\n var o = this;\n if (!this.form) {\n var i, s = document.createElement(\"form\"), a = document.createElement(\"textarea\"),\n u = this.iframeId = \"eio_iframe_\" + this.index;\n s.className = \"socketio\", s.style.position = \"absolute\", s.style.top = \"-1000px\", s.style.left = \"-1000px\", s.target = u, s.method = \"POST\", s.setAttribute(\"accept-charset\", \"utf-8\"), a.name = \"d\", s.appendChild(a), document.body.appendChild(s), this.form = s, this.area = a\n }\n this.form.action = this.uri(), r(), t = t.replace(p, \"\\\\\\n\"), this.area.value = t.replace(c, \"\\\\n\");\n try {\n this.form.submit()\n } catch (f) {\n }\n this.iframe.attachEvent ? this.iframe.onreadystatechange = function () {\n \"complete\" == o.iframe.readyState && n()\n } : this.iframe.onload = n\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling\": 18, \"component-inherit\": 21}],\n 17: [function (t, e) {\n (function (n) {\n function r() {\n }\n\n function o(t) {\n if (c.call(this, t), n.location) {\n var e = \"https:\" == location.protocol, r = location.port;\n r || (r = e ? 443 : 80), this.xd = t.hostname != n.location.hostname || r != t.port, this.xs = t.secure != e\n }\n }\n\n function i(t) {\n this.method = t.method || \"GET\", this.uri = t.uri, this.xd = !!t.xd, this.xs = !!t.xs, this.async = !1 !== t.async, this.data = void 0 != t.data ? t.data : null, this.agent = t.agent, this.isBinary = t.isBinary, this.supportsBinary = t.supportsBinary, this.enablesXDR = t.enablesXDR, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized, this.create()\n }\n\n function s() {\n for (var t in i.requests) i.requests.hasOwnProperty(t) && i.requests[t].abort()\n }\n\n var a = t(\"xmlhttprequest\"), c = t(\"./polling\"), p = t(\"component-emitter\"), u = t(\"component-inherit\"),\n f = t(\"debug\")(\"engine.io-client:polling-xhr\");\n e.exports = o, e.exports.Request = i, u(o, c), o.prototype.supportsBinary = !0, o.prototype.request = function (t) {\n return t = t || {}, t.uri = this.uri(), t.xd = this.xd, t.xs = this.xs, t.agent = this.agent || !1, t.supportsBinary = this.supportsBinary, t.enablesXDR = this.enablesXDR, t.pfx = this.pfx, t.key = this.key, t.passphrase = this.passphrase, t.cert = this.cert, t.ca = this.ca, t.ciphers = this.ciphers, t.rejectUnauthorized = this.rejectUnauthorized, new i(t)\n }, o.prototype.doWrite = function (t, e) {\n var n = \"string\" != typeof t && void 0 !== t,\n r = this.request({method: \"POST\", data: t, isBinary: n}), o = this;\n r.on(\"success\", e), r.on(\"error\", function (t) {\n o.onError(\"xhr post error\", t)\n }), this.sendXhr = r\n }, o.prototype.doPoll = function () {\n f(\"xhr poll\");\n var t = this.request(), e = this;\n t.on(\"data\", function (t) {\n e.onData(t)\n }), t.on(\"error\", function (t) {\n e.onError(\"xhr poll error\", t)\n }), this.pollXhr = t\n }, p(i.prototype), i.prototype.create = function () {\n var t = {agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR};\n t.pfx = this.pfx, t.key = this.key, t.passphrase = this.passphrase, t.cert = this.cert, t.ca = this.ca, t.ciphers = this.ciphers, t.rejectUnauthorized = this.rejectUnauthorized;\n var e = this.xhr = new a(t), r = this;\n try {\n if (f(\"xhr open %s: %s\", this.method, this.uri), e.open(this.method, this.uri, this.async), this.supportsBinary && (e.responseType = \"arraybuffer\"), \"POST\" == this.method) try {\n this.isBinary ? e.setRequestHeader(\"Content-type\", \"application/octet-stream\") : e.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\")\n } catch (o) {\n }\n \"withCredentials\" in e && (e.withCredentials = !0), this.hasXDR() ? (e.onload = function () {\n r.onLoad()\n }, e.onerror = function () {\n r.onError(e.responseText)\n }) : e.onreadystatechange = function () {\n 4 == e.readyState && (200 == e.status || 1223 == e.status ? r.onLoad() : setTimeout(function () {\n r.onError(e.status)\n }, 0))\n }, f(\"xhr data %s\", this.data), e.send(this.data)\n } catch (o) {\n return void setTimeout(function () {\n r.onError(o)\n }, 0)\n }\n n.document && (this.index = i.requestsCount++, i.requests[this.index] = this)\n }, i.prototype.onSuccess = function () {\n this.emit(\"success\"), this.cleanup()\n }, i.prototype.onData = function (t) {\n this.emit(\"data\", t), this.onSuccess()\n }, i.prototype.onError = function (t) {\n this.emit(\"error\", t), this.cleanup(!0)\n }, i.prototype.cleanup = function (t) {\n if (\"undefined\" != typeof this.xhr && null !== this.xhr) {\n if (this.hasXDR() ? this.xhr.onload = this.xhr.onerror = r : this.xhr.onreadystatechange = r, t) try {\n this.xhr.abort()\n } catch (e) {\n }\n n.document && delete i.requests[this.index], this.xhr = null\n }\n }, i.prototype.onLoad = function () {\n var t;\n try {\n var e;\n try {\n e = this.xhr.getResponseHeader(\"Content-Type\").split(\";\")[0]\n } catch (n) {\n }\n t = \"application/octet-stream\" === e ? this.xhr.response : this.supportsBinary ? \"ok\" : this.xhr.responseText\n } catch (n) {\n this.onError(n)\n }\n null != t && this.onData(t)\n }, i.prototype.hasXDR = function () {\n return \"undefined\" != typeof n.XDomainRequest && !this.xs && this.enablesXDR\n }, i.prototype.abort = function () {\n this.cleanup()\n }, n.document && (i.requestsCount = 0, i.requests = {}, n.attachEvent ? n.attachEvent(\"onunload\", s) : n.addEventListener && n.addEventListener(\"beforeunload\", s, !1))\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./polling\": 18, \"component-emitter\": 9, \"component-inherit\": 21, debug: 22, xmlhttprequest: 20}],\n 18: [function (t, e) {\n function n(t) {\n var e = t && t.forceBase64;\n (!c || e) && (this.supportsBinary = !1), r.call(this, t)\n }\n\n var r = t(\"../transport\"), o = t(\"parseqs\"), i = t(\"engine.io-parser\"), s = t(\"component-inherit\"),\n a = t(\"debug\")(\"engine.io-client:polling\");\n e.exports = n;\n var c = function () {\n var e = t(\"xmlhttprequest\"), n = new e({xdomain: !1});\n return null != n.responseType\n }();\n s(n, r), n.prototype.name = \"polling\", n.prototype.doOpen = function () {\n this.poll()\n }, n.prototype.pause = function (t) {\n function e() {\n a(\"paused\"), n.readyState = \"paused\", t()\n }\n\n var n = this;\n if (this.readyState = \"pausing\", this.polling || !this.writable) {\n var r = 0;\n this.polling && (a(\"we are currently polling - waiting to pause\"), r++, this.once(\"pollComplete\", function () {\n a(\"pre-pause polling complete\"), --r || e()\n })), this.writable || (a(\"we are currently writing - waiting to pause\"), r++, this.once(\"drain\", function () {\n a(\"pre-pause writing complete\"), --r || e()\n }))\n } else e()\n }, n.prototype.poll = function () {\n a(\"polling\"), this.polling = !0, this.doPoll(), this.emit(\"poll\")\n }, n.prototype.onData = function (t) {\n var e = this;\n a(\"polling got data %s\", t);\n var n = function (t) {\n return \"opening\" == e.readyState && e.onOpen(), \"close\" == t.type ? (e.onClose(), !1) : void e.onPacket(t)\n };\n i.decodePayload(t, this.socket.binaryType, n), \"closed\" != this.readyState && (this.polling = !1, this.emit(\"pollComplete\"), \"open\" == this.readyState ? this.poll() : a('ignoring poll - transport state \"%s\"', this.readyState))\n }, n.prototype.doClose = function () {\n function t() {\n a(\"writing close packet\"), e.write([{type: \"close\"}])\n }\n\n var e = this;\n \"open\" == this.readyState ? (a(\"transport open - closing\"), t()) : (a(\"transport not open - deferring close\"), this.once(\"open\", t))\n }, n.prototype.write = function (t) {\n var e = this;\n this.writable = !1;\n var n = function () {\n e.writable = !0, e.emit(\"drain\")\n }, e = this;\n i.encodePayload(t, this.supportsBinary, function (t) {\n e.doWrite(t, n)\n })\n }, n.prototype.uri = function () {\n var t = this.query || {}, e = this.secure ? \"https\" : \"http\", n = \"\";\n return !1 !== this.timestampRequests && (t[this.timestampParam] = +new Date + \"-\" + r.timestamps++), this.supportsBinary || t.sid || (t.b64 = 1), t = o.encode(t), this.port && (\"https\" == e && 443 != this.port || \"http\" == e && 80 != this.port) && (n = \":\" + this.port), t.length && (t = \"?\" + t), e + \"://\" + this.hostname + n + this.path + t\n }\n }, {\n \"../transport\": 14,\n \"component-inherit\": 21,\n debug: 22,\n \"engine.io-parser\": 25,\n parseqs: 33,\n xmlhttprequest: 20\n }],\n 19: [function (t, e) {\n function n(t) {\n var e = t && t.forceBase64;\n e && (this.supportsBinary = !1), r.call(this, t)\n }\n\n var r = t(\"../transport\"), o = t(\"engine.io-parser\"), i = t(\"parseqs\"), s = t(\"component-inherit\"),\n a = t(\"debug\")(\"engine.io-client:websocket\"), c = t(\"ws\");\n e.exports = n, s(n, r), n.prototype.name = \"websocket\", n.prototype.supportsBinary = !0, n.prototype.doOpen = function () {\n if (this.check()) {\n var t = this.uri(), e = void 0, n = {agent: this.agent};\n n.pfx = this.pfx, n.key = this.key, n.passphrase = this.passphrase, n.cert = this.cert, n.ca = this.ca, n.ciphers = this.ciphers, n.rejectUnauthorized = this.rejectUnauthorized, this.ws = new c(t, e, n), void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.binaryType = \"arraybuffer\", this.addEventListeners()\n }\n }, n.prototype.addEventListeners = function () {\n var t = this;\n this.ws.onopen = function () {\n t.onOpen()\n }, this.ws.onclose = function () {\n t.onClose()\n }, this.ws.onmessage = function (e) {\n t.onData(e.data)\n }, this.ws.onerror = function (e) {\n t.onError(\"websocket error\", e)\n }\n }, \"undefined\" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) && (n.prototype.onData = function (t) {\n var e = this;\n setTimeout(function () {\n r.prototype.onData.call(e, t)\n }, 0)\n }), n.prototype.write = function (t) {\n function e() {\n n.writable = !0, n.emit(\"drain\")\n }\n\n var n = this;\n this.writable = !1;\n for (var r = 0, i = t.length; i > r; r++) o.encodePacket(t[r], this.supportsBinary, function (t) {\n try {\n n.ws.send(t)\n } catch (e) {\n a(\"websocket closed before onclose event\")\n }\n });\n setTimeout(e, 0)\n }, n.prototype.onClose = function () {\n r.prototype.onClose.call(this)\n }, n.prototype.doClose = function () {\n \"undefined\" != typeof this.ws && this.ws.close()\n }, n.prototype.uri = function () {\n var t = this.query || {}, e = this.secure ? \"wss\" : \"ws\", n = \"\";\n return this.port && (\"wss\" == e && 443 != this.port || \"ws\" == e && 80 != this.port) && (n = \":\" + this.port), this.timestampRequests && (t[this.timestampParam] = +new Date), this.supportsBinary || (t.b64 = 1), t = i.encode(t), t.length && (t = \"?\" + t), e + \"://\" + this.hostname + n + this.path + t\n }, n.prototype.check = function () {\n return !(!c || \"__initialize\" in c && this.name === n.prototype.name)\n }\n }, {\"../transport\": 14, \"component-inherit\": 21, debug: 22, \"engine.io-parser\": 25, parseqs: 33, ws: 35}],\n 20: [function (t, e) {\n var n = t(\"has-cors\");\n e.exports = function (t) {\n var e = t.xdomain, r = t.xscheme, o = t.enablesXDR;\n try {\n if (\"undefined\" != typeof XMLHttpRequest && (!e || n)) return new XMLHttpRequest\n } catch (i) {\n }\n try {\n if (\"undefined\" != typeof XDomainRequest && !r && o) return new XDomainRequest\n } catch (i) {\n }\n if (!e) try {\n return new ActiveXObject(\"Microsoft.XMLHTTP\")\n } catch (i) {\n }\n }\n }, {\"has-cors\": 38}],\n 21: [function (t, e) {\n e.exports = function (t, e) {\n var n = function () {\n };\n n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t\n }\n }, {}],\n 22: [function (t, e, n) {\n function r() {\n return \"WebkitAppearance\" in document.documentElement.style || window.console && (console.firebug || console.exception && console.table) || navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31\n }\n\n function o() {\n var t = arguments, e = this.useColors;\n if (t[0] = (e ? \"%c\" : \"\") + this.namespace + (e ? \" %c\" : \" \") + t[0] + (e ? \"%c \" : \" \") + \"+\" + n.humanize(this.diff), !e) return t;\n var r = \"color: \" + this.color;\n t = [t[0], r, \"color: inherit\"].concat(Array.prototype.slice.call(t, 1));\n var o = 0, i = 0;\n return t[0].replace(/%[a-z%]/g, function (t) {\n \"%%\" !== t && (o++, \"%c\" === t && (i = o))\n }), t.splice(i, 0, r), t\n }\n\n function i() {\n return \"object\" == typeof console && \"function\" == typeof console.log && Function.prototype.apply.call(console.log, console, arguments)\n }\n\n function s(t) {\n try {\n null == t ? localStorage.removeItem(\"debug\") : localStorage.debug = t\n } catch (e) {\n }\n }\n\n function a() {\n var t;\n try {\n t = localStorage.debug\n } catch (e) {\n }\n return t\n }\n\n n = e.exports = t(\"./debug\"), n.log = i, n.formatArgs = o, n.save = s, n.load = a, n.useColors = r, n.colors = [\"lightseagreen\", \"forestgreen\", \"goldenrod\", \"dodgerblue\", \"darkorchid\", \"crimson\"], n.formatters.j = function (t) {\n return JSON.stringify(t)\n }, n.enable(a())\n }, {\"./debug\": 23}],\n 23: [function (t, e, n) {\n function r() {\n return n.colors[u++ % n.colors.length]\n }\n\n function o(t) {\n function e() {\n }\n\n function o() {\n var t = o, e = +new Date, i = e - (p || e);\n t.diff = i, t.prev = p, t.curr = e, p = e, null == t.useColors && (t.useColors = n.useColors()), null == t.color && t.useColors && (t.color = r());\n var s = Array.prototype.slice.call(arguments);\n s[0] = n.coerce(s[0]), \"string\" != typeof s[0] && (s = [\"%o\"].concat(s));\n var a = 0;\n s[0] = s[0].replace(/%([a-z%])/g, function (e, r) {\n if (\"%%\" === e) return e;\n a++;\n var o = n.formatters[r];\n if (\"function\" == typeof o) {\n var i = s[a];\n e = o.call(t, i), s.splice(a, 1), a--\n }\n return e\n }), \"function\" == typeof n.formatArgs && (s = n.formatArgs.apply(t, s));\n var c = o.log || n.log || console.log.bind(console);\n c.apply(t, s)\n }\n\n e.enabled = !1, o.enabled = !0;\n var i = n.enabled(t) ? o : e;\n return i.namespace = t, i\n }\n\n function i(t) {\n n.save(t);\n for (var e = (t || \"\").split(/[\\s,]+/), r = e.length, o = 0; r > o; o++) e[o] && (t = e[o].replace(/\\*/g, \".*?\"), \"-\" === t[0] ? n.skips.push(new RegExp(\"^\" + t.substr(1) + \"$\")) : n.names.push(new RegExp(\"^\" + t + \"$\")))\n }\n\n function s() {\n n.enable(\"\")\n }\n\n function a(t) {\n var e, r;\n for (e = 0, r = n.skips.length; r > e; e++) if (n.skips[e].test(t)) return !1;\n for (e = 0, r = n.names.length; r > e; e++) if (n.names[e].test(t)) return !0;\n return !1\n }\n\n function c(t) {\n return t instanceof Error ? t.stack || t.message : t\n }\n\n n = e.exports = o, n.coerce = c, n.disable = s, n.enable = i, n.enabled = a, n.humanize = t(\"ms\"), n.names = [], n.skips = [], n.formatters = {};\n var p, u = 0\n }, {ms: 24}],\n 24: [function (t, e) {\n function n(t) {\n var e = /^((?:\\d+)?\\.?\\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(t);\n if (e) {\n var n = parseFloat(e[1]), r = (e[2] || \"ms\").toLowerCase();\n switch (r) {\n case\"years\":\n case\"year\":\n case\"y\":\n return n * u;\n case\"days\":\n case\"day\":\n case\"d\":\n return n * p;\n case\"hours\":\n case\"hour\":\n case\"h\":\n return n * c;\n case\"minutes\":\n case\"minute\":\n case\"m\":\n return n * a;\n case\"seconds\":\n case\"second\":\n case\"s\":\n return n * s;\n case\"ms\":\n return n\n }\n }\n }\n\n function r(t) {\n return t >= p ? Math.round(t / p) + \"d\" : t >= c ? Math.round(t / c) + \"h\" : t >= a ? Math.round(t / a) + \"m\" : t >= s ? Math.round(t / s) + \"s\" : t + \"ms\"\n }\n\n function o(t) {\n return i(t, p, \"day\") || i(t, c, \"hour\") || i(t, a, \"minute\") || i(t, s, \"second\") || t + \" ms\"\n }\n\n function i(t, e, n) {\n return e > t ? void 0 : 1.5 * e > t ? Math.floor(t / e) + \" \" + n : Math.ceil(t / e) + \" \" + n + \"s\"\n }\n\n var s = 1e3, a = 60 * s, c = 60 * a, p = 24 * c, u = 365.25 * p;\n e.exports = function (t, e) {\n return e = e || {}, \"string\" == typeof t ? n(t) : e.long ? o(t) : r(t)\n }\n }, {}],\n 25: [function (t, e, n) {\n (function (e) {\n function r(t, e) {\n var r = \"b\" + n.packets[t.type] + t.data.data;\n return e(r)\n }\n\n function o(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n var o = t.data, i = new Uint8Array(o), s = new Uint8Array(1 + o.byteLength);\n s[0] = m[t.type];\n for (var a = 0; a < i.length; a++) s[a + 1] = i[a];\n return r(s.buffer)\n }\n\n function i(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n var o = new FileReader;\n return o.onload = function () {\n t.data = o.result, n.encodePacket(t, e, !0, r)\n }, o.readAsArrayBuffer(t.data)\n }\n\n function s(t, e, r) {\n if (!e) return n.encodeBase64Packet(t, r);\n if (g) return i(t, e, r);\n var o = new Uint8Array(1);\n o[0] = m[t.type];\n var s = new w([o.buffer, t.data]);\n return r(s)\n }\n\n function a(t, e, n) {\n for (var r = new Array(t.length), o = h(t.length, n), i = function (t, n, o) {\n e(n, function (e, n) {\n r[t] = n, o(e, r)\n })\n }, s = 0; s < t.length; s++) i(s, t[s], o)\n }\n\n var c = t(\"./keys\"), p = t(\"has-binary\"), u = t(\"arraybuffer.slice\"), f = t(\"base64-arraybuffer\"),\n h = t(\"after\"), l = t(\"utf8\"), d = navigator.userAgent.match(/Android/i),\n y = /PhantomJS/i.test(navigator.userAgent), g = d || y;\n n.protocol = 3;\n var m = n.packets = {open: 0, close: 1, ping: 2, pong: 3, message: 4, upgrade: 5, noop: 6}, v = c(m),\n b = {type: \"error\", data: \"parser error\"}, w = t(\"blob\");\n n.encodePacket = function (t, n, i, a) {\n \"function\" == typeof n && (a = n, n = !1), \"function\" == typeof i && (a = i, i = null);\n var c = void 0 === t.data ? void 0 : t.data.buffer || t.data;\n if (e.ArrayBuffer && c instanceof ArrayBuffer) return o(t, n, a);\n if (w && c instanceof e.Blob) return s(t, n, a);\n if (c && c.base64) return r(t, a);\n var p = m[t.type];\n return void 0 !== t.data && (p += i ? l.encode(String(t.data)) : String(t.data)), a(\"\" + p)\n }, n.encodeBase64Packet = function (t, r) {\n var o = \"b\" + n.packets[t.type];\n if (w && t.data instanceof w) {\n var i = new FileReader;\n return i.onload = function () {\n var t = i.result.split(\",\")[1];\n r(o + t)\n }, i.readAsDataURL(t.data)\n }\n var s;\n try {\n s = String.fromCharCode.apply(null, new Uint8Array(t.data))\n } catch (a) {\n for (var c = new Uint8Array(t.data), p = new Array(c.length), u = 0; u < c.length; u++) p[u] = c[u];\n s = String.fromCharCode.apply(null, p)\n }\n return o += e.btoa(s), r(o)\n }, n.decodePacket = function (t, e, r) {\n if (\"string\" == typeof t || void 0 === t) {\n if (\"b\" == t.charAt(0)) return n.decodeBase64Packet(t.substr(1), e);\n if (r) try {\n t = l.decode(t)\n } catch (o) {\n return b\n }\n var i = t.charAt(0);\n return Number(i) == i && v[i] ? t.length > 1 ? {\n type: v[i],\n data: t.substring(1)\n } : {type: v[i]} : b\n }\n var s = new Uint8Array(t), i = s[0], a = u(t, 1);\n return w && \"blob\" === e && (a = new w([a])), {type: v[i], data: a}\n }, n.decodeBase64Packet = function (t, n) {\n var r = v[t.charAt(0)];\n if (!e.ArrayBuffer) return {type: r, data: {base64: !0, data: t.substr(1)}};\n var o = f.decode(t.substr(1));\n return \"blob\" === n && w && (o = new w([o])), {type: r, data: o}\n }, n.encodePayload = function (t, e, r) {\n function o(t) {\n return t.length + \":\" + t\n }\n\n function i(t, r) {\n n.encodePacket(t, s ? e : !1, !0, function (t) {\n r(null, o(t))\n })\n }\n\n \"function\" == typeof e && (r = e, e = null);\n var s = p(t);\n return e && s ? w && !g ? n.encodePayloadAsBlob(t, r) : n.encodePayloadAsArrayBuffer(t, r) : t.length ? void a(t, i, function (t, e) {\n return r(e.join(\"\"))\n }) : r(\"0:\")\n }, n.decodePayload = function (t, e, r) {\n if (\"string\" != typeof t) return n.decodePayloadAsBinary(t, e, r);\n \"function\" == typeof e && (r = e, e = null);\n var o;\n if (\"\" == t) return r(b, 0, 1);\n for (var i, s, a = \"\", c = 0, p = t.length; p > c; c++) {\n var u = t.charAt(c);\n if (\":\" != u) a += u; else {\n if (\"\" == a || a != (i = Number(a))) return r(b, 0, 1);\n if (s = t.substr(c + 1, i), a != s.length) return r(b, 0, 1);\n if (s.length) {\n if (o = n.decodePacket(s, e, !0), b.type == o.type && b.data == o.data) return r(b, 0, 1);\n var f = r(o, c + i, p);\n if (!1 === f) return\n }\n c += i, a = \"\"\n }\n }\n return \"\" != a ? r(b, 0, 1) : void 0\n }, n.encodePayloadAsArrayBuffer = function (t, e) {\n function r(t, e) {\n n.encodePacket(t, !0, !0, function (t) {\n return e(null, t)\n })\n }\n\n return t.length ? void a(t, r, function (t, n) {\n var r = n.reduce(function (t, e) {\n var n;\n return n = \"string\" == typeof e ? e.length : e.byteLength, t + n.toString().length + n + 2\n }, 0), o = new Uint8Array(r), i = 0;\n return n.forEach(function (t) {\n var e = \"string\" == typeof t, n = t;\n if (e) {\n for (var r = new Uint8Array(t.length), s = 0; s < t.length; s++) r[s] = t.charCodeAt(s);\n n = r.buffer\n }\n o[i++] = e ? 0 : 1;\n for (var a = n.byteLength.toString(), s = 0; s < a.length; s++) o[i++] = parseInt(a[s]);\n o[i++] = 255;\n for (var r = new Uint8Array(n), s = 0; s < r.length; s++) o[i++] = r[s]\n }), e(o.buffer)\n }) : e(new ArrayBuffer(0))\n }, n.encodePayloadAsBlob = function (t, e) {\n function r(t, e) {\n n.encodePacket(t, !0, !0, function (t) {\n var n = new Uint8Array(1);\n if (n[0] = 1, \"string\" == typeof t) {\n for (var r = new Uint8Array(t.length), o = 0; o < t.length; o++) r[o] = t.charCodeAt(o);\n t = r.buffer, n[0] = 0\n }\n for (var i = t instanceof ArrayBuffer ? t.byteLength : t.size, s = i.toString(), a = new Uint8Array(s.length + 1), o = 0; o < s.length; o++) a[o] = parseInt(s[o]);\n if (a[s.length] = 255, w) {\n var c = new w([n.buffer, a.buffer, t]);\n e(null, c)\n }\n })\n }\n\n a(t, r, function (t, n) {\n return e(new w(n))\n })\n }, n.decodePayloadAsBinary = function (t, e, r) {\n \"function\" == typeof e && (r = e, e = null);\n for (var o = t, i = [], s = !1; o.byteLength > 0;) {\n for (var a = new Uint8Array(o), c = 0 === a[0], p = \"\", f = 1; 255 != a[f]; f++) {\n if (p.length > 310) {\n s = !0;\n break\n }\n p += a[f]\n }\n if (s) return r(b, 0, 1);\n o = u(o, 2 + p.length), p = parseInt(p);\n var h = u(o, 0, p);\n if (c) try {\n h = String.fromCharCode.apply(null, new Uint8Array(h))\n } catch (l) {\n var d = new Uint8Array(h);\n h = \"\";\n for (var f = 0; f < d.length; f++) h += String.fromCharCode(d[f])\n }\n i.push(h), o = u(o, p)\n }\n var y = i.length;\n i.forEach(function (t, o) {\n r(n.decodePacket(t, e, !0), o, y)\n })\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\n \"./keys\": 26,\n after: 27,\n \"arraybuffer.slice\": 28,\n \"base64-arraybuffer\": 29,\n blob: 30,\n \"has-binary\": 36,\n utf8: 31\n }],\n 26: [function (t, e) {\n e.exports = Object.keys || function (t) {\n var e = [], n = Object.prototype.hasOwnProperty;\n for (var r in t) n.call(t, r) && e.push(r);\n return e\n }\n }, {}],\n 27: [function (t, e) {\n function n(t, e, n) {\n function o(t, r) {\n if (o.count <= 0) throw new Error(\"after called too many times\");\n --o.count, t ? (i = !0, e(t), e = n) : 0 !== o.count || i || e(null, r)\n }\n\n var i = !1;\n return n = n || r, o.count = t, 0 === t ? e() : o\n }\n\n function r() {\n }\n\n e.exports = n\n }, {}],\n 28: [function (t, e) {\n e.exports = function (t, e, n) {\n var r = t.byteLength;\n if (e = e || 0, n = n || r, t.slice) return t.slice(e, n);\n if (0 > e && (e += r), 0 > n && (n += r), n > r && (n = r), e >= r || e >= n || 0 === r) return new ArrayBuffer(0);\n for (var o = new Uint8Array(t), i = new Uint8Array(n - e), s = e, a = 0; n > s; s++, a++) i[a] = o[s];\n return i.buffer\n }\n }, {}],\n 29: [function (t, e, n) {\n !function (t) {\n \"use strict\";\n n.encode = function (e) {\n var n, r = new Uint8Array(e), o = r.length, i = \"\";\n for (n = 0; o > n; n += 3) i += t[r[n] >> 2], i += t[(3 & r[n]) << 4 | r[n + 1] >> 4], i += t[(15 & r[n + 1]) << 2 | r[n + 2] >> 6], i += t[63 & r[n + 2]];\n return o % 3 === 2 ? i = i.substring(0, i.length - 1) + \"=\" : o % 3 === 1 && (i = i.substring(0, i.length - 2) + \"==\"), i\n }, n.decode = function (e) {\n var n, r, o, i, s, a = .75 * e.length, c = e.length, p = 0;\n \"=\" === e[e.length - 1] && (a--, \"=\" === e[e.length - 2] && a--);\n var u = new ArrayBuffer(a), f = new Uint8Array(u);\n for (n = 0; c > n; n += 4) r = t.indexOf(e[n]), o = t.indexOf(e[n + 1]), i = t.indexOf(e[n + 2]), s = t.indexOf(e[n + 3]), f[p++] = r << 2 | o >> 4, f[p++] = (15 & o) << 4 | i >> 2, f[p++] = (3 & i) << 6 | 63 & s;\n return u\n }\n }(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\")\n }, {}],\n 30: [function (t, e) {\n (function (t) {\n function n(t) {\n for (var e = 0; e < t.length; e++) {\n var n = t[e];\n if (n.buffer instanceof ArrayBuffer) {\n var r = n.buffer;\n if (n.byteLength !== r.byteLength) {\n var o = new Uint8Array(n.byteLength);\n o.set(new Uint8Array(r, n.byteOffset, n.byteLength)), r = o.buffer\n }\n t[e] = r\n }\n }\n }\n\n function r(t, e) {\n e = e || {};\n var r = new i;\n n(t);\n for (var o = 0; o < t.length; o++) r.append(t[o]);\n return e.type ? r.getBlob(e.type) : r.getBlob()\n }\n\n function o(t, e) {\n return n(t), new Blob(t, e || {})\n }\n\n var i = t.BlobBuilder || t.WebKitBlobBuilder || t.MSBlobBuilder || t.MozBlobBuilder, s = function () {\n try {\n var t = new Blob([\"hi\"]);\n return 2 === t.size\n } catch (e) {\n return !1\n }\n }(), a = s && function () {\n try {\n var t = new Blob([new Uint8Array([1, 2])]);\n return 2 === t.size\n } catch (e) {\n return !1\n }\n }(), c = i && i.prototype.append && i.prototype.getBlob;\n e.exports = function () {\n return s ? a ? t.Blob : o : c ? r : void 0\n }()\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 31: [function (e, n, r) {\n (function (e) {\n !function (o) {\n function i(t) {\n for (var e, n, r = [], o = 0, i = t.length; i > o;) e = t.charCodeAt(o++), e >= 55296 && 56319 >= e && i > o ? (n = t.charCodeAt(o++), 56320 == (64512 & n) ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) : (r.push(e), o--)) : r.push(e);\n return r\n }\n\n function s(t) {\n for (var e, n = t.length, r = -1, o = \"\"; ++r < n;) e = t[r], e > 65535 && (e -= 65536, o += w(e >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), o += w(e);\n return o\n }\n\n function a(t) {\n if (t >= 55296 && 57343 >= t) throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\")\n }\n\n function c(t, e) {\n return w(t >> e & 63 | 128)\n }\n\n function p(t) {\n if (0 == (4294967168 & t)) return w(t);\n var e = \"\";\n return 0 == (4294965248 & t) ? e = w(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (a(t), e = w(t >> 12 & 15 | 224), e += c(t, 6)) : 0 == (4292870144 & t) && (e = w(t >> 18 & 7 | 240), e += c(t, 12), e += c(t, 6)), e += w(63 & t | 128)\n }\n\n function u(t) {\n for (var e, n = i(t), r = n.length, o = -1, s = \"\"; ++o < r;) e = n[o], s += p(e);\n return s\n }\n\n function f() {\n if (b >= v) throw Error(\"Invalid byte index\");\n var t = 255 & m[b];\n if (b++, 128 == (192 & t)) return 63 & t;\n throw Error(\"Invalid continuation byte\")\n }\n\n function h() {\n var t, e, n, r, o;\n if (b > v) throw Error(\"Invalid byte index\");\n if (b == v) return !1;\n if (t = 255 & m[b], b++, 0 == (128 & t)) return t;\n if (192 == (224 & t)) {\n var e = f();\n if (o = (31 & t) << 6 | e, o >= 128) return o;\n throw Error(\"Invalid continuation byte\")\n }\n if (224 == (240 & t)) {\n if (e = f(), n = f(), o = (15 & t) << 12 | e << 6 | n, o >= 2048) return a(o), o;\n throw Error(\"Invalid continuation byte\")\n }\n if (240 == (248 & t) && (e = f(), n = f(), r = f(), o = (15 & t) << 18 | e << 12 | n << 6 | r, o >= 65536 && 1114111 >= o)) return o;\n throw Error(\"Invalid UTF-8 detected\")\n }\n\n function l(t) {\n m = i(t), v = m.length, b = 0;\n for (var e, n = []; (e = h()) !== !1;) n.push(e);\n return s(n)\n }\n\n var d = \"object\" == typeof r && r, y = \"object\" == typeof n && n && n.exports == d && n,\n g = \"object\" == typeof e && e;\n (g.global === g || g.window === g) && (o = g);\n var m, v, b, w = String.fromCharCode, k = {version: \"2.0.0\", encode: u, decode: l};\n if (\"function\" == typeof t && \"object\" == typeof t.amd && t.amd) t(function () {\n return k\n }); else if (d && !d.nodeType) if (y) y.exports = k; else {\n var x = {}, A = x.hasOwnProperty;\n for (var B in k) A.call(k, B) && (d[B] = k[B])\n } else o.utf8 = k\n }(this)\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 32: [function (t, e) {\n (function (t) {\n var n = /^[\\],:{}\\s]*$/, r = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\n o = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, i = /(?:^|:|,)(?:\\s*\\[)+/g,\n s = /^\\s+/, a = /\\s+$/;\n e.exports = function (e) {\n return \"string\" == typeof e && e ? (e = e.replace(s, \"\").replace(a, \"\"), t.JSON && JSON.parse ? JSON.parse(e) : n.test(e.replace(r, \"@\").replace(o, \"]\").replace(i, \"\")) ? new Function(\"return \" + e)() : void 0) : null\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 33: [function (t, e, n) {\n n.encode = function (t) {\n var e = \"\";\n for (var n in t) t.hasOwnProperty(n) && (e.length && (e += \"&\"), e += encodeURIComponent(n) + \"=\" + encodeURIComponent(t[n]));\n return e\n }, n.decode = function (t) {\n for (var e = {}, n = t.split(\"&\"), r = 0, o = n.length; o > r; r++) {\n var i = n[r].split(\"=\");\n e[decodeURIComponent(i[0])] = decodeURIComponent(i[1])\n }\n return e\n }\n }, {}],\n 34: [function (t, e) {\n var n = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n r = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n e.exports = function (t) {\n var e = t, o = t.indexOf(\"[\"), i = t.indexOf(\"]\");\n -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, \";\") + t.substring(i, t.length));\n for (var s = n.exec(t || \"\"), a = {}, c = 14; c--;) a[r[c]] = s[c] || \"\";\n return -1 != o && -1 != i && (a.source = e, a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, \":\"), a.authority = a.authority.replace(\"[\", \"\").replace(\"]\", \"\").replace(/;/g, \":\"), a.ipv6uri = !0), a\n }\n }, {}],\n 35: [function (t, e) {\n function n(t, e) {\n var n;\n return n = e ? new o(t, e) : new o(t)\n }\n\n var r = function () {\n return self\n }(), o = r.WebSocket || r.MozWebSocket;\n e.exports = o ? n : null, o && (n.prototype = o.prototype)\n }, {}],\n 36: [function (t, e) {\n (function (n) {\n function r(t) {\n function e(t) {\n if (!t) return !1;\n if (n.Buffer && n.Buffer.isBuffer(t) || n.ArrayBuffer && t instanceof ArrayBuffer || n.Blob && t instanceof Blob || n.File && t instanceof File) return !0;\n if (o(t)) {\n for (var r = 0; r < t.length; r++) if (e(t[r])) return !0\n } else if (t && \"object\" == typeof t) {\n t.toJSON && (t = t.toJSON());\n for (var i in t) if (Object.prototype.hasOwnProperty.call(t, i) && e(t[i])) return !0\n }\n return !1\n }\n\n return e(t)\n }\n\n var o = t(\"isarray\");\n e.exports = r\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {isarray: 37}],\n 37: [function (t, e) {\n e.exports = Array.isArray || function (t) {\n return \"[object Array]\" == Object.prototype.toString.call(t)\n }\n }, {}],\n 38: [function (t, e) {\n var n = t(\"global\");\n try {\n e.exports = \"XMLHttpRequest\" in n && \"withCredentials\" in new n.XMLHttpRequest\n } catch (r) {\n e.exports = !1\n }\n }, {global: 39}],\n 39: [function (t, e) {\n e.exports = function () {\n return this\n }()\n }, {}],\n 40: [function (t, e) {\n var n = [].indexOf;\n e.exports = function (t, e) {\n if (n) return t.indexOf(e);\n for (var r = 0; r < t.length; ++r) if (t[r] === e) return r;\n return -1\n }\n }, {}],\n 41: [function (t, e, n) {\n var r = Object.prototype.hasOwnProperty;\n n.keys = Object.keys || function (t) {\n var e = [];\n for (var n in t) r.call(t, n) && e.push(n);\n return e\n }, n.values = function (t) {\n var e = [];\n for (var n in t) r.call(t, n) && e.push(t[n]);\n return e\n }, n.merge = function (t, e) {\n for (var n in e) r.call(e, n) && (t[n] = e[n]);\n return t\n }, n.length = function (t) {\n return n.keys(t).length\n }, n.isEmpty = function (t) {\n return 0 == n.length(t)\n }\n }, {}],\n 42: [function (t, e) {\n var n = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n r = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n e.exports = function (t) {\n for (var e = n.exec(t || \"\"), o = {}, i = 14; i--;) o[r[i]] = e[i] || \"\";\n return o\n }\n }, {}],\n 43: [function (t, e, n) {\n (function (e) {\n var r = t(\"isarray\"), o = t(\"./is-buffer\");\n n.deconstructPacket = function (t) {\n function e(t) {\n if (!t) return t;\n if (o(t)) {\n var i = {_placeholder: !0, num: n.length};\n return n.push(t), i\n }\n if (r(t)) {\n for (var s = new Array(t.length), a = 0; a < t.length; a++) s[a] = e(t[a]);\n return s\n }\n if (\"object\" == typeof t && !(t instanceof Date)) {\n var s = {};\n for (var c in t) s[c] = e(t[c]);\n return s\n }\n return t\n }\n\n var n = [], i = t.data, s = t;\n return s.data = e(i), s.attachments = n.length, {packet: s, buffers: n}\n }, n.reconstructPacket = function (t, e) {\n function n(t) {\n if (t && t._placeholder) {\n var o = e[t.num];\n return o\n }\n if (r(t)) {\n for (var i = 0; i < t.length; i++) t[i] = n(t[i]);\n return t\n }\n if (t && \"object\" == typeof t) {\n for (var s in t) t[s] = n(t[s]);\n return t\n }\n return t\n }\n\n return t.data = n(t.data), t.attachments = void 0, t\n }, n.removeBlobs = function (t, n) {\n function i(t, c, p) {\n if (!t) return t;\n if (e.Blob && t instanceof Blob || e.File && t instanceof File) {\n s++;\n var u = new FileReader;\n u.onload = function () {\n p ? p[c] = this.result : a = this.result, --s || n(a)\n }, u.readAsArrayBuffer(t)\n } else if (r(t)) for (var f = 0; f < t.length; f++) i(t[f], f, t); else if (t && \"object\" == typeof t && !o(t)) for (var h in t) i(t[h], h, t)\n }\n\n var s = 0, a = t;\n i(a), s || n(a)\n }\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {\"./is-buffer\": 45, isarray: 46}],\n 44: [function (t, e, n) {\n function r() {\n }\n\n function o(t) {\n var e = \"\", r = !1;\n return e += t.type, (n.BINARY_EVENT == t.type || n.BINARY_ACK == t.type) && (e += t.attachments, e += \"-\"), t.nsp && \"/\" != t.nsp && (r = !0, e += t.nsp), null != t.id && (r && (e += \",\", r = !1), e += t.id), null != t.data && (r && (e += \",\"), e += f.stringify(t.data)), u(\"encoded %j as %s\", t, e), e\n }\n\n function i(t, e) {\n function n(t) {\n var n = l.deconstructPacket(t), r = o(n.packet), i = n.buffers;\n i.unshift(r), e(i)\n }\n\n l.removeBlobs(t, n)\n }\n\n function s() {\n this.reconstructor = null\n }\n\n function a(t) {\n var e = {}, r = 0;\n if (e.type = Number(t.charAt(0)), null == n.types[e.type]) return p();\n if (n.BINARY_EVENT == e.type || n.BINARY_ACK == e.type) {\n for (var o = \"\"; \"-\" != t.charAt(++r) && (o += t.charAt(r), r != t.length);) ;\n if (o != Number(o) || \"-\" != t.charAt(r)) throw new Error(\"Illegal attachments\");\n e.attachments = Number(o)\n }\n if (\"/\" == t.charAt(r + 1)) for (e.nsp = \"\"; ++r;) {\n var i = t.charAt(r);\n if (\",\" == i) break;\n if (e.nsp += i, r == t.length) break\n } else e.nsp = \"/\";\n var s = t.charAt(r + 1);\n if (\"\" !== s && Number(s) == s) {\n for (e.id = \"\"; ++r;) {\n var i = t.charAt(r);\n if (null == i || Number(i) != i) {\n --r;\n break\n }\n if (e.id += t.charAt(r), r == t.length) break\n }\n e.id = Number(e.id)\n }\n if (t.charAt(++r)) try {\n e.data = f.parse(t.substr(r))\n } catch (a) {\n return p()\n }\n return u(\"decoded %s as %j\", t, e), e\n }\n\n function c(t) {\n this.reconPack = t, this.buffers = []\n }\n\n function p() {\n return {type: n.ERROR, data: \"parser error\"}\n }\n\n var u = t(\"debug\")(\"socket.io-parser\"), f = t(\"json3\"), h = (t(\"isarray\"), t(\"component-emitter\")),\n l = t(\"./binary\"), d = t(\"./is-buffer\");\n n.protocol = 4, n.types = [\"CONNECT\", \"DISCONNECT\", \"EVENT\", \"BINARY_EVENT\", \"ACK\", \"BINARY_ACK\", \"ERROR\"], n.CONNECT = 0, n.DISCONNECT = 1, n.EVENT = 2, n.ACK = 3, n.ERROR = 4, n.BINARY_EVENT = 5, n.BINARY_ACK = 6, n.Encoder = r, n.Decoder = s, r.prototype.encode = function (t, e) {\n if (u(\"encoding packet %j\", t), n.BINARY_EVENT == t.type || n.BINARY_ACK == t.type) i(t, e); else {\n var r = o(t);\n e([r])\n }\n }, h(s.prototype), s.prototype.add = function (t) {\n var e;\n if (\"string\" == typeof t) e = a(t), n.BINARY_EVENT == e.type || n.BINARY_ACK == e.type ? (this.reconstructor = new c(e), 0 === this.reconstructor.reconPack.attachments && this.emit(\"decoded\", e)) : this.emit(\"decoded\", e); else {\n if (!d(t) && !t.base64) throw new Error(\"Unknown type: \" + t);\n if (!this.reconstructor) throw new Error(\"got binary data when not reconstructing a packet\");\n e = this.reconstructor.takeBinaryData(t), e && (this.reconstructor = null, this.emit(\"decoded\", e))\n }\n }, s.prototype.destroy = function () {\n this.reconstructor && this.reconstructor.finishedReconstruction()\n }, c.prototype.takeBinaryData = function (t) {\n if (this.buffers.push(t), this.buffers.length == this.reconPack.attachments) {\n var e = l.reconstructPacket(this.reconPack, this.buffers);\n return this.finishedReconstruction(), e\n }\n return null\n }, c.prototype.finishedReconstruction = function () {\n this.reconPack = null, this.buffers = []\n }\n }, {\"./binary\": 43, \"./is-buffer\": 45, \"component-emitter\": 9, debug: 10, isarray: 46, json3: 47}],\n 45: [function (t, e) {\n (function (t) {\n function n(e) {\n return t.Buffer && t.Buffer.isBuffer(e) || t.ArrayBuffer && e instanceof ArrayBuffer\n }\n\n e.exports = n\n }).call(this, \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {})\n }, {}],\n 46: [function (t, e) {\n e.exports = t(37)\n }, {}],\n 47: [function (e, n, r) {\n !function (e) {\n function n(t) {\n if (n[t] !== s) return n[t];\n var e;\n if (\"bug-string-char-index\" == t) e = \"a\" != \"a\"[0]; else if (\"json\" == t) e = n(\"json-stringify\") && n(\"json-parse\"); else {\n var r, o = '{\"a\":[1,true,false,null,\"\\\\u0000\\\\b\\\\n\\\\f\\\\r\\\\t\"]}';\n if (\"json-stringify\" == t) {\n var i = u.stringify, c = \"function\" == typeof i && f;\n if (c) {\n (r = function () {\n return 1\n }).toJSON = r;\n try {\n c = \"0\" === i(0) && \"0\" === i(new Number) && '\"\"' == i(new String) && i(a) === s && i(s) === s && i() === s && \"1\" === i(r) && \"[1]\" == i([r]) && \"[null]\" == i([s]) && \"null\" == i(null) && \"[null,null,null]\" == i([s, a, null]) && i({a: [r, !0, !1, null, \"\\x00\\b\\n\\f\\r\t\"]}) == o && \"1\" === i(null, r) && \"[\\n 1,\\n 2\\n]\" == i([1, 2], null, 1) && '\"-271821-04-20T00:00:00.000Z\"' == i(new Date(-864e13)) && '\"+275760-09-13T00:00:00.000Z\"' == i(new Date(864e13)) && '\"-000001-01-01T00:00:00.000Z\"' == i(new Date(-621987552e5)) && '\"1969-12-31T23:59:59.999Z\"' == i(new Date(-1))\n } catch (p) {\n c = !1\n }\n }\n e = c\n }\n if (\"json-parse\" == t) {\n var h = u.parse;\n if (\"function\" == typeof h) try {\n if (0 === h(\"0\") && !h(!1)) {\n r = h(o);\n var l = 5 == r.a.length && 1 === r.a[0];\n if (l) {\n try {\n l = !h('\"\t\"')\n } catch (p) {\n }\n if (l) try {\n l = 1 !== h(\"01\")\n } catch (p) {\n }\n if (l) try {\n l = 1 !== h(\"1.\")\n } catch (p) {\n }\n }\n }\n } catch (p) {\n l = !1\n }\n e = l\n }\n }\n return n[t] = !!e\n }\n\n var o, i, s, a = {}.toString, c = \"function\" == typeof t && t.amd, p = \"object\" == typeof JSON && JSON,\n u = \"object\" == typeof r && r && !r.nodeType && r;\n u && p ? (u.stringify = p.stringify, u.parse = p.parse) : u = e.JSON = p || {};\n var f = new Date(-0xc782b5b800cec);\n try {\n f = -109252 == f.getUTCFullYear() && 0 === f.getUTCMonth() && 1 === f.getUTCDate() && 10 == f.getUTCHours() && 37 == f.getUTCMinutes() && 6 == f.getUTCSeconds() && 708 == f.getUTCMilliseconds()\n } catch (h) {\n }\n if (!n(\"json\")) {\n var l = \"[object Function]\", d = \"[object Date]\", y = \"[object Number]\", g = \"[object String]\",\n m = \"[object Array]\", v = \"[object Boolean]\", b = n(\"bug-string-char-index\");\n if (!f) var w = Math.floor, k = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n x = function (t, e) {\n return k[e] + 365 * (t - 1970) + w((t - 1969 + (e = +(e > 1))) / 4) - w((t - 1901 + e) / 100) + w((t - 1601 + e) / 400)\n };\n (o = {}.hasOwnProperty) || (o = function (t) {\n var e, n = {};\n return (n.__proto__ = null, n.__proto__ = {toString: 1}, n).toString != a ? o = function (t) {\n var e = this.__proto__, n = t in (this.__proto__ = null, this);\n return this.__proto__ = e, n\n } : (e = n.constructor, o = function (t) {\n var n = (this.constructor || e).prototype;\n return t in this && !(t in n && this[t] === n[t])\n }), n = null, o.call(this, t)\n });\n var A = {\"boolean\": 1, number: 1, string: 1, undefined: 1}, B = function (t, e) {\n var n = typeof t[e];\n return \"object\" == n ? !!t[e] : !A[n]\n };\n if (i = function (t, e) {\n var n, r, s, c = 0;\n (n = function () {\n this.valueOf = 0\n }).prototype.valueOf = 0, r = new n;\n for (s in r) o.call(r, s) && c++;\n return n = r = null, c ? i = 2 == c ? function (t, e) {\n var n, r = {}, i = a.call(t) == l;\n for (n in t) i && \"prototype\" == n || o.call(r, n) || !(r[n] = 1) || !o.call(t, n) || e(n)\n } : function (t, e) {\n var n, r, i = a.call(t) == l;\n for (n in t) i && \"prototype\" == n || !o.call(t, n) || (r = \"constructor\" === n) || e(n);\n (r || o.call(t, n = \"constructor\")) && e(n)\n } : (r = [\"valueOf\", \"toString\", \"toLocaleString\", \"propertyIsEnumerable\", \"isPrototypeOf\", \"hasOwnProperty\", \"constructor\"], i = function (t, e) {\n var n, i, s = a.call(t) == l,\n c = !s && \"function\" != typeof t.constructor && B(t, \"hasOwnProperty\") ? t.hasOwnProperty : o;\n for (n in t) s && \"prototype\" == n || !c.call(t, n) || e(n);\n for (i = r.length; n = r[--i]; c.call(t, n) && e(n)) ;\n }), i(t, e)\n }, !n(\"json-stringify\")) {\n var C = {92: \"\\\\\\\\\", 34: '\\\\\"', 8: \"\\\\b\", 12: \"\\\\f\", 10: \"\\\\n\", 13: \"\\\\r\", 9: \"\\\\t\"},\n S = \"000000\", E = function (t, e) {\n return (S + (e || 0)).slice(-t)\n }, T = \"\\\\u00\", j = function (t) {\n var e, n = '\"', r = 0, o = t.length, i = o > 10 && b;\n for (i && (e = t.split(\"\")); o > r; r++) {\n var s = t.charCodeAt(r);\n switch (s) {\n case 8:\n case 9:\n case 10:\n case 12:\n case 13:\n case 34:\n case 92:\n n += C[s];\n break;\n default:\n if (32 > s) {\n n += T + E(2, s.toString(16));\n break\n }\n n += i ? e[r] : b ? t.charAt(r) : t[r]\n }\n }\n return n + '\"'\n }, _ = function (t, e, n, r, c, p, u) {\n var f, h, l, b, k, A, B, C, S, T, P, R, N, O, U, q;\n try {\n f = e[t]\n } catch (D) {\n }\n if (\"object\" == typeof f && f) if (h = a.call(f), h != d || o.call(f, \"toJSON\")) \"function\" == typeof f.toJSON && (h != y && h != g && h != m || o.call(f, \"toJSON\")) && (f = f.toJSON(t)); else if (f > -1 / 0 && 1 / 0 > f) {\n if (x) {\n for (k = w(f / 864e5), l = w(k / 365.2425) + 1970 - 1; x(l + 1, 0) <= k; l++) ;\n for (b = w((k - x(l, 0)) / 30.42); x(l, b + 1) <= k; b++) ;\n k = 1 + k - x(l, b), A = (f % 864e5 + 864e5) % 864e5, B = w(A / 36e5) % 24, C = w(A / 6e4) % 60, S = w(A / 1e3) % 60, T = A % 1e3\n } else l = f.getUTCFullYear(), b = f.getUTCMonth(), k = f.getUTCDate(), B = f.getUTCHours(), C = f.getUTCMinutes(), S = f.getUTCSeconds(), T = f.getUTCMilliseconds();\n f = (0 >= l || l >= 1e4 ? (0 > l ? \"-\" : \"+\") + E(6, 0 > l ? -l : l) : E(4, l)) + \"-\" + E(2, b + 1) + \"-\" + E(2, k) + \"T\" + E(2, B) + \":\" + E(2, C) + \":\" + E(2, S) + \".\" + E(3, T) + \"Z\"\n } else f = null;\n if (n && (f = n.call(e, t, f)), null === f) return \"null\";\n if (h = a.call(f), h == v) return \"\" + f;\n if (h == y) return f > -1 / 0 && 1 / 0 > f ? \"\" + f : \"null\";\n if (h == g) return j(\"\" + f);\n if (\"object\" == typeof f) {\n for (O = u.length; O--;) if (u[O] === f) throw TypeError();\n if (u.push(f), P = [], U = p, p += c, h == m) {\n for (N = 0, O = f.length; O > N; N++) R = _(N, f, n, r, c, p, u), P.push(R === s ? \"null\" : R);\n q = P.length ? c ? \"[\\n\" + p + P.join(\",\\n\" + p) + \"\\n\" + U + \"]\" : \"[\" + P.join(\",\") + \"]\" : \"[]\"\n } else i(r || f, function (t) {\n var e = _(t, f, n, r, c, p, u);\n e !== s && P.push(j(t) + \":\" + (c ? \" \" : \"\") + e)\n }), q = P.length ? c ? \"{\\n\" + p + P.join(\",\\n\" + p) + \"\\n\" + U + \"}\" : \"{\" + P.join(\",\") + \"}\" : \"{}\";\n return u.pop(), q\n }\n };\n u.stringify = function (t, e, n) {\n var r, o, i, s;\n if (\"function\" == typeof e || \"object\" == typeof e && e) if ((s = a.call(e)) == l) o = e; else if (s == m) {\n i = {};\n for (var c, p = 0, u = e.length; u > p; c = e[p++], s = a.call(c), (s == g || s == y) && (i[c] = 1)) ;\n }\n if (n) if ((s = a.call(n)) == y) {\n if ((n -= n % 1) > 0) for (r = \"\", n > 10 && (n = 10); r.length < n; r += \" \") ;\n } else s == g && (r = n.length <= 10 ? n : n.slice(0, 10));\n return _(\"\", (c = {}, c[\"\"] = t, c), o, i, r, \"\", [])\n }\n }\n if (!n(\"json-parse\")) {\n var P, R, N = String.fromCharCode,\n O = {92: \"\\\\\", 34: '\"', 47: \"/\", 98: \"\\b\", 116: \"\t\", 110: \"\\n\", 102: \"\\f\", 114: \"\\r\"},\n U = function () {\n throw P = R = null, SyntaxError()\n }, q = function () {\n for (var t, e, n, r, o, i = R, s = i.length; s > P;) switch (o = i.charCodeAt(P)) {\n case 9:\n case 10:\n case 13:\n case 32:\n P++;\n break;\n case 123:\n case 125:\n case 91:\n case 93:\n case 58:\n case 44:\n return t = b ? i.charAt(P) : i[P], P++, t;\n case 34:\n for (t = \"@\", P++; s > P;) if (o = i.charCodeAt(P), 32 > o) U(); else if (92 == o) switch (o = i.charCodeAt(++P)) {\n case 92:\n case 34:\n case 47:\n case 98:\n case 116:\n case 110:\n case 102:\n case 114:\n t += O[o], P++;\n break;\n case 117:\n for (e = ++P, n = P + 4; n > P; P++) o = i.charCodeAt(P), o >= 48 && 57 >= o || o >= 97 && 102 >= o || o >= 65 && 70 >= o || U();\n t += N(\"0x\" + i.slice(e, P));\n break;\n default:\n U()\n } else {\n if (34 == o) break;\n for (o = i.charCodeAt(P), e = P; o >= 32 && 92 != o && 34 != o;) o = i.charCodeAt(++P);\n t += i.slice(e, P)\n }\n if (34 == i.charCodeAt(P)) return P++, t;\n U();\n default:\n if (e = P, 45 == o && (r = !0, o = i.charCodeAt(++P)), o >= 48 && 57 >= o) {\n for (48 == o && (o = i.charCodeAt(P + 1), o >= 48 && 57 >= o) && U(), r = !1; s > P && (o = i.charCodeAt(P), o >= 48 && 57 >= o); P++) ;\n if (46 == i.charCodeAt(P)) {\n for (n = ++P; s > n && (o = i.charCodeAt(n), o >= 48 && 57 >= o); n++) ;\n n == P && U(), P = n\n }\n if (o = i.charCodeAt(P), 101 == o || 69 == o) {\n for (o = i.charCodeAt(++P), (43 == o || 45 == o) && P++, n = P; s > n && (o = i.charCodeAt(n), o >= 48 && 57 >= o); n++) ;\n n == P && U(), P = n\n }\n return +i.slice(e, P)\n }\n if (r && U(), \"true\" == i.slice(P, P + 4)) return P += 4, !0;\n if (\"false\" == i.slice(P, P + 5)) return P += 5, !1;\n if (\"null\" == i.slice(P, P + 4)) return P += 4, null;\n U()\n }\n return \"$\"\n }, D = function (t) {\n var e, n;\n if (\"$\" == t && U(), \"string\" == typeof t) {\n if (\"@\" == (b ? t.charAt(0) : t[0])) return t.slice(1);\n if (\"[\" == t) {\n for (e = []; t = q(), \"]\" != t; n || (n = !0)) n && (\",\" == t ? (t = q(), \"]\" == t && U()) : U()), \",\" == t && U(), e.push(D(t));\n return e\n }\n if (\"{\" == t) {\n for (e = {}; t = q(), \"}\" != t; n || (n = !0)) n && (\",\" == t ? (t = q(), \"}\" == t && U()) : U()), (\",\" == t || \"string\" != typeof t || \"@\" != (b ? t.charAt(0) : t[0]) || \":\" != q()) && U(), e[t.slice(1)] = D(q());\n return e\n }\n U()\n }\n return t\n }, I = function (t, e, n) {\n var r = L(t, e, n);\n r === s ? delete t[e] : t[e] = r\n }, L = function (t, e, n) {\n var r, o = t[e];\n if (\"object\" == typeof o && o) if (a.call(o) == m) for (r = o.length; r--;) I(o, r, n); else i(o, function (t) {\n I(o, t, n)\n });\n return n.call(t, e, o)\n };\n u.parse = function (t, e) {\n var n, r;\n return P = 0, R = \"\" + t, n = D(q()), \"$\" != q() && U(), P = R = null, e && a.call(e) == l ? L((r = {}, r[\"\"] = n, r), \"\", e) : n\n }\n }\n }\n c && t(function () {\n return u\n })\n }(this)\n }, {}],\n 48: [function (t, e) {\n function n(t, e) {\n var n = [];\n e = e || 0;\n for (var r = e || 0; r < t.length; r++) n[r - e] = t[r];\n return n\n }\n\n e.exports = n\n }, {}]\n }, {}, [1])(1)\n}\n","import { io } from 'socket.io-client'\nimport type { SocketTyped } from '@/types/socket'\n\nconst importModules: Record<string, { default?: unknown }> = import.meta.glob(\n './v*.js',\n { eager: true }\n)\n\nconst SOCKET_NAME_REGEX = /v\\d+_\\d+_\\d+/\n\nexport type TypedSocketIo = (...args: Parameters<typeof io>) => SocketTyped\n\nexport type SocketIoFn = () => TypedSocketIo\n\nfunction isSocketIoFn (socket: unknown): socket is SocketIoFn {\n return typeof socket === 'function'\n}\n\nconst sockets = Object.entries(importModules)\n .reduce<Record<string, TypedSocketIo>>(\n (acc, currentValue) => {\n const module = currentValue[1].default\n const moduleName = currentValue[0].match(SOCKET_NAME_REGEX)?.[0]\n\n if (isSocketIoFn(module) && moduleName) {\n acc[moduleName] = module()\n }\n\n return acc\n },\n {}\n )\n\nconst getSocketVersion = (version: string) => {\n if (version in sockets) {\n return sockets[version]\n } else {\n throw new Error(`Socket version ${version} not found`)\n }\n}\n\nconst makeSocketVersion = (version: string, ...args: Parameters<typeof io>) => {\n const socket = getSocketVersion(version)\n\n return socket(...args)\n}\n\nexport default {\n ...sockets,\n getSocketVersion,\n makeSocketVersion\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum CallStatusEnum {\n RINGING = 'Ringing',\n TALKING = 'Talking',\n DIALING = 'Dialing',\n HOLD = 'Hold',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum CallTypeEnum {\n INCOMING = 'Incoming',\n OUTGOING = 'Outgoing',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ConnectionStatusEnum {\n CONNECTED = 'connected',\n DISCONNECTED = 'disconnected',\n TRYING_TO_CONNECT = 'tryingToConnect',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DialerTypeEnum {\n AUTOMATIC = 'Automatic',\n IVR = 'IVR',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DirectionEnum {\n INCOMINC = 'Incoming',\n OUTGOING = 'Outgoing',\n SPY = 'Spy',\n CLICK2CALL = 'Click2Call',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum DoNotCallMeStatusCodeEnum {\n RESPONSE_FROM_API_VALID = 'RESPONSE_FROM_API_VALID',\n RESPONSE_FROM_API_INVALID = 'RESPONSE_FROM_API_INVALID',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum EventsEnum {\n ALL_DIALER_STATUS = 'AllDialersStatus',\n ALL_EXTENSION_STATUS = 'AllExtensionsStatus',\n ALL_USERS_STATUS = 'AllUsersStatus',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n CONNECT_ERROR_EVENT = 'connect_error',\n EXTENSION_EVENT = 'ExtensionEvent',\n KEEP_ALIVE = 'keepalive',\n KEEP_ALIVE_RESPONSE = 'keepaliveResponse',\n LOGIN_STATUS = 'loginStatus',\n LOGIN_SUCCESS = 'loginSuccess',\n QUEUE_EVENT = 'QueueEvent',\n ONLINE_STATUS_EVENT = 'onlineStatusEvent',\n DIALER_EVENT = 'DialerEvent',\n EXTENSIONS_UPDATED = 'ExtensionsUpdated',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ExtensionEventReasonEnum {\n NEWCALL = 'NEWCALL',\n ANSWER = 'ANSWER',\n HOLD = 'HOLD',\n UNHOLD = 'UNHOLD',\n HANGUP = 'HANGUP',\n USER_STATUS_UPDATE = 'userStatusUpdate',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ExtensionHangupCauseEnum {\n NORMAL_HANGUP = 'Normal hangup',\n USER_BUSY = 'User busy',\n CALL_REJECTED = 'Call Rejected',\n UNALLOCATED_NUMBER = 'Unallocated (unassigned) number',\n UNKNOWN = 'Unknown',\n NO_USER_RESPONDING = 'No user responding',\n USER_ALERTING = 'User alerting, no answer',\n ANSWERED_ELSEWHERE = 'Answered elsewhere',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum QueueEventReasonEnum {\n ANSWER = 'ANSWER',\n ABANDONED = 'ABANDONED',\n EXIT = 'EXIT',\n JOIN = 'JOIN',\n}","import { EventsEnum, Extension, ExtensionEventReasonEnum, type QueueCall } from '@voicenter-team/real-time-events-types'\nimport { EventDataMap, EventDataMapExtended } from '@/types/events'\nimport { CurrentCallUTCExtended, ExtensionCallSDK, ExtensionEventExtended, ExtensionUTCExtended } from '@/types/sdk-extension-extended'\nimport type { ExtensionCall } from '@voicenter-team/real-time-events-types/dist/models/ExtensionCall'\nimport { QueueCallSDK } from '@/types/sdk-queue-extended'\n\ntype NumericKeys<T> = {\n [P in keyof T]: T[P] extends number\n ? P extends string\n ? P\n : never\n : never\n}[keyof T]\n\ntype PropertyWithUTC<T extends string> = `${T}_UTC` | `${T}_UTC_CLIENT`\n\ntype WithUTCProperties<T extends object, K extends NumericKeys<T>> = T & {\n [P in K as PropertyWithUTC<P & string>]: number\n}\n\nexport default class EventsHandler {\n public static mapExtensionEvent (data: EventDataMap[EventsEnum.EXTENSION_EVENT]): EventDataMapExtended[EventsEnum.EXTENSION_EVENT] {\n const reason = data.reason\n let dataExtended: undefined | ExtensionEventExtended\n let currentCallExtended: undefined | CurrentCallUTCExtended\n\n if (data.data.currentCall) {\n currentCallExtended = this.mapExtensionCall(data, data.data.currentCall)\n }\n\n const extensionExtended = this.mapExtensionData(data, data.data)\n\n if (reason === ExtensionEventReasonEnum.HANGUP) {\n dataExtended = {\n ...data,\n reason,\n data: {\n ...extensionExtended,\n currentCall: currentCallExtended ?\n {\n ...currentCallExtended,\n duration: currentCallExtended.callAnswered_UTC_CLIENT ? Date.now() - currentCallExtended.callAnswered_UTC_CLIENT : 0\n }\n : undefined,\n calls: data.data.calls?.map((call) => {\n const callExtended = this.mapExtensionCall(data, call)\n\n return {\n ...callExtended,\n duration: callExtended.callAnswered_UTC_CLIENT ? Date.now() - callExtended.callAnswered_UTC_CLIENT : 0\n }\n })\n }\n }\n } else {\n dataExtended = {\n ...data,\n data: {\n ...extensionExtended,\n currentCall: currentCallExtended,\n calls: data.data.calls?.map((call) => this.mapExtensionCall(data, call))\n },\n reason\n }\n }\n\n return dataExtended\n }\n\n public static mapAllExtensionStatus (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS]): EventDataMapExtended[EventsEnum.ALL_EXTENSION_STATUS] {\n return {\n ...data,\n extensions: data.extensions.map((extension) => {\n return {\n ...this.mapExtensionData(data, extension),\n currentCall: extension.currentCall\n ? this.mapExtensionCall(data, extension.currentCall)\n : undefined,\n calls: extension.calls?.map((call) => this.mapExtensionCall(data, call))\n }\n })\n }\n }\n\n public static mapExtensionData (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS] | EventDataMap[EventsEnum.EXTENSION_EVENT], extension: Extension): ExtensionUTCExtended {\n return this.configureUTCForObject(\n extension,\n [\n {\n key: 'lastAnsweredCallEventEpoch',\n format: 'sec'\n },\n {\n key: 'lastCallEventEpoch',\n format: 'sec'\n },\n {\n key: 'lastHangupCallEpoch',\n format: 'sec'\n },\n {\n key: 'representativeUpdated',\n format: 'ms'\n }\n ],\n data.servertime,\n data.servertimeoffset\n )\n }\n\n public static mapExtensionCall (data: EventDataMap[EventsEnum.ALL_EXTENSION_STATUS] | EventDataMap[EventsEnum.EXTENSION_EVENT], call: ExtensionCall): ExtensionCallSDK {\n return this.configureUTCForObject(\n call,\n [\n {\n key: 'callAnswered',\n format: 'sec'\n },\n {\n key: 'callStarted',\n format: 'sec'\n }\n ],\n data.servertime,\n data.servertimeoffset\n )\n }\n\n public static mapQueueCall (data: EventDataMap[EventsEnum.QUEUE_EVENT] | EventDataMap[EventsEnum.LOGIN_STATUS], call: QueueCall): QueueCallSDK {\n return this.configureUTCForObject(\n call,\n [\n {\n key: 'JoinTimeStamp',\n format: 'sec'\n },\n {\n key: 'VHJoinTimeStamp', // TODO: should add the VHJoinTimeStamp in TS definitions\n format: 'sec'\n }\n ],\n data.servertime, // TODO: currently the TS error because in LoginStatusEvent type the key is \"serverTime\" but actual is \"servertime\", remove comment after fixed\n data.servertimeoffset // TODO: currently the TS error because in LoginStatusEvent type the key is \"serverTimeOffset\" but actual is \"servertimeoffset\", remove comment after fixed\n )\n }\n\n public static mapLoginStatusEvent (data: EventDataMap[EventsEnum.LOGIN_STATUS]): EventDataMapExtended[EventsEnum.LOGIN_STATUS] {\n return {\n ...data,\n queues: data.queues.map(queue => {\n return {\n ...queue,\n Calls: queue.Calls.map(call => this.mapQueueCall(data, call))\n }\n })\n }\n }\n\n public static mapQueueEvent (data: EventDataMap[EventsEnum.QUEUE_EVENT]): EventDataMapExtended[EventsEnum.QUEUE_EVENT] {\n return {\n ...data,\n data: {\n ...data.data,\n Calls: data.data.Calls.map(call => this.mapQueueCall(data, call))\n }\n }\n }\n\n private static assignProperty <T extends object, K extends string> (obj: T, key: K, value: number) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any)[key] = value\n }\n\n /**\n * Configures UTC timestamps for an object by converting server-time properties to both UTC and client-local UTC timestamps\n *\n * For each specified property, creates two new timestamp properties:\n * - property_UTC: Server timestamp converted to UTC milliseconds\n * - property_UTC_CLIENT: Server timestamp converted to client-local UTC milliseconds\n *\n * @example\n * // Input object\n * const data = {\n * callStarted: 1634567890 // Unix timestamp in seconds\n * }\n *\n * // After configureUTCForObject:\n * {\n * callStarted: 1634567890,\n * callStarted_UTC: 1634567890000, // Converted to UTC ms\n * callStarted_UTC_CLIENT: 1634571490000 // Converted to client-local UTC ms\n * }\n *\n * @param data - Source object containing server timestamp properties\n * @param properties - Array of property configs specifying which properties to convert and their format\n * @param servertime - Current server time in seconds\n * @param servertimeoffset - Server timezone offset in minutes\n * @private\n * @returns Original object extended with new _UTC and _UTC_CLIENT properties for each configured timestamp\n */\n private static configureUTCForObject<T extends object, K extends NumericKeys<T>> (\n data: T,\n properties: Array<{ key: K, format: 'sec' | 'ms' }>,\n servertime: number,\n servertimeoffset: number\n ): WithUTCProperties<T, K> {\n const serverTimeUTC: number = (servertime - servertimeoffset * 60) * 1000\n const diffServerAndClient: number = Date.now() - serverTimeUTC\n\n type UTCProps = {\n [P in K]: number\n } & {\n [P in K as `${P}_UTC`]: number\n } & {\n [P in K as `${P}_UTC_CLIENT`]: number\n }\n\n const extendedProperties: Partial<UTCProps> = {}\n\n properties.forEach((property) => {\n const value = data[property.key]\n const key = property.key\n\n if (value !== 0 && typeof value === 'number' && !isNaN(value)) {\n let valueFormatted: number = value\n\n if (property.format === 'ms') {\n valueFormatted = Math.floor(valueFormatted / 1000)\n }\n\n const baseTime: number = (valueFormatted - servertimeoffset * 60) * 1000\n\n this.assignProperty(extendedProperties, `${key}_UTC`, baseTime)\n this.assignProperty(extendedProperties, `${key}_UTC_CLIENT`, baseTime + diffServerAndClient)\n } else {\n this.assignProperty(extendedProperties, `${key}_UTC`, 0)\n this.assignProperty(extendedProperties, `${key}_UTC_CLIENT`, 0)\n }\n })\n\n return {\n ...data,\n ...extendedProperties,\n } as WithUTCProperties<T, K>\n }\n}\n","export enum ServerListenerEventsEnum {\n UPDATE_MONITORED_EXTENSIONS = 'updateMonitoredExtensions',\n KEEP_ALIVE = 'keepalive'\n}\n","import { ManagerOptions, Socket, SocketOptions } from 'socket.io-client'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport sockets, { TypedSocketIo } from '@/classes/socket-io/versions'\nimport { SocketTyped } from '@/types/socket'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport {\n AllDialersStatusEvent,\n AllExtensionStatusEvent,\n ConnectionStatusEnum,\n DialerEvent,\n EventsEnum,\n ExtensionEvent,\n ExtensionsUpdated,\n KeepAliveResponseEvent,\n LoginStatusEvent,\n LoginSuccessEvent,\n QueueEvent\n} from '@voicenter-team/real-time-events-types'\nimport { StorageClass } from '@/classes/storage/storage.class'\nimport EventsHandler from '@/classes/socket-io/events-handler'\nimport { ServerListenerEventsEnum } from '@/enum/socket.enum'\n\nexport class SocketIoClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n\n if (typeof window !== 'undefined') {\n window.addEventListener('offline', () => {\n this.closeAllConnections()\n })\n\n window.addEventListener('online', () => {\n setTimeout(() => {\n if (this.keepReconnectTimeout) {\n clearTimeout(this.keepReconnectTimeout)\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n }, 5000)\n })\n }\n\n if (typeof self !== 'undefined' && typeof window === 'undefined' && typeof global === 'undefined') {\n self.addEventListener('offline', () => {\n this.closeAllConnections()\n })\n\n self.addEventListener('online', () => {\n setTimeout(() => {\n if (this.keepReconnectTimeout) {\n clearTimeout(this.keepReconnectTimeout)\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n }, 5000)\n })\n }\n }\n\n public io: SocketTyped | undefined\n public ioFunction: TypedSocketIo | undefined\n public lastEventTimestamp = new Date().getTime()\n public doReconnect = true\n private keepAliveInterval: ReturnType<typeof setInterval> | undefined\n private keepReconnectInterval: ReturnType<typeof setInterval> | undefined\n private keepReconnectTimeout: ReturnType<typeof setTimeout> | undefined\n private connected = false\n private reconnectionTime = 20\n\n public getSocketIoFunction (Client: string) {\n const parsedArray = Client.split('v=')\n\n const version = 'v'\n .concat(parsedArray[parsedArray.length - 1])\n .replaceAll('.', '_')\n\n this.ioFunction = sockets.getSocketVersion(version)\n }\n\n public initSocketConnection () {\n const token = this.eventsSdkClass.authClass.token\n\n const protocol = this.eventsSdkClass.options.protocol\n\n const server = this.eventsSdkClass.server\n\n try {\n const domain = server ? server.Domain : this.eventsSdkClass.URL\n\n const url = server ? `${protocol}://${domain}` : this.eventsSdkClass.URL\n\n const options: Partial<ManagerOptions & SocketOptions> = {\n reconnection: false,\n upgrade: false,\n transports: [ 'websocket' ],\n forceNew: true,\n query: {\n token\n },\n timeout: this.eventsSdkClass.options.timeout\n }\n\n if (this.ioFunction && url) {\n this.io = this.ioFunction(url, options)\n\n this.eventsSdkClass.eventEmitterClass.emit(\n EventsEnum.ONLINE_STATUS_EVENT,\n {\n attemptToConnect: url,\n connectionStatus: ConnectionStatusEnum.TRYING_TO_CONNECT\n }\n )\n\n this.eventsSdkClass.loggerClass.sdkAttemptToConnect(domain)\n } else {\n throw new Error('Socket server url no defined')\n }\n } catch (error) {\n this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(error as Error)\n }\n }\n\n public clearKeepAliveInterval () {\n if (this.keepAliveInterval) {\n clearInterval(this.keepAliveInterval)\n }\n }\n\n public initKeepAlive () {\n if (this.keepAliveInterval) {\n clearInterval(this.keepAliveInterval)\n }\n\n this.keepAliveInterval = setInterval(async () => {\n const now = new Date().getTime()\n\n if (now > this.lastEventTimestamp + this.eventsSdkClass.options.keepAliveTimeout && this.io && this.eventsSdkClass.authClass.token) {\n this.eventsSdkClass.emit(ServerListenerEventsEnum.KEEP_ALIVE, this.eventsSdkClass.authClass.token)\n\n this.eventsSdkClass.loggerClass.keepAliveEmit()\n\n return\n }\n\n }, this.eventsSdkClass.options.keepAliveTimeout)\n }\n\n public closeAllConnections () {\n if (this.io) {\n this.io.close()\n\n this.io?.disconnect()\n\n this.io = undefined\n }\n\n this.eventsSdkClass.loggerClass.stop()\n\n StorageClass.clearSessionStorage()\n }\n\n public initSocketEvents () {\n if (!this.io) {\n return\n }\n\n this.io\n .on(EventsEnum.LOGIN_SUCCESS, (data) => this.onLoginSuccessEvent(data, EventsEnum.LOGIN_SUCCESS))\n .on(EventsEnum.QUEUE_EVENT, (data) => this.onQueueEvent(data, EventsEnum.QUEUE_EVENT))\n .on(EventsEnum.EXTENSION_EVENT, (data) => this.onExtensionEvent(data, EventsEnum.EXTENSION_EVENT))\n .on(EventsEnum.DIALER_EVENT, (data) => this.onDialerEvent(data, EventsEnum.DIALER_EVENT))\n .on(EventsEnum.LOGIN_STATUS, (data) => this.onLoginStatusEvent(data, EventsEnum.LOGIN_STATUS))\n .on(EventsEnum.ALL_EXTENSION_STATUS, (data) => this.onAllExtensionStatus(data, EventsEnum.ALL_EXTENSION_STATUS))\n .on(EventsEnum.ALL_DIALER_STATUS, (data) => this.onAllDialerStatus(data, EventsEnum.ALL_DIALER_STATUS))\n .on(EventsEnum.KEEP_ALIVE_RESPONSE, (data) => this.onKeepAliveResponse(data))\n .on(EventsEnum.EXTENSIONS_UPDATED, (data) => this.onExtensionsUpdatedEvent(data, EventsEnum.EXTENSIONS_UPDATED))\n .on(EventsEnum.CONNECT, () => this.onConnect())\n .on(EventsEnum.DISCONNECT, (data) => this.onDisconnect(data))\n .on(EventsEnum.CONNECT_ERROR_EVENT, (data) => this.onConnectError(data))\n }\n\n private onLoginSuccessEvent (data: LoginSuccessEvent, eventName: EventsEnum.LOGIN_SUCCESS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onQueueEvent (data: QueueEvent, eventName: EventsEnum.QUEUE_EVENT) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, EventsHandler.mapQueueEvent(data))\n }\n\n private onExtensionEvent (data: ExtensionEvent, eventName: EventsEnum.EXTENSION_EVENT) {\n const dataExtended = EventsHandler.mapExtensionEvent(data)\n\n if (dataExtended) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, dataExtended)\n }\n }\n\n private onDialerEvent (data: DialerEvent, eventName: EventsEnum.DIALER_EVENT) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onLoginStatusEvent (data: LoginStatusEvent, eventName: EventsEnum.LOGIN_STATUS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, EventsHandler.mapLoginStatusEvent(data))\n }\n\n private onAllExtensionStatus (data: AllExtensionStatusEvent, eventName: EventsEnum.ALL_EXTENSION_STATUS) {\n const dataExtended = EventsHandler.mapAllExtensionStatus(data)\n\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, dataExtended)\n }\n\n private onAllDialerStatus (data: AllDialersStatusEvent, eventName: EventsEnum.ALL_DIALER_STATUS) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onKeepAliveResponse (data: KeepAliveResponseEvent) {\n this.eventsSdkClass.loggerClass.keepAliveResponse(data)\n\n if (data.errorCode) {\n this.initSocketConnection()\n\n return\n }\n\n if (this.connected) {\n this.lastEventTimestamp = new Date().getTime()\n } else {\n this.initSocketConnection()\n }\n }\n\n private onExtensionsUpdatedEvent (data: ExtensionsUpdated, eventName: EventsEnum.EXTENSIONS_UPDATED) {\n this.eventsSdkClass.loggerClass.eventLog(eventName, data)\n\n this.eventsSdkClass.eventEmitterClass.emit(eventName, data)\n }\n\n private onConnect () {\n this.connected = true\n\n if (this.keepReconnectInterval) {\n clearInterval(this.keepReconnectInterval)\n }\n\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: ConnectionStatusEnum.CONNECTED\n })\n\n this.eventsSdkClass.loggerClass.start().then(() => {\n this.eventsSdkClass.loggerClass.sdkConnectionSuccess()\n })\n }\n\n private onDisconnect (reason: Socket.DisconnectReason) {\n this.connected = false\n\n if (!this.doReconnect) {\n return\n }\n\n this.closeAllConnections()\n\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: this.doReconnect ? ConnectionStatusEnum.TRYING_TO_CONNECT : ConnectionStatusEnum.DISCONNECTED\n })\n\n this.eventsSdkClass.loggerClass.sdkDisconnect([ reason ])\n\n this.keepReconnectTimeout = setTimeout(\n () => {\n this.reconnectionTime = this.reconnectionTime + 20\n\n if (this.reconnectionTime > 120) {\n this.reconnectionTime = 20\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n },\n this.reconnectionTime * 1000\n )\n }\n\n private onConnectError (data: Error) {\n this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, {\n connectionStatus: this.doReconnect ? ConnectionStatusEnum.TRYING_TO_CONNECT : ConnectionStatusEnum.DISCONNECTED\n })\n\n this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(data)\n\n this.keepReconnectTimeout = setTimeout(\n () => {\n this.reconnectionTime = this.reconnectionTime + 20\n\n if (this.reconnectionTime > 60) {\n this.reconnectionTime = 20\n }\n\n this.eventsSdkClass.connect(ServerParameter.NEXT)\n },\n this.reconnectionTime * 1000\n )\n }\n}\n","var ke = Object.defineProperty;\nvar _e = (s, e, t) => e in s ? ke(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;\nvar u = (s, e, t) => (_e(s, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nconst E = /* @__PURE__ */ Object.create(null);\nE.open = \"0\";\nE.close = \"1\";\nE.ping = \"2\";\nE.pong = \"3\";\nE.message = \"4\";\nE.upgrade = \"5\";\nE.noop = \"6\";\nconst I = /* @__PURE__ */ Object.create(null);\nObject.keys(E).forEach((s) => {\n I[E[s]] = s;\n});\nconst P = { type: \"error\", data: \"parser error\" }, ce = typeof Blob == \"function\" || typeof Blob < \"u\" && Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\", he = typeof ArrayBuffer == \"function\", ue = (s) => typeof ArrayBuffer.isView == \"function\" ? ArrayBuffer.isView(s) : s && s.buffer instanceof ArrayBuffer, J = ({ type: s, data: e }, t, n) => ce && e instanceof Blob ? t ? n(e) : Q(e, n) : he && (e instanceof ArrayBuffer || ue(e)) ? t ? n(e) : Q(new Blob([e]), n) : n(E[s] + (e || \"\")), Q = (s, e) => {\n const t = new FileReader();\n return t.onload = function() {\n const n = t.result.split(\",\")[1];\n e(\"b\" + (n || \"\"));\n }, t.readAsDataURL(s);\n};\nfunction j(s) {\n return s instanceof Uint8Array ? s : s instanceof ArrayBuffer ? new Uint8Array(s) : new Uint8Array(s.buffer, s.byteOffset, s.byteLength);\n}\nlet U;\nfunction Oe(s, e) {\n if (ce && s.data instanceof Blob)\n return s.data.arrayBuffer().then(j).then(e);\n if (he && (s.data instanceof ArrayBuffer || ue(s.data)))\n return e(j(s.data));\n J(s, !1, (t) => {\n U || (U = new TextEncoder()), e(U.encode(t));\n });\n}\nconst X = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", A = typeof Uint8Array > \"u\" ? [] : new Uint8Array(256);\nfor (let s = 0; s < X.length; s++)\n A[X.charCodeAt(s)] = s;\nconst Ae = (s) => {\n let e = s.length * 0.75, t = s.length, n, i = 0, r, o, c, h;\n s[s.length - 1] === \"=\" && (e--, s[s.length - 2] === \"=\" && e--);\n const y = new ArrayBuffer(e), m = new Uint8Array(y);\n for (n = 0; n < t; n += 4)\n r = A[s.charCodeAt(n)], o = A[s.charCodeAt(n + 1)], c = A[s.charCodeAt(n + 2)], h = A[s.charCodeAt(n + 3)], m[i++] = r << 2 | o >> 4, m[i++] = (o & 15) << 4 | c >> 2, m[i++] = (c & 3) << 6 | h & 63;\n return y;\n}, Ce = typeof ArrayBuffer == \"function\", K = (s, e) => {\n if (typeof s != \"string\")\n return {\n type: \"message\",\n data: le(s, e)\n };\n const t = s.charAt(0);\n return t === \"b\" ? {\n type: \"message\",\n data: Se(s.substring(1), e)\n } : I[t] ? s.length > 1 ? {\n type: I[t],\n data: s.substring(1)\n } : {\n type: I[t]\n } : P;\n}, Se = (s, e) => {\n if (Ce) {\n const t = Ae(s);\n return le(t, e);\n } else\n return { base64: !0, data: s };\n}, le = (s, e) => {\n switch (e) {\n case \"blob\":\n return s instanceof Blob ? s : new Blob([s]);\n case \"arraybuffer\":\n default:\n return s instanceof ArrayBuffer ? s : s.buffer;\n }\n}, fe = \"\u001e\", Te = (s, e) => {\n const t = s.length, n = new Array(t);\n let i = 0;\n s.forEach((r, o) => {\n J(r, !1, (c) => {\n n[o] = c, ++i === t && e(n.join(fe));\n });\n });\n}, Re = (s, e) => {\n const t = s.split(fe), n = [];\n for (let i = 0; i < t.length; i++) {\n const r = K(t[i], e);\n if (n.push(r), r.type === \"error\")\n break;\n }\n return n;\n};\nfunction Ne() {\n return new TransformStream({\n transform(s, e) {\n Oe(s, (t) => {\n const n = t.length;\n let i;\n if (n < 126)\n i = new Uint8Array(1), new DataView(i.buffer).setUint8(0, n);\n else if (n < 65536) {\n i = new Uint8Array(3);\n const r = new DataView(i.buffer);\n r.setUint8(0, 126), r.setUint16(1, n);\n } else {\n i = new Uint8Array(9);\n const r = new DataView(i.buffer);\n r.setUint8(0, 127), r.setBigUint64(1, BigInt(n));\n }\n s.data && typeof s.data != \"string\" && (i[0] |= 128), e.enqueue(i), e.enqueue(t);\n });\n }\n });\n}\nlet D;\nfunction C(s) {\n return s.reduce((e, t) => e + t.length, 0);\n}\nfunction S(s, e) {\n if (s[0].length === e)\n return s.shift();\n const t = new Uint8Array(e);\n let n = 0;\n for (let i = 0; i < e; i++)\n t[i] = s[0][n++], n === s[0].length && (s.shift(), n = 0);\n return s.length && n < s[0].length && (s[0] = s[0].slice(n)), t;\n}\nfunction Ie(s, e) {\n D || (D = new TextDecoder());\n const t = [];\n let n = 0, i = -1, r = !1;\n return new TransformStream({\n transform(o, c) {\n for (t.push(o); ; ) {\n if (n === 0) {\n if (C(t) < 1)\n break;\n const h = S(t, 1);\n r = (h[0] & 128) === 128, i = h[0] & 127, i < 126 ? n = 3 : i === 126 ? n = 1 : n = 2;\n } else if (n === 1) {\n if (C(t) < 2)\n break;\n const h = S(t, 2);\n i = new DataView(h.buffer, h.byteOffset, h.length).getUint16(0), n = 3;\n } else if (n === 2) {\n if (C(t) < 8)\n break;\n const h = S(t, 8), y = new DataView(h.buffer, h.byteOffset, h.length), m = y.getUint32(0);\n if (m > Math.pow(2, 21) - 1) {\n c.enqueue(P);\n break;\n }\n i = m * Math.pow(2, 32) + y.getUint32(4), n = 3;\n } else {\n if (C(t) < i)\n break;\n const h = S(t, i);\n c.enqueue(K(r ? h : D.decode(h), e)), n = 0;\n }\n if (i === 0 || i > s) {\n c.enqueue(P);\n break;\n }\n }\n }\n });\n}\nconst de = 4;\nfunction l(s) {\n if (s)\n return Le(s);\n}\nfunction Le(s) {\n for (var e in l.prototype)\n s[e] = l.prototype[e];\n return s;\n}\nl.prototype.on = l.prototype.addEventListener = function(s, e) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[\"$\" + s] = this._callbacks[\"$\" + s] || []).push(e), this;\n};\nl.prototype.once = function(s, e) {\n function t() {\n this.off(s, t), e.apply(this, arguments);\n }\n return t.fn = e, this.on(s, t), this;\n};\nl.prototype.off = l.prototype.removeListener = l.prototype.removeAllListeners = l.prototype.removeEventListener = function(s, e) {\n if (this._callbacks = this._callbacks || {}, arguments.length == 0)\n return this._callbacks = {}, this;\n var t = this._callbacks[\"$\" + s];\n if (!t)\n return this;\n if (arguments.length == 1)\n return delete this._callbacks[\"$\" + s], this;\n for (var n, i = 0; i < t.length; i++)\n if (n = t[i], n === e || n.fn === e) {\n t.splice(i, 1);\n break;\n }\n return t.length === 0 && delete this._callbacks[\"$\" + s], this;\n};\nl.prototype.emit = function(s) {\n this._callbacks = this._callbacks || {};\n for (var e = new Array(arguments.length - 1), t = this._callbacks[\"$\" + s], n = 1; n < arguments.length; n++)\n e[n - 1] = arguments[n];\n if (t) {\n t = t.slice(0);\n for (var n = 0, i = t.length; n < i; ++n)\n t[n].apply(this, e);\n }\n return this;\n};\nl.prototype.emitReserved = l.prototype.emit;\nl.prototype.listeners = function(s) {\n return this._callbacks = this._callbacks || {}, this._callbacks[\"$\" + s] || [];\n};\nl.prototype.hasListeners = function(s) {\n return !!this.listeners(s).length;\n};\nconst g = typeof self < \"u\" ? self : typeof window < \"u\" ? window : Function(\"return this\")();\nfunction pe(s, ...e) {\n return e.reduce((t, n) => (s.hasOwnProperty(n) && (t[n] = s[n]), t), {});\n}\nconst Be = g.setTimeout, xe = g.clearTimeout;\nfunction x(s, e) {\n e.useNativeTimers ? (s.setTimeoutFn = Be.bind(g), s.clearTimeoutFn = xe.bind(g)) : (s.setTimeoutFn = g.setTimeout.bind(g), s.clearTimeoutFn = g.clearTimeout.bind(g));\n}\nconst Ue = 1.33;\nfunction De(s) {\n return typeof s == \"string\" ? qe(s) : Math.ceil((s.byteLength || s.size) * Ue);\n}\nfunction qe(s) {\n let e = 0, t = 0;\n for (let n = 0, i = s.length; n < i; n++)\n e = s.charCodeAt(n), e < 128 ? t += 1 : e < 2048 ? t += 2 : e < 55296 || e >= 57344 ? t += 3 : (n++, t += 4);\n return t;\n}\nfunction Pe(s) {\n let e = \"\";\n for (let t in s)\n s.hasOwnProperty(t) && (e.length && (e += \"&\"), e += encodeURIComponent(t) + \"=\" + encodeURIComponent(s[t]));\n return e;\n}\nfunction Me(s) {\n let e = {}, t = s.split(\"&\");\n for (let n = 0, i = t.length; n < i; n++) {\n let r = t[n].split(\"=\");\n e[decodeURIComponent(r[0])] = decodeURIComponent(r[1]);\n }\n return e;\n}\nclass Ve extends Error {\n constructor(e, t, n) {\n super(e), this.description = t, this.context = n, this.type = \"TransportError\";\n }\n}\nclass G extends l {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(e) {\n super(), this.writable = !1, x(this, e), this.opts = e, this.query = e.query, this.socket = e.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(e, t, n) {\n return super.emitReserved(\"error\", new Ve(e, t, n)), this;\n }\n /**\n * Opens the transport.\n */\n open() {\n return this.readyState = \"opening\", this.doOpen(), this;\n }\n /**\n * Closes the transport.\n */\n close() {\n return (this.readyState === \"opening\" || this.readyState === \"open\") && (this.doClose(), this.onClose()), this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(e) {\n this.readyState === \"open\" && this.write(e);\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\", this.writable = !0, super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(e) {\n const t = K(e, this.socket.binaryType);\n this.onPacket(t);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(e) {\n super.emitReserved(\"packet\", e);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(e) {\n this.readyState = \"closed\", super.emitReserved(\"close\", e);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(e) {\n }\n createUri(e, t = {}) {\n return e + \"://\" + this._hostname() + this._port() + this.opts.path + this._query(t);\n }\n _hostname() {\n const e = this.opts.hostname;\n return e.indexOf(\":\") === -1 ? e : \"[\" + e + \"]\";\n }\n _port() {\n return this.opts.port && (this.opts.secure && +(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80) ? \":\" + this.opts.port : \"\";\n }\n _query(e) {\n const t = Pe(e);\n return t.length ? \"?\" + t : \"\";\n }\n}\nconst ge = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\".split(\"\"), M = 64, Fe = {};\nlet Z = 0, T = 0, ee;\nfunction te(s) {\n let e = \"\";\n do\n e = ge[s % M] + e, s = Math.floor(s / M);\n while (s > 0);\n return e;\n}\nfunction ye() {\n const s = te(+/* @__PURE__ */ new Date());\n return s !== ee ? (Z = 0, ee = s) : s + \".\" + te(Z++);\n}\nfor (; T < M; T++)\n Fe[ge[T]] = T;\nlet me = !1;\ntry {\n me = typeof XMLHttpRequest < \"u\" && \"withCredentials\" in new XMLHttpRequest();\n} catch {\n}\nconst We = me;\nfunction we(s) {\n const e = s.xdomain;\n try {\n if (typeof XMLHttpRequest < \"u\" && (!e || We))\n return new XMLHttpRequest();\n } catch {\n }\n if (!e)\n try {\n return new g[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n } catch {\n }\n}\nfunction He() {\n}\nconst Je = function() {\n return new we({\n xdomain: !1\n }).responseType != null;\n}();\nclass Ke extends G {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(e) {\n if (super(e), this.polling = !1, typeof location < \"u\") {\n const n = location.protocol === \"https:\";\n let i = location.port;\n i || (i = n ? \"443\" : \"80\"), this.xd = typeof location < \"u\" && e.hostname !== location.hostname || i !== e.port;\n }\n const t = e && e.forceBase64;\n this.supportsBinary = Je && !t, this.opts.withCredentials && (this.cookieJar = void 0);\n }\n get name() {\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 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 pause(e) {\n this.readyState = \"pausing\";\n const t = () => {\n this.readyState = \"paused\", e();\n };\n if (this.polling || !this.writable) {\n let n = 0;\n this.polling && (n++, this.once(\"pollComplete\", function() {\n --n || t();\n })), this.writable || (n++, this.once(\"drain\", function() {\n --n || t();\n }));\n } else\n t();\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = !0, this.doPoll(), this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(e) {\n const t = (n) => {\n if (this.readyState === \"opening\" && n.type === \"open\" && this.onOpen(), n.type === \"close\")\n return this.onClose({ description: \"transport closed by the server\" }), !1;\n this.onPacket(n);\n };\n Re(e, this.socket.binaryType).forEach(t), this.readyState !== \"closed\" && (this.polling = !1, this.emitReserved(\"pollComplete\"), this.readyState === \"open\" && this.poll());\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const e = () => {\n this.write([{ type: \"close\" }]);\n };\n this.readyState === \"open\" ? e() : this.once(\"open\", e);\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(e) {\n this.writable = !1, Te(e, (t) => {\n this.doWrite(t, () => {\n this.writable = !0, this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const e = this.opts.secure ? \"https\" : \"http\", t = this.query || {};\n return this.opts.timestampRequests !== !1 && (t[this.opts.timestampParam] = ye()), !this.supportsBinary && !t.sid && (t.b64 = 1), this.createUri(e, t);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(e = {}) {\n return Object.assign(e, { xd: this.xd, cookieJar: this.cookieJar }, this.opts), new b(this.uri(), e);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(e, t) {\n const n = this.request({\n method: \"POST\",\n data: e\n });\n n.on(\"success\", t), n.on(\"error\", (i, r) => {\n this.onError(\"xhr post error\", i, r);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const e = this.request();\n e.on(\"data\", this.onData.bind(this)), e.on(\"error\", (t, n) => {\n this.onError(\"xhr poll error\", t, n);\n }), this.pollXhr = e;\n }\n}\nclass b extends l {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(e, t) {\n super(), x(this, t), this.opts = t, this.method = t.method || \"GET\", this.uri = e, this.data = t.data !== void 0 ? t.data : null, this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var e;\n const t = pe(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n t.xdomain = !!this.opts.xd;\n const n = this.xhr = new we(t);\n try {\n n.open(this.method, this.uri, !0);\n try {\n if (this.opts.extraHeaders) {\n n.setDisableHeaderCheck && n.setDisableHeaderCheck(!0);\n for (let i in this.opts.extraHeaders)\n this.opts.extraHeaders.hasOwnProperty(i) && n.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n } catch {\n }\n if (this.method === \"POST\")\n try {\n n.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n } catch {\n }\n try {\n n.setRequestHeader(\"Accept\", \"*/*\");\n } catch {\n }\n (e = this.opts.cookieJar) === null || e === void 0 || e.addCookies(n), \"withCredentials\" in n && (n.withCredentials = this.opts.withCredentials), this.opts.requestTimeout && (n.timeout = this.opts.requestTimeout), n.onreadystatechange = () => {\n var i;\n n.readyState === 3 && ((i = this.opts.cookieJar) === null || i === void 0 || i.parseCookies(n)), n.readyState === 4 && (n.status === 200 || n.status === 1223 ? this.onLoad() : this.setTimeoutFn(() => {\n this.onError(typeof n.status == \"number\" ? n.status : 0);\n }, 0));\n }, n.send(this.data);\n } catch (i) {\n this.setTimeoutFn(() => {\n this.onError(i);\n }, 0);\n return;\n }\n typeof document < \"u\" && (this.index = b.requestsCount++, b.requests[this.index] = this);\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(e) {\n this.emitReserved(\"error\", e, this.xhr), this.cleanup(!0);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(e) {\n if (!(typeof this.xhr > \"u\" || this.xhr === null)) {\n if (this.xhr.onreadystatechange = He, e)\n try {\n this.xhr.abort();\n } catch {\n }\n typeof document < \"u\" && delete b.requests[this.index], this.xhr = null;\n }\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const e = this.xhr.responseText;\n e !== null && (this.emitReserved(\"data\", e), this.emitReserved(\"success\"), this.cleanup());\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nb.requestsCount = 0;\nb.requests = {};\nif (typeof document < \"u\") {\n if (typeof attachEvent == \"function\")\n attachEvent(\"onunload\", se);\n else if (typeof addEventListener == \"function\") {\n const s = \"onpagehide\" in g ? \"pagehide\" : \"unload\";\n addEventListener(s, se, !1);\n }\n}\nfunction se() {\n for (let s in b.requests)\n b.requests.hasOwnProperty(s) && b.requests[s].abort();\n}\nconst $ = typeof Promise == \"function\" && typeof Promise.resolve == \"function\" ? (e) => Promise.resolve().then(e) : (e, t) => t(e, 0), R = g.WebSocket || g.MozWebSocket, ne = !0, Ge = \"arraybuffer\", ie = typeof navigator < \"u\" && typeof navigator.product == \"string\" && navigator.product.toLowerCase() === \"reactnative\";\nclass $e extends G {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(e) {\n super(e), this.supportsBinary = !e.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check())\n return;\n const e = this.uri(), t = this.opts.protocols, n = ie ? {} : pe(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n this.opts.extraHeaders && (n.headers = this.opts.extraHeaders);\n try {\n this.ws = ne && !ie ? t ? new R(e, t) : new R(e) : new R(e, t, n);\n } catch (i) {\n return this.emitReserved(\"error\", i);\n }\n this.ws.binaryType = this.socket.binaryType, this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n this.opts.autoUnref && this.ws._socket.unref(), this.onOpen();\n }, this.ws.onclose = (e) => this.onClose({\n description: \"websocket connection closed\",\n context: e\n }), this.ws.onmessage = (e) => this.onData(e.data), this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(e) {\n this.writable = !1;\n for (let t = 0; t < e.length; t++) {\n const n = e[t], i = t === e.length - 1;\n J(n, this.supportsBinary, (r) => {\n const o = {};\n try {\n ne && this.ws.send(r);\n } catch {\n }\n i && $(() => {\n this.writable = !0, this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n });\n }\n }\n doClose() {\n typeof this.ws < \"u\" && (this.ws.close(), this.ws = null);\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const e = this.opts.secure ? \"wss\" : \"ws\", t = this.query || {};\n return this.opts.timestampRequests && (t[this.opts.timestampParam] = ye()), this.supportsBinary || (t.b64 = 1), this.createUri(e, t);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!R;\n }\n}\nclass Ye extends G {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n typeof WebTransport == \"function\" && (this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]), this.transport.closed.then(() => {\n this.onClose();\n }).catch((e) => {\n this.onError(\"webtransport error\", e);\n }), this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((e) => {\n const t = Ie(Number.MAX_SAFE_INTEGER, this.socket.binaryType), n = e.readable.pipeThrough(t).getReader(), i = Ne();\n i.readable.pipeTo(e.writable), this.writer = i.writable.getWriter();\n const r = () => {\n n.read().then(({ done: c, value: h }) => {\n c || (this.onPacket(h), r());\n }).catch((c) => {\n });\n };\n r();\n const o = { type: \"open\" };\n this.query.sid && (o.data = `{\"sid\":\"${this.query.sid}\"}`), this.writer.write(o).then(() => this.onOpen());\n });\n }));\n }\n write(e) {\n this.writable = !1;\n for (let t = 0; t < e.length; t++) {\n const n = e[t], i = t === e.length - 1;\n this.writer.write(n).then(() => {\n i && $(() => {\n this.writable = !0, this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n });\n }\n }\n doClose() {\n var e;\n (e = this.transport) === null || e === void 0 || e.close();\n }\n}\nconst ze = {\n websocket: $e,\n webtransport: Ye,\n polling: Ke\n}, Qe = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/, je = [\n \"source\",\n \"protocol\",\n \"authority\",\n \"userInfo\",\n \"user\",\n \"password\",\n \"host\",\n \"port\",\n \"relative\",\n \"path\",\n \"directory\",\n \"file\",\n \"query\",\n \"anchor\"\n];\nfunction V(s) {\n if (s.length > 2e3)\n throw \"URI too long\";\n const e = s, t = s.indexOf(\"[\"), n = s.indexOf(\"]\");\n t != -1 && n != -1 && (s = s.substring(0, t) + s.substring(t, n).replace(/:/g, \";\") + s.substring(n, s.length));\n let i = Qe.exec(s || \"\"), r = {}, o = 14;\n for (; o--; )\n r[je[o]] = i[o] || \"\";\n return t != -1 && n != -1 && (r.source = e, r.host = r.host.substring(1, r.host.length - 1).replace(/;/g, \":\"), r.authority = r.authority.replace(\"[\", \"\").replace(\"]\", \"\").replace(/;/g, \":\"), r.ipv6uri = !0), r.pathNames = Xe(r, r.path), r.queryKey = Ze(r, r.query), r;\n}\nfunction Xe(s, e) {\n const t = /\\/{2,9}/g, n = e.replace(t, \"/\").split(\"/\");\n return (e.slice(0, 1) == \"/\" || e.length === 0) && n.splice(0, 1), e.slice(-1) == \"/\" && n.splice(n.length - 1, 1), n;\n}\nfunction Ze(s, e) {\n const t = {};\n return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function(n, i, r) {\n i && (t[i] = r);\n }), t;\n}\nlet be = class k extends l {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(e, t = {}) {\n super(), this.binaryType = Ge, this.writeBuffer = [], e && typeof e == \"object\" && (t = e, e = null), e ? (e = V(e), t.hostname = e.host, t.secure = e.protocol === \"https\" || e.protocol === \"wss\", t.port = e.port, e.query && (t.query = e.query)) : t.host && (t.hostname = V(t.host).host), x(this, t), this.secure = t.secure != null ? t.secure : typeof location < \"u\" && location.protocol === \"https:\", t.hostname && !t.port && (t.port = this.secure ? \"443\" : \"80\"), this.hostname = t.hostname || (typeof location < \"u\" ? location.hostname : \"localhost\"), this.port = t.port || (typeof location < \"u\" && location.port ? location.port : this.secure ? \"443\" : \"80\"), this.transports = t.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\"\n ], this.writeBuffer = [], this.prevBufferLen = 0, this.opts = Object.assign({\n path: \"/engine.io\",\n agent: !1,\n withCredentials: !1,\n upgrade: !0,\n timestampParam: \"t\",\n rememberUpgrade: !1,\n addTrailingSlash: !0,\n rejectUnauthorized: !0,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: !1\n }, t), this.opts.path = this.opts.path.replace(/\\/$/, \"\") + (this.opts.addTrailingSlash ? \"/\" : \"\"), typeof this.opts.query == \"string\" && (this.opts.query = Me(this.opts.query)), this.id = null, this.upgrades = null, this.pingInterval = null, this.pingTimeout = null, this.pingTimeoutTimer = null, typeof addEventListener == \"function\" && (this.opts.closeOnBeforeunload && (this.beforeunloadEventListener = () => {\n this.transport && (this.transport.removeAllListeners(), this.transport.close());\n }, addEventListener(\"beforeunload\", this.beforeunloadEventListener, !1)), this.hostname !== \"localhost\" && (this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n }, addEventListener(\"offline\", this.offlineEventListener, !1))), this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(e) {\n const t = Object.assign({}, this.opts.query);\n t.EIO = de, t.transport = e, this.id && (t.sid = this.id);\n const n = Object.assign({}, this.opts, {\n query: t,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n }, this.opts.transportOptions[e]);\n return new ze[e](n);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let e;\n if (this.opts.rememberUpgrade && k.priorWebsocketSuccess && this.transports.indexOf(\"websocket\") !== -1)\n e = \"websocket\";\n else if (this.transports.length === 0) {\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n } else\n e = this.transports[0];\n this.readyState = \"opening\";\n try {\n e = this.createTransport(e);\n } catch {\n this.transports.shift(), this.open();\n return;\n }\n e.open(), this.setTransport(e);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(e) {\n this.transport && this.transport.removeAllListeners(), this.transport = e, e.on(\"drain\", this.onDrain.bind(this)).on(\"packet\", this.onPacket.bind(this)).on(\"error\", this.onError.bind(this)).on(\"close\", (t) => this.onClose(\"transport close\", t));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(e) {\n let t = this.createTransport(e), n = !1;\n k.priorWebsocketSuccess = !1;\n const i = () => {\n n || (t.send([{ type: \"ping\", data: \"probe\" }]), t.once(\"packet\", (v) => {\n if (!n)\n if (v.type === \"pong\" && v.data === \"probe\") {\n if (this.upgrading = !0, this.emitReserved(\"upgrading\", t), !t)\n return;\n k.priorWebsocketSuccess = t.name === \"websocket\", this.transport.pause(() => {\n n || this.readyState !== \"closed\" && (m(), this.setTransport(t), t.send([{ type: \"upgrade\" }]), this.emitReserved(\"upgrade\", t), t = null, this.upgrading = !1, this.flush());\n });\n } else {\n const p = new Error(\"probe error\");\n p.transport = t.name, this.emitReserved(\"upgradeError\", p);\n }\n }));\n };\n function r() {\n n || (n = !0, m(), t.close(), t = null);\n }\n const o = (v) => {\n const p = new Error(\"probe error: \" + v);\n p.transport = t.name, r(), this.emitReserved(\"upgradeError\", p);\n };\n function c() {\n o(\"transport closed\");\n }\n function h() {\n o(\"socket closed\");\n }\n function y(v) {\n t && v.name !== t.name && r();\n }\n const m = () => {\n t.removeListener(\"open\", i), t.removeListener(\"error\", o), t.removeListener(\"close\", c), this.off(\"close\", h), this.off(\"upgrading\", y);\n };\n t.once(\"open\", i), t.once(\"error\", o), t.once(\"close\", c), this.once(\"close\", h), this.once(\"upgrading\", y), this.upgrades.indexOf(\"webtransport\") !== -1 && e !== \"webtransport\" ? this.setTimeoutFn(() => {\n n || t.open();\n }, 200) : t.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n if (this.readyState = \"open\", k.priorWebsocketSuccess = this.transport.name === \"websocket\", this.emitReserved(\"open\"), this.flush(), this.readyState === \"open\" && this.opts.upgrade) {\n let e = 0;\n const t = this.upgrades.length;\n for (; e < t; e++)\n this.probe(this.upgrades[e]);\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(e) {\n if (this.readyState === \"opening\" || this.readyState === \"open\" || this.readyState === \"closing\")\n switch (this.emitReserved(\"packet\", e), this.emitReserved(\"heartbeat\"), this.resetPingTimeout(), e.type) {\n case \"open\":\n this.onHandshake(JSON.parse(e.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\"), this.emitReserved(\"ping\"), this.emitReserved(\"pong\");\n break;\n case \"error\":\n const t = new Error(\"server error\");\n t.code = e.data, this.onError(t);\n break;\n case \"message\":\n this.emitReserved(\"data\", e.data), this.emitReserved(\"message\", e.data);\n break;\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(e) {\n this.emitReserved(\"handshake\", e), this.id = e.sid, this.transport.query.sid = e.sid, this.upgrades = this.filterUpgrades(e.upgrades), this.pingInterval = e.pingInterval, this.pingTimeout = e.pingTimeout, this.maxPayload = e.maxPayload, this.onOpen(), this.readyState !== \"closed\" && this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer), this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout), this.opts.autoUnref && this.pingTimeoutTimer.unref();\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, this.writeBuffer.length === 0 ? this.emitReserved(\"drain\") : this.flush();\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (this.readyState !== \"closed\" && this.transport.writable && !this.upgrading && this.writeBuffer.length) {\n const e = this.getWritablePackets();\n this.transport.send(e), this.prevBufferLen = e.length, 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 getWritablePackets() {\n if (!(this.maxPayload && this.transport.name === \"polling\" && this.writeBuffer.length > 1))\n return this.writeBuffer;\n let t = 1;\n for (let n = 0; n < this.writeBuffer.length; n++) {\n const i = this.writeBuffer[n].data;\n if (i && (t += De(i)), n > 0 && t > this.maxPayload)\n return this.writeBuffer.slice(0, n);\n t += 2;\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 write(e, t, n) {\n return this.sendPacket(\"message\", e, t, n), this;\n }\n send(e, t, n) {\n return this.sendPacket(\"message\", e, t, n), 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 sendPacket(e, t, n, i) {\n if (typeof t == \"function\" && (i = t, t = void 0), typeof n == \"function\" && (i = n, n = null), this.readyState === \"closing\" || this.readyState === \"closed\")\n return;\n n = n || {}, n.compress = n.compress !== !1;\n const r = {\n type: e,\n data: t,\n options: n\n };\n this.emitReserved(\"packetCreate\", r), this.writeBuffer.push(r), i && this.once(\"flush\", i), this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const e = () => {\n this.onClose(\"forced close\"), this.transport.close();\n }, t = () => {\n this.off(\"upgrade\", t), this.off(\"upgradeError\", t), e();\n }, n = () => {\n this.once(\"upgrade\", t), this.once(\"upgradeError\", t);\n };\n return (this.readyState === \"opening\" || this.readyState === \"open\") && (this.readyState = \"closing\", this.writeBuffer.length ? this.once(\"drain\", () => {\n this.upgrading ? n() : e();\n }) : this.upgrading ? n() : e()), this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(e) {\n k.priorWebsocketSuccess = !1, this.emitReserved(\"error\", e), this.onClose(\"transport error\", e);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(e, t) {\n (this.readyState === \"opening\" || this.readyState === \"open\" || this.readyState === \"closing\") && (this.clearTimeoutFn(this.pingTimeoutTimer), this.transport.removeAllListeners(\"close\"), this.transport.close(), this.transport.removeAllListeners(), typeof removeEventListener == \"function\" && (removeEventListener(\"beforeunload\", this.beforeunloadEventListener, !1), removeEventListener(\"offline\", this.offlineEventListener, !1)), this.readyState = \"closed\", this.id = null, this.emitReserved(\"close\", e, t), this.writeBuffer = [], this.prevBufferLen = 0);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(e) {\n const t = [];\n let n = 0;\n const i = e.length;\n for (; n < i; n++)\n ~this.transports.indexOf(e[n]) && t.push(e[n]);\n return t;\n }\n};\nbe.protocol = de;\nfunction et(s, e = \"\", t) {\n let n = s;\n t = t || typeof location < \"u\" && location, s == null && (s = t.protocol + \"//\" + t.host), typeof s == \"string\" && (s.charAt(0) === \"/\" && (s.charAt(1) === \"/\" ? s = t.protocol + s : s = t.host + s), /^(https?|wss?):\\/\\//.test(s) || (typeof t < \"u\" ? s = t.protocol + \"//\" + s : s = \"https://\" + s), n = V(s)), n.port || (/^(http|ws)$/.test(n.protocol) ? n.port = \"80\" : /^(http|ws)s$/.test(n.protocol) && (n.port = \"443\")), n.path = n.path || \"/\";\n const r = n.host.indexOf(\":\") !== -1 ? \"[\" + n.host + \"]\" : n.host;\n return n.id = n.protocol + \"://\" + r + \":\" + n.port + e, n.href = n.protocol + \"://\" + r + (t && t.port === n.port ? \"\" : \":\" + n.port), n;\n}\nconst tt = typeof ArrayBuffer == \"function\", st = (s) => typeof ArrayBuffer.isView == \"function\" ? ArrayBuffer.isView(s) : s.buffer instanceof ArrayBuffer, Ee = Object.prototype.toString, nt = typeof Blob == \"function\" || typeof Blob < \"u\" && Ee.call(Blob) === \"[object BlobConstructor]\", it = typeof File == \"function\" || typeof File < \"u\" && Ee.call(File) === \"[object FileConstructor]\";\nfunction Y(s) {\n return tt && (s instanceof ArrayBuffer || st(s)) || nt && s instanceof Blob || it && s instanceof File;\n}\nfunction L(s, e) {\n if (!s || typeof s != \"object\")\n return !1;\n if (Array.isArray(s)) {\n for (let t = 0, n = s.length; t < n; t++)\n if (L(s[t]))\n return !0;\n return !1;\n }\n if (Y(s))\n return !0;\n if (s.toJSON && typeof s.toJSON == \"function\" && arguments.length === 1)\n return L(s.toJSON(), !0);\n for (const t in s)\n if (Object.prototype.hasOwnProperty.call(s, t) && L(s[t]))\n return !0;\n return !1;\n}\nfunction rt(s) {\n const e = [], t = s.data, n = s;\n return n.data = F(t, e), n.attachments = e.length, { packet: n, buffers: e };\n}\nfunction F(s, e) {\n if (!s)\n return s;\n if (Y(s)) {\n const t = { _placeholder: !0, num: e.length };\n return e.push(s), t;\n } else if (Array.isArray(s)) {\n const t = new Array(s.length);\n for (let n = 0; n < s.length; n++)\n t[n] = F(s[n], e);\n return t;\n } else if (typeof s == \"object\" && !(s instanceof Date)) {\n const t = {};\n for (const n in s)\n Object.prototype.hasOwnProperty.call(s, n) && (t[n] = F(s[n], e));\n return t;\n }\n return s;\n}\nfunction ot(s, e) {\n return s.data = W(s.data, e), delete s.attachments, s;\n}\nfunction W(s, e) {\n if (!s)\n return s;\n if (s && s._placeholder === !0) {\n if (typeof s.num == \"number\" && s.num >= 0 && s.num < e.length)\n return e[s.num];\n throw new Error(\"illegal attachments\");\n } else if (Array.isArray(s))\n for (let t = 0; t < s.length; t++)\n s[t] = W(s[t], e);\n else if (typeof s == \"object\")\n for (const t in s)\n Object.prototype.hasOwnProperty.call(s, t) && (s[t] = W(s[t], e));\n return s;\n}\nconst at = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\"\n // used by the Node.js EventEmitter\n], ct = 5;\nvar a;\n(function(s) {\n s[s.CONNECT = 0] = \"CONNECT\", s[s.DISCONNECT = 1] = \"DISCONNECT\", s[s.EVENT = 2] = \"EVENT\", s[s.ACK = 3] = \"ACK\", s[s.CONNECT_ERROR = 4] = \"CONNECT_ERROR\", s[s.BINARY_EVENT = 5] = \"BINARY_EVENT\", s[s.BINARY_ACK = 6] = \"BINARY_ACK\";\n})(a || (a = {}));\nclass ht {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(e) {\n this.replacer = e;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(e) {\n return (e.type === a.EVENT || e.type === a.ACK) && L(e) ? this.encodeAsBinary({\n type: e.type === a.EVENT ? a.BINARY_EVENT : a.BINARY_ACK,\n nsp: e.nsp,\n data: e.data,\n id: e.id\n }) : [this.encodeAsString(e)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(e) {\n let t = \"\" + e.type;\n return (e.type === a.BINARY_EVENT || e.type === a.BINARY_ACK) && (t += e.attachments + \"-\"), e.nsp && e.nsp !== \"/\" && (t += e.nsp + \",\"), e.id != null && (t += e.id), e.data != null && (t += JSON.stringify(e.data, this.replacer)), t;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(e) {\n const t = rt(e), n = this.encodeAsString(t.packet), i = t.buffers;\n return i.unshift(n), i;\n }\n}\nfunction re(s) {\n return Object.prototype.toString.call(s) === \"[object Object]\";\n}\nclass z extends l {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(e) {\n super(), this.reviver = e;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(e) {\n let t;\n if (typeof e == \"string\") {\n if (this.reconstructor)\n throw new Error(\"got plaintext data when reconstructing a packet\");\n t = this.decodeString(e);\n const n = t.type === a.BINARY_EVENT;\n n || t.type === a.BINARY_ACK ? (t.type = n ? a.EVENT : a.ACK, this.reconstructor = new ut(t), t.attachments === 0 && super.emitReserved(\"decoded\", t)) : super.emitReserved(\"decoded\", t);\n } else if (Y(e) || e.base64)\n if (this.reconstructor)\n t = this.reconstructor.takeBinaryData(e), t && (this.reconstructor = null, super.emitReserved(\"decoded\", t));\n else\n throw new Error(\"got binary data when not reconstructing a packet\");\n else\n throw new Error(\"Unknown type: \" + e);\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(e) {\n let t = 0;\n const n = {\n type: Number(e.charAt(0))\n };\n if (a[n.type] === void 0)\n throw new Error(\"unknown packet type \" + n.type);\n if (n.type === a.BINARY_EVENT || n.type === a.BINARY_ACK) {\n const r = t + 1;\n for (; e.charAt(++t) !== \"-\" && t != e.length; )\n ;\n const o = e.substring(r, t);\n if (o != Number(o) || e.charAt(t) !== \"-\")\n throw new Error(\"Illegal attachments\");\n n.attachments = Number(o);\n }\n if (e.charAt(t + 1) === \"/\") {\n const r = t + 1;\n for (; ++t && !(e.charAt(t) === \",\" || t === e.length); )\n ;\n n.nsp = e.substring(r, t);\n } else\n n.nsp = \"/\";\n const i = e.charAt(t + 1);\n if (i !== \"\" && Number(i) == i) {\n const r = t + 1;\n for (; ++t; ) {\n const o = e.charAt(t);\n if (o == null || Number(o) != o) {\n --t;\n break;\n }\n if (t === e.length)\n break;\n }\n n.id = Number(e.substring(r, t + 1));\n }\n if (e.charAt(++t)) {\n const r = this.tryParse(e.substr(t));\n if (z.isPayloadValid(n.type, r))\n n.data = r;\n else\n throw new Error(\"invalid payload\");\n }\n return n;\n }\n tryParse(e) {\n try {\n return JSON.parse(e, this.reviver);\n } catch {\n return !1;\n }\n }\n static isPayloadValid(e, t) {\n switch (e) {\n case a.CONNECT:\n return re(t);\n case a.DISCONNECT:\n return t === void 0;\n case a.CONNECT_ERROR:\n return typeof t == \"string\" || re(t);\n case a.EVENT:\n case a.BINARY_EVENT:\n return Array.isArray(t) && (typeof t[0] == \"number\" || typeof t[0] == \"string\" && at.indexOf(t[0]) === -1);\n case a.ACK:\n case a.BINARY_ACK:\n return Array.isArray(t);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n this.reconstructor && (this.reconstructor.finishedReconstruction(), this.reconstructor = null);\n }\n}\nclass ut {\n constructor(e) {\n this.packet = e, this.buffers = [], this.reconPack = e;\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 takeBinaryData(e) {\n if (this.buffers.push(e), this.buffers.length === this.reconPack.attachments) {\n const t = ot(this.reconPack, this.buffers);\n return this.finishedReconstruction(), t;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null, this.buffers = [];\n }\n}\nconst lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Decoder: z,\n Encoder: ht,\n get PacketType() {\n return a;\n },\n protocol: ct\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction w(s, e, t) {\n return s.on(e, t), function() {\n s.off(e, t);\n };\n}\nconst ft = 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});\nclass ve extends l {\n /**\n * `Socket` constructor.\n */\n constructor(e, t, n) {\n super(), this.connected = !1, this.recovered = !1, this.receiveBuffer = [], this.sendBuffer = [], this._queue = [], this._queueSeq = 0, this.ids = 0, this.acks = {}, this.flags = {}, this.io = e, this.nsp = t, n && n.auth && (this.auth = n.auth), this._opts = Object.assign({}, n), this.io._autoConnect && this.open();\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 get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const e = this.io;\n this.subs = [\n w(e, \"open\", this.onopen.bind(this)),\n w(e, \"packet\", this.onpacket.bind(this)),\n w(e, \"error\", this.onerror.bind(this)),\n w(e, \"close\", this.onclose.bind(this))\n ];\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 get active() {\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 connect() {\n return this.connected ? this : (this.subEvents(), this.io._reconnecting || this.io.open(), this.io._readyState === \"open\" && this.onopen(), this);\n }\n /**\n * Alias for {@link connect()}.\n */\n 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 send(...e) {\n return e.unshift(\"message\"), this.emit.apply(this, e), 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 emit(e, ...t) {\n if (ft.hasOwnProperty(e))\n throw new Error('\"' + e.toString() + '\" is a reserved event name');\n if (t.unshift(e), this._opts.retries && !this.flags.fromQueue && !this.flags.volatile)\n return this._addToQueue(t), this;\n const n = {\n type: a.EVENT,\n data: t\n };\n if (n.options = {}, n.options.compress = this.flags.compress !== !1, typeof t[t.length - 1] == \"function\") {\n const o = this.ids++, c = t.pop();\n this._registerAckCallback(o, c), n.id = o;\n }\n const i = this.io.engine && this.io.engine.transport && this.io.engine.transport.writable;\n return this.flags.volatile && (!i || !this.connected) || (this.connected ? (this.notifyOutgoingListeners(n), this.packet(n)) : this.sendBuffer.push(n)), this.flags = {}, this;\n }\n /**\n * @private\n */\n _registerAckCallback(e, t) {\n var n;\n const i = (n = this.flags.timeout) !== null && n !== void 0 ? n : this._opts.ackTimeout;\n if (i === void 0) {\n this.acks[e] = t;\n return;\n }\n const r = this.io.setTimeoutFn(() => {\n delete this.acks[e];\n for (let o = 0; o < this.sendBuffer.length; o++)\n this.sendBuffer[o].id === e && this.sendBuffer.splice(o, 1);\n t.call(this, new Error(\"operation has timed out\"));\n }, i);\n this.acks[e] = (...o) => {\n this.io.clearTimeoutFn(r), t.apply(this, [null, ...o]);\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 emitWithAck(e, ...t) {\n const n = this.flags.timeout !== void 0 || this._opts.ackTimeout !== void 0;\n return new Promise((i, r) => {\n t.push((o, c) => n ? o ? r(o) : i(c) : i(o)), this.emit(e, ...t);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(e) {\n let t;\n typeof e[e.length - 1] == \"function\" && (t = e.pop());\n const n = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: !1,\n args: e,\n flags: Object.assign({ fromQueue: !0 }, this.flags)\n };\n e.push((i, ...r) => n !== this._queue[0] ? void 0 : (i !== null ? n.tryCount > this._opts.retries && (this._queue.shift(), t && t(i)) : (this._queue.shift(), t && t(null, ...r)), n.pending = !1, this._drainQueue())), this._queue.push(n), this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(e = !1) {\n if (!this.connected || this._queue.length === 0)\n return;\n const t = this._queue[0];\n t.pending && !e || (t.pending = !0, t.tryCount++, this.flags = t.flags, this.emit.apply(this, t.args));\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(e) {\n e.nsp = this.nsp, this.io._packet(e);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n typeof this.auth == \"function\" ? this.auth((e) => {\n this._sendConnectPacket(e);\n }) : this._sendConnectPacket(this.auth);\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(e) {\n this.packet({\n type: a.CONNECT,\n data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, e) : e\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(e) {\n this.connected || this.emitReserved(\"connect_error\", e);\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(e, t) {\n this.connected = !1, delete this.id, this.emitReserved(\"disconnect\", e, t);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(e) {\n if (e.nsp === this.nsp)\n switch (e.type) {\n case a.CONNECT:\n e.data && e.data.sid ? this.onconnect(e.data.sid, e.data.pid) : 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 break;\n case a.EVENT:\n case a.BINARY_EVENT:\n this.onevent(e);\n break;\n case a.ACK:\n case a.BINARY_ACK:\n this.onack(e);\n break;\n case a.DISCONNECT:\n this.ondisconnect();\n break;\n case a.CONNECT_ERROR:\n this.destroy();\n const n = new Error(e.data.message);\n n.data = e.data.data, this.emitReserved(\"connect_error\", n);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(e) {\n const t = e.data || [];\n e.id != null && t.push(this.ack(e.id)), this.connected ? this.emitEvent(t) : this.receiveBuffer.push(Object.freeze(t));\n }\n emitEvent(e) {\n if (this._anyListeners && this._anyListeners.length) {\n const t = this._anyListeners.slice();\n for (const n of t)\n n.apply(this, e);\n }\n super.emit.apply(this, e), this._pid && e.length && typeof e[e.length - 1] == \"string\" && (this._lastOffset = e[e.length - 1]);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(e) {\n const t = this;\n let n = !1;\n return function(...i) {\n n || (n = !0, t.packet({\n type: a.ACK,\n id: e,\n data: i\n }));\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(e) {\n const t = this.acks[e.id];\n typeof t == \"function\" && (t.apply(this, e.data), delete this.acks[e.id]);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(e, t) {\n this.id = e, this.recovered = t && this._pid === t, this._pid = t, this.connected = !0, this.emitBuffered(), this.emitReserved(\"connect\"), this._drainQueue(!0);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((e) => this.emitEvent(e)), this.receiveBuffer = [], this.sendBuffer.forEach((e) => {\n this.notifyOutgoingListeners(e), this.packet(e);\n }), this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy(), 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 destroy() {\n this.subs && (this.subs.forEach((e) => e()), this.subs = void 0), 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 disconnect() {\n return this.connected && this.packet({ type: a.DISCONNECT }), this.destroy(), this.connected && this.onclose(\"io client disconnect\"), this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n 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 compress(e) {\n return this.flags.compress = e, 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 get volatile() {\n return this.flags.volatile = !0, 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 timeout(e) {\n return this.flags.timeout = e, 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 onAny(e) {\n return this._anyListeners = this._anyListeners || [], this._anyListeners.push(e), 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 prependAny(e) {\n return this._anyListeners = this._anyListeners || [], this._anyListeners.unshift(e), 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 offAny(e) {\n if (!this._anyListeners)\n return this;\n if (e) {\n const t = this._anyListeners;\n for (let n = 0; n < t.length; n++)\n if (e === t[n])\n return t.splice(n, 1), this;\n } else\n this._anyListeners = [];\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 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 onAnyOutgoing(e) {\n return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.push(e), 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 prependAnyOutgoing(e) {\n return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.unshift(e), 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 offAnyOutgoing(e) {\n if (!this._anyOutgoingListeners)\n return this;\n if (e) {\n const t = this._anyOutgoingListeners;\n for (let n = 0; n < t.length; n++)\n if (e === t[n])\n return t.splice(n, 1), this;\n } else\n this._anyOutgoingListeners = [];\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 listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(e) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const t = this._anyOutgoingListeners.slice();\n for (const n of t)\n n.apply(this, e.data);\n }\n }\n}\nfunction _(s) {\n s = s || {}, this.ms = s.min || 100, this.max = s.max || 1e4, this.factor = s.factor || 2, this.jitter = s.jitter > 0 && s.jitter <= 1 ? s.jitter : 0, this.attempts = 0;\n}\n_.prototype.duration = function() {\n var s = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var e = Math.random(), t = Math.floor(e * this.jitter * s);\n s = Math.floor(e * 10) & 1 ? s + t : s - t;\n }\n return Math.min(s, this.max) | 0;\n};\n_.prototype.reset = function() {\n this.attempts = 0;\n};\n_.prototype.setMin = function(s) {\n this.ms = s;\n};\n_.prototype.setMax = function(s) {\n this.max = s;\n};\n_.prototype.setJitter = function(s) {\n this.jitter = s;\n};\nclass H extends l {\n constructor(e, t) {\n var n;\n super(), this.nsps = {}, this.subs = [], e && typeof e == \"object\" && (t = e, e = void 0), t = t || {}, t.path = t.path || \"/socket.io\", this.opts = t, x(this, t), this.reconnection(t.reconnection !== !1), this.reconnectionAttempts(t.reconnectionAttempts || 1 / 0), this.reconnectionDelay(t.reconnectionDelay || 1e3), this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), this.randomizationFactor((n = t.randomizationFactor) !== null && n !== void 0 ? n : 0.5), this.backoff = new _({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n }), this.timeout(t.timeout == null ? 2e4 : t.timeout), this._readyState = \"closed\", this.uri = e;\n const i = t.parser || lt;\n this.encoder = new i.Encoder(), this.decoder = new i.Decoder(), this._autoConnect = t.autoConnect !== !1, this._autoConnect && this.open();\n }\n reconnection(e) {\n return arguments.length ? (this._reconnection = !!e, this) : this._reconnection;\n }\n reconnectionAttempts(e) {\n return e === void 0 ? this._reconnectionAttempts : (this._reconnectionAttempts = e, this);\n }\n reconnectionDelay(e) {\n var t;\n return e === void 0 ? this._reconnectionDelay : (this._reconnectionDelay = e, (t = this.backoff) === null || t === void 0 || t.setMin(e), this);\n }\n randomizationFactor(e) {\n var t;\n return e === void 0 ? this._randomizationFactor : (this._randomizationFactor = e, (t = this.backoff) === null || t === void 0 || t.setJitter(e), this);\n }\n reconnectionDelayMax(e) {\n var t;\n return e === void 0 ? this._reconnectionDelayMax : (this._reconnectionDelayMax = e, (t = this.backoff) === null || t === void 0 || t.setMax(e), this);\n }\n timeout(e) {\n return arguments.length ? (this._timeout = e, this) : this._timeout;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n !this._reconnecting && this._reconnection && this.backoff.attempts === 0 && this.reconnect();\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(e) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new be(this.uri, this.opts);\n const t = this.engine, n = this;\n this._readyState = \"opening\", this.skipReconnect = !1;\n const i = w(t, \"open\", function() {\n n.onopen(), e && e();\n }), r = (c) => {\n this.cleanup(), this._readyState = \"closed\", this.emitReserved(\"error\", c), e ? e(c) : this.maybeReconnectOnOpen();\n }, o = w(t, \"error\", r);\n if (this._timeout !== !1) {\n const c = this._timeout, h = this.setTimeoutFn(() => {\n i(), r(new Error(\"timeout\")), t.close();\n }, c);\n this.opts.autoUnref && h.unref(), this.subs.push(() => {\n this.clearTimeoutFn(h);\n });\n }\n return this.subs.push(i), this.subs.push(o), this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(e) {\n return this.open(e);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n this.cleanup(), this._readyState = \"open\", this.emitReserved(\"open\");\n const e = this.engine;\n this.subs.push(w(e, \"ping\", this.onping.bind(this)), w(e, \"data\", this.ondata.bind(this)), w(e, \"error\", this.onerror.bind(this)), w(e, \"close\", this.onclose.bind(this)), w(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(e) {\n try {\n this.decoder.add(e);\n } catch (t) {\n this.onclose(\"parse error\", t);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(e) {\n $(() => {\n this.emitReserved(\"packet\", e);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(e) {\n this.emitReserved(\"error\", e);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(e, t) {\n let n = this.nsps[e];\n return n ? this._autoConnect && !n.active && n.connect() : (n = new ve(this, e, t), this.nsps[e] = n), n;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(e) {\n const t = Object.keys(this.nsps);\n for (const n of t)\n if (this.nsps[n].active)\n return;\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(e) {\n const t = this.encoder.encode(e);\n for (let n = 0; n < t.length; n++)\n this.engine.write(t[n], e.options);\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((e) => e()), this.subs.length = 0, this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = !0, this._reconnecting = !1, this.onclose(\"forced close\"), this.engine && this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(e, t) {\n this.cleanup(), this.backoff.reset(), this._readyState = \"closed\", this.emitReserved(\"close\", e, t), this._reconnection && !this.skipReconnect && this.reconnect();\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const e = this;\n if (this.backoff.attempts >= this._reconnectionAttempts)\n this.backoff.reset(), this.emitReserved(\"reconnect_failed\"), this._reconnecting = !1;\n else {\n const t = this.backoff.duration();\n this._reconnecting = !0;\n const n = this.setTimeoutFn(() => {\n e.skipReconnect || (this.emitReserved(\"reconnect_attempt\", e.backoff.attempts), !e.skipReconnect && e.open((i) => {\n i ? (e._reconnecting = !1, e.reconnect(), this.emitReserved(\"reconnect_error\", i)) : e.onreconnect();\n }));\n }, t);\n this.opts.autoUnref && n.unref(), this.subs.push(() => {\n this.clearTimeoutFn(n);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const e = this.backoff.attempts;\n this._reconnecting = !1, this.backoff.reset(), this.emitReserved(\"reconnect\", e);\n }\n}\nconst O = {};\nfunction B(s, e) {\n typeof s == \"object\" && (e = s, s = void 0), e = e || {};\n const t = et(s, e.path || \"/socket.io\"), n = t.source, i = t.id, r = t.path, o = O[i] && r in O[i].nsps, c = e.forceNew || e[\"force new connection\"] || e.multiplex === !1 || o;\n let h;\n return c ? h = new H(n, e) : (O[i] || (O[i] = new H(n, e)), h = O[i]), t.query && !e.query && (e.query = t.queryKey), h.socket(t.path, e);\n}\nObject.assign(B, {\n Manager: H,\n Socket: ve,\n io: B,\n connect: B\n});\nlet N;\nconst dt = new Uint8Array(16);\nfunction pt() {\n if (!N && (N = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !N))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return N(dt);\n}\nconst f = [];\nfor (let s = 0; s < 256; ++s)\n f.push((s + 256).toString(16).slice(1));\nfunction gt(s, e = 0) {\n return f[s[e + 0]] + f[s[e + 1]] + f[s[e + 2]] + f[s[e + 3]] + \"-\" + f[s[e + 4]] + f[s[e + 5]] + \"-\" + f[s[e + 6]] + f[s[e + 7]] + \"-\" + f[s[e + 8]] + f[s[e + 9]] + \"-\" + f[s[e + 10]] + f[s[e + 11]] + f[s[e + 12]] + f[s[e + 13]] + f[s[e + 14]] + f[s[e + 15]];\n}\nconst yt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), oe = {\n randomUUID: yt\n};\nfunction mt(s, e, t) {\n if (oe.randomUUID && !e && !s)\n return oe.randomUUID();\n s = s || {};\n const n = s.random || (s.rng || pt)();\n if (n[6] = n[6] & 15 | 64, n[8] = n[8] & 63 | 128, e) {\n t = t || 0;\n for (let i = 0; i < 16; ++i)\n e[t + i] = n[i];\n return e;\n }\n return gt(n);\n}\nfunction wt(s, e) {\n const t = e.map((i) => JSON.stringify(i)).join(\" \"), n = (/* @__PURE__ */ new Date()).toISOString();\n return JSON.stringify({\n level: s,\n time: n,\n message: t\n });\n}\nfunction bt(s, e) {\n const t = JSON.parse(s);\n return e.forEach((n) => delete t[n]), t;\n}\nfunction Et(s) {\n if (typeof s == \"object\" && s !== null)\n return s;\n try {\n return JSON.parse(s);\n } catch {\n return { extraData: s };\n }\n}\nfunction vt(s) {\n const e = /\\(([^)]+)\\)/, t = s.match(e);\n if (t && t[1]) {\n const n = t[1].split(\";\");\n for (let i of n)\n if (i = i.trim(), i.startsWith(\"Windows\") || i.startsWith(\"Macintosh\") || i.startsWith(\"Linux\"))\n return i;\n }\n return \"Unknown\";\n}\nfunction ae(s) {\n return (...e) => new Promise((t, n) => {\n try {\n const i = s(...e);\n t(i);\n } catch (i) {\n n(i);\n }\n });\n}\nconst kt = {\n reconnection: !0,\n reconnectionDelay: 5e3,\n reconnectionAttempts: 10,\n //perMessageDeflate: false,\n upgrade: !1,\n transports: [\"websocket\"],\n debug: !1\n}, q = {\n logToConsole: !0,\n overloadGlobalConsole: !1,\n socketEmitInterval: 6e4\n}, At = {\n CREATE: \"Create\",\n READ: \"Read\",\n UPDATE: \"Update\",\n DELETE: \"Delete\",\n CONVERT: \"Convert\",\n DOWNLOAD: \"Download\",\n UPLOAD: \"Upload\",\n ENCRYPT: \"Encrypt\",\n DECRYPT: \"Decrypt\",\n FILTER: \"Filter\",\n INPUT: \"Input\",\n OUTPUT: \"Output\",\n PLUGIN: \"Plugin\",\n LOGIN: \"Login\",\n LOGOUT: \"Logout\",\n REFRESH: \"Refresh\",\n CHECK: \"Check\",\n WEBHOOK: \"Webhook\",\n WSCONNECT: \"WSConnect\"\n}, _t = {\n Create: 1,\n Read: 2,\n Update: 3,\n Delete: 4,\n Convert: 5,\n Download: 6,\n Upload: 7,\n Encrypt: 8,\n Decrypt: 9,\n Filter: 10,\n Input: 11,\n Output: 12,\n Plugin: 13,\n Login: 14,\n Logout: 15,\n Refresh: 16,\n Check: 17,\n Webhook: 18,\n WSConnect: 19\n}, Ct = {\n INFO: \"info\",\n WARNING: \"warning\",\n MODIFY: \"modify\",\n ERROR: \"error\",\n VIEW: \"view\"\n}, St = {\n INFO: \"info\",\n WARNING: \"warning\",\n ERROR: \"error\",\n DEBUG: \"debug\"\n}, Tt = {\n USER: \"User\",\n ACCOUNT: \"Account\"\n}, Rt = {\n USER: \"UserName\",\n ACCOUNT: \"AccountName\",\n EXTENSION: \"ExtensionName\"\n}, Nt = {\n USER: \"UserID\",\n ACCOUNT: \"AccountID\",\n EXTENSION: \"ExtensionID\"\n}, It = {\n USER: \"User ID\",\n ACCOUNT: \"Account ID\",\n EXTENSION: \"Extension ID\",\n CAMPAIGN: \"Campaign ID\",\n QUEUE: \"Queue ID\"\n}, Lt = {\n USER: \"User\",\n ACCOUNT: \"Account\",\n EXTENSION: \"Extension\",\n CAMPAIGN: \"Campaign\",\n QUEUE: \"Queue\"\n};\nlet d = console;\nclass Bt {\n /**\n * Initialize storage logger\n * @param options The configuration of the logger.\n */\n constructor(e) {\n u(this, \"logToConsole\");\n u(this, \"overloadGlobalConsole\");\n u(this, \"system\");\n u(this, \"socketEmitInterval\");\n u(this, \"storageId\");\n u(this, \"emitInProgress\");\n u(this, \"queue\");\n u(this, \"processing\");\n u(this, \"storageInitialized\");\n u(this, \"interval\");\n u(this, \"logIndex\");\n u(this, \"socket\");\n u(this, \"requestUrl\");\n u(this, \"staticObject\", {});\n u(this, \"localObject\", {});\n u(this, \"isGetItemAsync\");\n u(this, \"isSetItemAsync\");\n u(this, \"getItem\");\n u(this, \"setItem\");\n u(this, \"parseLog\");\n u(this, \"_logMethod\");\n u(this, \"_warnMethod\");\n u(this, \"_errorMethod\");\n u(this, \"_debugMethod\");\n const { loggerOptions: t } = e;\n if (!t.system)\n throw new Error(\"Config property 'system' should be provided!\");\n this.isGetItemAsync = t.isGetItemAsync || !1, this.isSetItemAsync = t.isSetItemAsync || !1, this.setupStorageFunctions(t.getItem, t.setItem, t.parseLog), this.system = t.system, this.socketEmitInterval = t.socketEmitInterval || q.socketEmitInterval, this.logToConsole = t.logToConsole !== void 0 ? t.logToConsole : q.logToConsole, this.overloadGlobalConsole = t.overloadGlobalConsole !== void 0 ? t.overloadGlobalConsole : q.overloadGlobalConsole, this.storageId = this.getStorageName(), this.queue = [], this.processing = !1, this.storageInitialized = !1, this.emitInProgress = !1, this.logIndex = 0, this.init(e);\n }\n /**\n * Used to setup storage functions and logs parser function.\n * @param getItemFunction Function for getting item from storage.\n * @param setItemFunction Function for setting item to storage.\n * @param parseLogFunction Function for parsing logs.\n * @return void\n */\n setupStorageFunctions(e, t, n) {\n this.getItem = e && typeof e == \"function\" ? this.isGetItemAsync ? e : ae(e) : this.defaultGetItemFunction, this.setItem = t && typeof t == \"function\" ? this.isSetItemAsync ? t : ae(t) : this.defaultSetItemFunction, this.parseLog = n && typeof n == \"function\" ? n : wt;\n }\n /**\n * Used to send http log request.\n * @param logs logs array which is sent in request body.\n * @return {Promise<Response>}\n */\n sendHttpRequest(e) {\n if (!this.requestUrl)\n throw new Error(\"requestUrl is not provided\");\n const t = {\n Data: e\n };\n return fetch(this.requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(t)\n });\n }\n /**\n * Used to initialize logger. Initializes storage, establishes socket connection and overloads console if needed\n * @param options The logger config.\n * @return void\n */\n init(e) {\n const { socket: t, url: n, requestUrl: i, socketOptions: r = {} } = e;\n this._logMethod = d.log.bind(d), this._warnMethod = d.warn.bind(d), this._errorMethod = d.error.bind(d), this._debugMethod = d.debug.bind(d), this.initStorage().then(() => {\n if (t)\n this.socket = t;\n else if (n)\n this.socket = this.createConnection(n, r);\n else if (i)\n this.requestUrl = i;\n else\n throw new Error(\"Must provide either a 'socket', 'requestUrl' or a 'url' for logger requests\");\n this.interval = setInterval(async () => {\n await this.emitLogs();\n }, this.socketEmitInterval), this.overloadGlobalConsole && this._overloadConsole();\n });\n }\n /**\n * Used to initialize new socket connection\n * @param url The url used for the socket connection.\n * @param options The options used for the socket connection.\n * @return void\n */\n createConnection(e, t) {\n let n = {\n ...kt\n };\n return t && (n = {\n ...n,\n ...t\n }), B(e, n);\n }\n /**\n * Emits stored logs to the server and clears the log storage in case the emit operation was successful\n * @return {Promise<void>}\n */\n async emitLogs() {\n if (!this.emitInProgress)\n try {\n const e = await this.getItem(this.storageId), t = JSON.parse(e || \"{}\"), n = {\n ...this.localObject,\n ...t\n };\n if (!Object.keys(n).length)\n return;\n const i = [];\n this.emitInProgress = !0;\n const r = Object.keys(n);\n if (!r.length)\n return;\n if ((!this.socket || !this.socket.connected) && !this.requestUrl)\n throw new Error(\"Log request can't be sent. Socket is disconnected or requestUrl is not provided\");\n const o = [];\n for (const y of r) {\n const m = Et(n[y]), v = {\n ...this.staticObject,\n ...m\n }, p = this.populateSendingLog(v);\n p.Body && typeof p.Body == \"string\" && (p.Body = JSON.parse(p.Body)), this.socket ? this.socket.emit(\"Log\", p) : this.requestUrl && o.push(p), i.push(y);\n }\n o.length && await this.sendHttpRequest(o);\n const c = await this.getItem(this.storageId);\n if (!c)\n return;\n const h = bt(c, i);\n this.localObject = {}, await this.setItem(this.storageId, JSON.stringify(h));\n } catch (e) {\n this._errorMethod(e);\n } finally {\n this.emitInProgress = !1;\n }\n }\n /**\n * Used to set additional properties for every sending log\n * @return LoggerDataInner\n */\n populateSendingLog(e) {\n const t = {\n ...e\n }, n = t.ActionName;\n return n && (t.ActionID = _t[n]), t;\n }\n /**\n * Used to set a static object which will be send in every message\n * @return void\n */\n setupStaticFields(e) {\n this.staticObject = { ...e };\n }\n /**\n * Used to populate sending message object with static client parameters\n * @return object\n */\n populateMetaData() {\n const e = /* @__PURE__ */ new Date();\n let t;\n typeof window < \"u\" && typeof window.document < \"u\" ? t = window == null ? void 0 : window.navigator.userAgent : typeof self < \"u\" && self.navigator && (t = self.navigator.userAgent);\n let n;\n return t && (n = vt(t)), {\n System: this.system,\n DateTime: e,\n UserAgent: t,\n OSVersion: n\n };\n }\n /**\n * Used to stop logger and interrupt socket connection\n * @return void\n */\n async stop() {\n !this.socket || !this.socket.connected || (clearInterval(this.interval), await this.emitLogs(), this.socket.disconnect());\n }\n /**\n * Used to start logger and reconnect socket connection\n * @return void\n */\n async start() {\n var e;\n this.socket && this.socket.connected || ((e = this.socket) == null || e.connect(), this.interval = setInterval(async () => {\n await this.emitLogs();\n }, this.socketEmitInterval));\n }\n /**\n * Used to overload the global console object by logger methods.\n * @return void\n */\n _overloadConsole() {\n d = Object.assign(\n d,\n {\n log: (e) => {\n this.log(e);\n },\n warn: (e) => {\n this.warn(e);\n },\n error: (e) => {\n this.error(e);\n },\n debug: (e) => {\n this.debug(e);\n }\n }\n );\n }\n /**\n * Used to initialize the storage if it wasn't created before.\n * @return void\n */\n async initStorage() {\n const e = await this.getItem(this.storageId);\n (!e || typeof e != \"string\") && (await this.setItem(this.storageId, JSON.stringify({})), this.storageInitialized = !0);\n }\n /**\n * Reset log storage\n * @return void\n */\n async resetStorage() {\n await this.setItem(this.storageId, JSON.stringify({}));\n }\n /**\n * Get storage name which is used to access the logs storage\n * @return string\n */\n getStorageName() {\n const e = mt();\n return this.system.toString().toUpperCase() + e + Date.now();\n }\n /**\n * Does common logic for logging data.\n * @param args The arguments of the log where the first argument contains the log level and other\n * arguments are logs to be stored\n * @return void\n */\n async processLog(...e) {\n try {\n if (e.length < 2)\n return;\n const t = e[0], n = e[1], i = this.formItemKey(t);\n if (!this.storageInitialized) {\n this.localObject = {\n ...this.localObject,\n [i]: n\n };\n return;\n }\n const r = await this.getItem(this.storageId);\n if (!r)\n return;\n const o = JSON.parse(r);\n o[i] = JSON.stringify(n), await this.setItem(this.storageId, JSON.stringify(o));\n } catch (t) {\n this._errorMethod(t);\n }\n }\n /**\n * Used to process logs queue.\n * @return Promise<void>\n */\n async processQueue() {\n if (this.processing || this.queue.length === 0)\n return;\n const e = this.queue.shift();\n e && (this.processing = !0, await this.processLog(...e).finally(() => {\n this.processing = !1, this.processQueue();\n }));\n }\n /**\n * Logs info data into the storage\n * @param logData The arguments to be logged.\n * @return void\n */\n log(e) {\n const n = {\n ...this.populateMetaData(),\n ...e\n }, i = [\"INFO\", n];\n this.queue.push(i), this.logToConsole && this._logMethod.apply(d, [n]), this.processQueue();\n }\n /**\n * Logs warn data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n warn(e) {\n const t = [\"WARN\", e];\n this.queue.push(t), this.logToConsole && this._warnMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * Logs error data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n error(e) {\n const t = [\"ERROR\", e];\n this.queue.push(t), this.logToConsole && this._errorMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * Logs debug data into the storage\n * @param args The arguments to be logged.\n * @return void\n */\n debug(e) {\n const t = [\"DEBUG\", e];\n this.queue.push(t), this.logToConsole && this._debugMethod.apply(d, [e]), this.processQueue();\n }\n /**\n * The default method for getting logs from storage\n * @param storageId The identifier of storage where logs are stored.\n * @return string || null\n */\n async defaultGetItemFunction(e) {\n return localStorage.getItem(e);\n }\n /**\n * The default method for setting logs into the storage\n * @param storageId The identifier of storage where to store the logs.\n * @param logs The logs to be stored.\n * @return void\n */\n async defaultSetItemFunction(e, t) {\n try {\n localStorage.setItem(e, t);\n } catch (n) {\n this._errorMethod(n);\n }\n }\n /**\n * Used to form a key which will be used to store a log in the storage\n * @param level The log level. For example: Info, Warn, Error etc..\n * @return string\n */\n formItemKey(e) {\n const t = (/* @__PURE__ */ new Date()).toISOString();\n return this.logIndex++, `${e}-${this.system}-${t}-${this.logIndex}`;\n }\n}\nexport {\n _t as ActionIDEnum,\n At as ActionNameEnum,\n It as EntityIDEnum,\n Lt as EntityTypeEnum,\n Nt as IdentityIDEnum,\n Rt as IdentityNameEnum,\n Tt as IdentityTypeEnum,\n St as LevelEnum,\n Ct as LogTypeEnum,\n Bt as default,\n kt as defaultConnectOptions,\n q as defaultLoggerOptions\n};\n//# sourceMappingURL=storage-logger.es.js.map\n","import { Socket } from 'socket.io-client'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\nimport type { LoggerDataPartial } from '@voicenter-team/socketio-storage-logger'\nimport StorageLogger, { ActionNameEnum, LevelEnum, LogTypeEnum } from '@voicenter-team/socketio-storage-logger'\nimport { LoginType } from '@/enum/auth.enum'\nimport { EventsEnum, KeepAliveResponseEvent } from '@voicenter-team/real-time-events-types'\nimport { DebugOption } from '@/enum/events-sdk.enum'\nimport { EventDataMap, EventTypeNames } from '@/types/events'\n\nexport class LoggerClass {\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n }\n\n private storageLogger: StorageLogger | undefined\n\n public init () {\n if (!this.eventsSdkClass.options.useLogger) {\n return\n }\n\n if (this.eventsSdkClass.options.storageLoggerInstance) {\n this.storageLogger = this.eventsSdkClass.options.storageLoggerInstance\n\n return\n }\n\n let socket: Socket | undefined\n\n if (this.eventsSdkClass.options.loggerSocketConnection) {\n socket = this.eventsSdkClass.options.loggerSocketConnection\n }\n\n if (this.eventsSdkClass.socketIoClass.ioFunction && !socket) {\n socket = this.eventsSdkClass.socketIoClass.ioFunction(\n this.eventsSdkClass.options.loggerServer,\n this.eventsSdkClass.options.loggerConnectOptions\n )\n }\n\n if (socket) {\n this.storageLogger = new StorageLogger<LoggerDataPartial>({\n socket,\n loggerOptions: this.eventsSdkClass.options.loggerConfig\n })\n }\n }\n\n async start () {\n if (!this.storageLogger) {\n return\n }\n\n await this.storageLogger.start()\n }\n\n stop () {\n if (!this.storageLogger) {\n return\n }\n\n this.storageLogger.stop()\n }\n\n public log (data: LoggerDataPartial) {\n if (this.eventsSdkClass.options.useLogger) {\n if (this.storageLogger) {\n if (data.Level === LevelEnum.INFO) {\n this.storageLogger.log(data)\n } else if (data.Level === LevelEnum.ERROR) {\n this.storageLogger.error(data)\n }\n } else {\n if (data.Level === LevelEnum.INFO) {\n console.log(data)\n } else if (data.Level === LevelEnum.ERROR) {\n console.error(data)\n }\n }\n }\n }\n\n public sdkConnectionSuccess () {\n const replacedOptions = {\n ...this.eventsSdkClass.options,\n token: 'CENSORED',\n password: 'CENSORED'\n }\n\n this.log({\n Message: `Sdk connected to the socket server ${this.eventsSdkClass.server && this.eventsSdkClass.server.Domain ? this.eventsSdkClass.server.Domain : this.eventsSdkClass.URL}`,\n Body: JSON.stringify(replacedOptions, this.eventsSdkClass.getCircularReplacer()),\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection established',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkDisconnect (reasons: string[]) {\n this.log({\n Message: `Sdk disconnected from the socket server ${this.eventsSdkClass.server && this.eventsSdkClass.server.Domain ? this.eventsSdkClass.server.Domain : this.eventsSdkClass.URL} (${reasons})`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection closed',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkAttemptToConnect (domain?: string) {\n this.log({\n Message: `${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${domain}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Switching Protocols',\n StatusCode: 101,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public sdkAttemptToConnectError (error: Error) {\n this.log({\n Message: `${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Connection error',\n StatusCode: 500,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public loginError (loginType: LoginType, statusCode?: number, token?: string, email?: string,) {\n this.log({\n Message: `External login request error with the login type ${loginType} ${loginType === LoginType.TOKEN ? token : email}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'External login error',\n StatusCode: statusCode ? statusCode : 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public getSettingsError (token: string, error: Error) {\n this.log({\n Message: `Get settings error with token ${token}, error: ${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Get settings error',\n StatusCode: 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public refreshTokenError (oldRefreshToken: string, refreshTokenUrl: string, error: Error) {\n this.log({\n Message: `Refresh token error with old refresh token ${oldRefreshToken}, url: ${refreshTokenUrl}, error: ${error}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Get settings error',\n StatusCode: 400,\n Level: LevelEnum.ERROR,\n LogType: LogTypeEnum.ERROR\n })\n }\n\n public keepAliveEmit () {\n this.log({\n Message: `Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public keepAliveResponse (data: KeepAliveResponseEvent) {\n this.log({\n Message: `Keep alive response: ${JSON.stringify(data)}`,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Successful',\n StatusCode: 200,\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n\n public eventLog<T extends EventTypeNames> (\n eventName: T,\n data: EventDataMap[T]\n ) {\n const eventLogMap: Record<DebugOption, EventsEnum[]> = {\n [DebugOption.FULL]: [],\n [DebugOption.BOOTSTRAP]: [ EventsEnum.LOGIN_STATUS, EventsEnum.LOGIN_SUCCESS, EventsEnum.ALL_EXTENSION_STATUS, EventsEnum.ALL_DIALER_STATUS ],\n [DebugOption.DEBUG_EXTENSIONS]: [ EventsEnum.ALL_EXTENSION_STATUS, EventsEnum.EXTENSION_EVENT, EventsEnum.EXTENSIONS_UPDATED ],\n [DebugOption.DEBUG_DIALER]: [ EventsEnum.ALL_DIALER_STATUS, EventsEnum.DIALER_EVENT ],\n [DebugOption.DEBUG_QUEUE]: [ EventsEnum.QUEUE_EVENT ]\n }\n\n if (this.eventsSdkClass.options.debugOption) {\n if (\n eventLogMap[this.eventsSdkClass.options.debugOption].includes(eventName) ||\n this.eventsSdkClass.options.debugOption === DebugOption.FULL\n ) {\n this.log({\n Message: `Event name: ${eventName}`,\n Body: data,\n ActionName: ActionNameEnum.WSCONNECT,\n isShowClient: false,\n Status: 'Successful',\n Level: LevelEnum.INFO,\n LogType: LogTypeEnum.INFO\n })\n }\n }\n }\n}\n","import type {\n EventCallbackListenersMap,\n EventData,\n EventSpecificCallback,\n EventTypeData,\n EventTypeNames,\n GenericEventWrapper,\n} from '@/types/events'\nimport { EventsEnum } from '@voicenter-team/real-time-events-types'\nimport EventsSdkClass from '@/classes/events-sdk/events-sdk.class'\n\nexport class EventEmitterClass {\n private listeners: EventCallbackListenersMap = {\n [EventsEnum.ALL_EXTENSION_STATUS]: [],\n [EventsEnum.ALL_DIALER_STATUS]: [],\n [EventsEnum.ALL_USERS_STATUS]: [],\n [EventsEnum.QUEUE_EVENT]: [],\n [EventsEnum.EXTENSION_EVENT]: [],\n [EventsEnum.DIALER_EVENT]: [],\n [EventsEnum.LOGIN_SUCCESS]: [],\n [EventsEnum.LOGIN_STATUS]: [],\n [EventsEnum.KEEP_ALIVE_RESPONSE]: [],\n [EventsEnum.ONLINE_STATUS_EVENT]: [],\n [EventsEnum.EXTENSIONS_UPDATED]: []\n }\n private allListeners: Array<(data: GenericEventWrapper) => void> = []\n\n constructor (private readonly eventsSdkClass: EventsSdkClass) {\n this.eventsSdkClass = eventsSdkClass\n }\n\n public on (event: unknown, callback: unknown) {\n if (event === '*') {\n this.allListeners.push(callback as (data: GenericEventWrapper) => void)\n } else {\n // Handle specific event type with strong typing\n this.listeners[event as EventTypeNames].push(callback as EventSpecificCallback<EventTypeNames>)\n }\n }\n\n public off<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void\n public off (event: '*', callback: (data: GenericEventWrapper) => void): void\n public off (event: unknown, callback: unknown) {\n if (event === '*') {\n this.allListeners = this.allListeners.filter(item => item !== callback)\n } else {\n const data = this.listeners[event as EventTypeNames] as Array<EventSpecificCallback<EventTypeNames>>\n const filtered = data.filter(item => item !== callback)\n\n this.listeners = {\n ...this.listeners,\n [event as EventTypeNames]: filtered\n }\n }\n }\n\n public emit <T extends EventTypeNames> (event: T, data: EventTypeData<T>) {\n this.eventsSdkClass.socketIoClass.lastEventTimestamp = new Date().getTime()\n\n this.listeners[event].forEach(callback => callback({\n name: event,\n data\n }))\n\n const allEventData: GenericEventWrapper = {\n name: event,\n data: data as EventData\n }\n\n this.allListeners.forEach((callback) => callback(allEventData))\n }\n}\n","import AuthClass from '@/classes/auth/auth.class'\nimport { eventsSdkDefaultOptions } from '@/classes/events-sdk/events-sdk-default-options'\nimport { SocketIoClass } from '@/classes/socket-io/socket-io.class'\nimport {\n EventsSdkOptionsBase,\n Server\n} from '@/classes/events-sdk/events-sdk.types'\nimport { ServerParameter } from '@/enum/events-sdk.enum'\nimport type {\n EventsSdkOptionsClient,\n EventsSdkOptionsMain\n} from '@/classes/events-sdk/events-sdk.types'\nimport type {\n ServerEmitEventCallbackRegistry,\n ServerEmitEventTypeNames,\n SocketTyped\n} from '@/types/socket'\nimport type {\n EventSpecificCallback,\n EventTypeNames,\n GenericEventWrapper,\n} from '@/types/events'\nimport { LoggerClass } from '@/classes/logger/logger.class'\nimport { EventEmitterClass } from '@/classes/event-emitter/event-emitter.class'\n\nclass EventsSdkClass {\n public readonly options: EventsSdkOptionsMain & EventsSdkOptionsBase\n public servers: Server[] = []\n public URLList: string[] = []\n public server: Server | undefined\n public URL: string | undefined\n public socket: SocketTyped | undefined\n private mainServer: Server | undefined\n\n private alreadyAttemptedOtherServers: Array<number | string> = []\n\n public authClass = new AuthClass(this)\n public socketIoClass = new SocketIoClass(this)\n public loggerClass = new LoggerClass(this)\n public eventEmitterClass = new EventEmitterClass(this)\n\n constructor (options: EventsSdkOptionsClient) {\n this.options = {\n ...eventsSdkDefaultOptions,\n ...options\n }\n }\n\n public on<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void\n public on (event: '*', callback: (data: GenericEventWrapper) => void): void\n public on (event: unknown, callback: unknown): void {\n this.eventEmitterClass.on(event, callback)\n }\n\n public emit <T extends ServerEmitEventTypeNames> (event: T, ...args: Parameters<ServerEmitEventCallbackRegistry[T]>) {\n if (this.socketIoClass.io) {\n this.socketIoClass.io.emit(event, ...args)\n }\n }\n\n public connect (serverParameter: ServerParameter) {\n if (serverParameter === ServerParameter.MAIN) {\n this.findMainServer()\n }\n\n if (serverParameter === ServerParameter.NEXT) {\n this.findNextServer()\n }\n\n this.socketIoClass.doReconnect = true\n\n try {\n this.loggerClass.init()\n } catch (e) {\n console.error(e)\n }\n\n this.socketIoClass.initSocketConnection()\n\n this.socketIoClass.initSocketEvents()\n\n this.socketIoClass.initKeepAlive()\n }\n\n public disconnect () {\n this.socketIoClass.doReconnect = false\n\n this.socketIoClass.closeAllConnections()\n\n this.loggerClass.stop()\n }\n\n public clearKeepAliveInterval () {\n this.socketIoClass.clearKeepAliveInterval()\n }\n\n private findMainServer () {\n if (this.servers.length) {\n this.mainServer = this.servers.reduce((prev, cur) => {\n return cur.Priority > prev.Priority ? cur : prev\n })\n\n this.server = this.mainServer\n } else {\n if (this.URLList.length) {\n this.URL = this.URLList[0]\n }\n }\n }\n\n private findNextServer () {\n if (this.servers.length && this.server) {\n if (this.server.Priority === this.mainServer!.Priority) {\n let filteredServers = this.servers.filter(\n server =>\n server.Priority !== this.mainServer!.Priority &&\n this.alreadyAttemptedOtherServers.indexOf(server.Priority) + 1 === 0\n )\n\n if (!filteredServers.length) {\n this.alreadyAttemptedOtherServers = []\n\n filteredServers = this.servers.filter(\n server =>\n server.Priority !== this.mainServer!.Priority &&\n this.alreadyAttemptedOtherServers.indexOf(server.Priority) + 1 === 0\n )\n }\n\n if (filteredServers.length) {\n this.server = filteredServers.reduce((prev, cur) => {\n return cur.Priority > prev.Priority ? cur : prev\n })\n\n this.alreadyAttemptedOtherServers.push(this.server.Priority)\n }\n } else {\n this.server = this.mainServer!\n }\n } else {\n if (this.URLList.length) {\n if (this.URL === this.URLList[0]) {\n let filteredServers = this.URLList.filter(\n url =>\n url !== this.URLList[0] &&\n this.alreadyAttemptedOtherServers.indexOf(url) + 1 === 0\n )\n\n if (!filteredServers.length) {\n this.alreadyAttemptedOtherServers = []\n\n filteredServers = this.URLList.filter(\n url =>\n url !== this.URLList[0] &&\n this.alreadyAttemptedOtherServers.indexOf(url) + 1 === 0\n )\n }\n\n if (filteredServers.length) {\n this.URL = filteredServers[0]\n\n this.alreadyAttemptedOtherServers.push(this.URL)\n }\n } else {\n this.URL = this.URLList[0]\n }\n }\n }\n }\n\n public async init () {\n const loginSessionData = await this.authClass.login()\n\n if (loginSessionData) {\n this.authClass.onLoginResponse(loginSessionData)\n }\n\n return true\n }\n\n public getCircularReplacer = () => {\n const seen = new WeakSet()\n return (key: string, value: object) => {\n // Custom handling for specific circular references\n if (key === 'socket' || key === 'io' || key === 'nsps') {\n return undefined\n }\n\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return\n }\n seen.add(value)\n }\n return value\n }\n }\n\n public getCurrentMonitorServer (): Server | undefined {\n return this.server\n }\n}\n\nexport default EventsSdkClass\n"],"names":["base64map","crypt","n","b","i","bytes","words","hex","c","base64","triplet","j","imod4","cryptModule","charenc","str","charenc_1","isBuffer_1","obj","isBuffer","isSlowBuffer","require$$0","utf8","require$$1","require$$2","bin","md5","message","options","m","l","a","d","FF","GG","HH","II","aa","bb","cc","dd","x","s","t","md5Module","digestbytes","DebugOption","ServerParameter","LoginType","StorageClass","key","doParse","loginSessionKey","storageData","AuthClass","eventsSdkClass","__publicField","payload","loginSessionData","loginType","externalLoginResponse","settings","prev","current","date","timeout","maxAllowedTimeout","refreshTokenResponse","url","password","token","email","body","statusCode","res","data","error","refreshTokenUrl","oldRefreshToken","eventsSdkDefaultOptions","v1_3_7","ws","e","r","o","p","f","u","h","g","w","v","y","k","A","B","C","S","E","T","_","P","R","N","O","U","q","D","I","L","importModules","SOCKET_NAME_REGEX","isSocketIoFn","socket","sockets","acc","currentValue","module","moduleName","_a","getSocketVersion","version","sockets$1","args","CallStatusEnum","CallTypeEnum","ConnectionStatusEnum","DialerTypeEnum","DirectionEnum","DoNotCallMeStatusCodeEnum","EventsEnum","ExtensionEventReasonEnum","ExtensionHangupCauseEnum","QueueEventReasonEnum","EventsHandler","reason","dataExtended","currentCallExtended","extensionExtended","call","callExtended","_b","extension","queue","value","properties","servertime","servertimeoffset","serverTimeUTC","diffServerAndClient","extendedProperties","property","valueFormatted","baseTime","ServerListenerEventsEnum","SocketIoClass","Client","parsedArray","protocol","server","domain","eventName","ke","_e","ce","he","ue","J","Q","Oe","X","Ae","Ce","K","le","Se","fe","Te","Re","Ne","Ie","de","Le","pe","Be","xe","Ue","De","qe","Pe","Me","Ve","G","ge","M","Fe","Z","ee","te","ye","me","We","we","He","Je","Ke","se","$","ne","Ge","ie","$e","Ye","ze","Qe","je","V","Xe","Ze","be","et","tt","st","Ee","nt","it","Y","rt","F","ot","W","at","ct","ht","re","z","ut","lt","ft","ve","H","dt","pt","gt","yt","oe","mt","wt","bt","Et","vt","ae","kt","At","_t","Ct","St","Bt","LoggerClass","StorageLogger","LevelEnum","replacedOptions","ActionNameEnum","LogTypeEnum","reasons","eventLogMap","EventEmitterClass","event","callback","item","filtered","allEventData","EventsSdkClass","seen","serverParameter","cur","filteredServers"],"mappings":"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","x_google_ignoreList":[0,1,2,3,11,12,13,14,15,16,17,18,19,20]}