{"version":3,"file":"index.cjs","sources":["../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/OverloadYield.js","../node_modules/@babel/runtime/helpers/regeneratorDefine.js","../node_modules/@babel/runtime/helpers/regenerator.js","../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","../node_modules/@babel/runtime/helpers/regeneratorAsync.js","../node_modules/@babel/runtime/helpers/regeneratorKeys.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/regeneratorValues.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../src/utils/ipUtils.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io/component-emitter/lib/esm/index.js","../node_modules/engine.io-client/build/esm/globals.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/url.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../src/config/config.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/api/firewallApi.js","../src/services/firewallService.js","../src/components/ProtectedPage.jsx","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../src/services/threatDetectionService.js","../src/components/EnhancedProtectedPage.jsx"],"sourcesContent":["function asyncGeneratorStep(n, t, e, r, o, a, c) {\n  try {\n    var i = n[a](c),\n      u = i.value;\n  } catch (n) {\n    return void e(n);\n  }\n  i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n  return function () {\n    var t = this,\n      e = arguments;\n    return new Promise(function (r, o) {\n      var a = n.apply(t, e);\n      function _next(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n      }\n      function _throw(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n      }\n      _next(void 0);\n    });\n  };\n}\nexport { _asyncToGenerator as default };","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _OverloadYield(e, d) {\n  this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n  var i = Object.defineProperty;\n  try {\n    i({}, \"\", {});\n  } catch (e) {\n    i = 0;\n  }\n  module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n    if (r) i ? i(e, r, {\n      value: n,\n      enumerable: !t,\n      configurable: !t,\n      writable: !t\n    }) : e[r] = n;else {\n      var o = function o(r, n) {\n        _regeneratorDefine(e, r, function (e) {\n          return this._invoke(r, n, e);\n        });\n      };\n      o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2);\n    }\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n  var e,\n    t,\n    r = \"function\" == typeof Symbol ? Symbol : {},\n    n = r.iterator || \"@@iterator\",\n    o = r.toStringTag || \"@@toStringTag\";\n  function i(r, n, o, i) {\n    var c = n && n.prototype instanceof Generator ? n : Generator,\n      u = Object.create(c.prototype);\n    return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n      var i,\n        c,\n        u,\n        f = 0,\n        p = o || [],\n        y = !1,\n        G = {\n          p: 0,\n          n: 0,\n          v: e,\n          a: d,\n          f: d.bind(e, 4),\n          d: function d(t, r) {\n            return i = t, c = 0, u = e, G.n = r, a;\n          }\n        };\n      function d(r, n) {\n        for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n          var o,\n            i = p[t],\n            d = G.p,\n            l = i[2];\n          r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n        }\n        if (o || r > 1) return a;\n        throw y = !0, n;\n      }\n      return function (o, p, l) {\n        if (f > 1) throw TypeError(\"Generator is already running\");\n        for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n          i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n          try {\n            if (f = 2, i) {\n              if (c || (o = \"next\"), t = i[o]) {\n                if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n                if (!t.done) return t;\n                u = t.value, c < 2 && (c = 0);\n              } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n              i = e;\n            } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n          } catch (t) {\n            i = e, c = 1, u = t;\n          } finally {\n            f = 1;\n          }\n        }\n        return {\n          value: t,\n          done: y\n        };\n      };\n    }(r, o, i), !0), u;\n  }\n  var a = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  t = Object.getPrototypeOf;\n  var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n      return this;\n    }), t),\n    u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n  function f(e) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n    return this;\n  }), regeneratorDefine(u, \"toString\", function () {\n    return \"[object Generator]\";\n  }), (module.exports = _regenerator = function _regenerator() {\n    return {\n      w: i,\n      m: f\n    };\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n  function n(r, o, i, f) {\n    try {\n      var c = t[r](o),\n        u = c.value;\n      return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n        n(\"next\", t, i, f);\n      }, function (t) {\n        n(\"throw\", t, i, f);\n      }) : e.resolve(u).then(function (t) {\n        c.value = t, i(c);\n      }, function (t) {\n        return n(\"throw\", t, i, f);\n      });\n    } catch (t) {\n      f(t);\n    }\n  }\n  var r;\n  this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n    return this;\n  })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n    function f() {\n      return new e(function (e, r) {\n        n(t, i, e, r);\n      });\n    }\n    return r = r ? r.then(f, f) : f();\n  }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n  return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n  var a = regeneratorAsyncGen(n, e, r, t, o);\n  return a.next().then(function (n) {\n    return n.done ? n.value : a.next();\n  });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n  var n = Object(e),\n    r = [];\n  for (var t in n) r.unshift(t);\n  return function e() {\n    for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n    return e.done = !0, e;\n  };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n  if (null != e) {\n    var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n      r = 0;\n    if (t) return t.call(e);\n    if (\"function\" == typeof e.next) return e;\n    if (!isNaN(e.length)) return {\n      next: function next() {\n        return e && r >= e.length && (e = void 0), {\n          value: e && e[r++],\n          done: !e\n        };\n      }\n    };\n  }\n  throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n  \"use strict\";\n\n  var r = regenerator(),\n    e = r.m(_regeneratorRuntime),\n    t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n  function n(r) {\n    var e = \"function\" == typeof r && r.constructor;\n    return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n  }\n  var o = {\n    \"throw\": 1,\n    \"return\": 2,\n    \"break\": 3,\n    \"continue\": 3\n  };\n  function a(r) {\n    var e, t;\n    return function (n) {\n      e || (e = {\n        stop: function stop() {\n          return t(n.a, 2);\n        },\n        \"catch\": function _catch() {\n          return n.v;\n        },\n        abrupt: function abrupt(r, e) {\n          return t(n.a, o[r], e);\n        },\n        delegateYield: function delegateYield(r, o, a) {\n          return e.resultName = o, t(n.d, regeneratorValues(r), a);\n        },\n        finish: function finish(r) {\n          return t(n.f, r);\n        }\n      }, t = function t(r, _t, o) {\n        n.p = e.prev, n.n = e.next;\n        try {\n          return r(_t, o);\n        } finally {\n          e.next = n.n;\n        }\n      }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n      try {\n        return r.call(this, e);\n      } finally {\n        n.p = e.prev, n.n = e.next;\n      }\n    };\n  }\n  return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n    return {\n      wrap: function wrap(e, t, n, o) {\n        return r.w(a(e), t, n, o && o.reverse());\n      },\n      isGeneratorFunction: n,\n      mark: r.m,\n      awrap: function awrap(r, e) {\n        return new OverloadYield(r, e);\n      },\n      AsyncIterator: regeneratorAsyncIterator,\n      async: function async(r, e, t, o, u) {\n        return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n      },\n      keys: regeneratorKeys,\n      values: regeneratorValues\n    };\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","// Multiple IP services for fallback\r\nconst IP_SERVICES = [\r\n  \"https://api.ipify.org?format=json\",\r\n  \"https://api64.ipify.org?format=json\",\r\n  \"https://api.my-ip.io/ip.json\",\r\n  \"https://ipapi.co/json/\",\r\n];\r\n\r\nexport const getUserIP = async () => {\r\n  for (let i = 0; i < IP_SERVICES.length; i++) {\r\n    try {\r\n      const response = await fetch(IP_SERVICES[i], {\r\n        timeout: 5000, // 5 second timeout\r\n      });\r\n\r\n      if (!response.ok) {\r\n        throw new Error(`HTTP ${response.status}`);\r\n      }\r\n\r\n      const data = await response.json();\r\n\r\n      // Different services return IP in different formats\r\n      const ip = data.ip || data.query || data.IPv4 || data.origin;\r\n\r\n      if (ip && isValidIP(ip)) {\r\n        return ip;\r\n      }\r\n    } catch (error) {\r\n      console.warn(`IP service ${IP_SERVICES[i]} failed:`, error.message);\r\n      continue; // Try next service\r\n    }\r\n  }\r\n\r\n  console.error(\"All IP services failed\");\r\n  return null;\r\n};\r\n\r\n// Basic IP validation\r\nexport const isValidIP = (ip) => {\r\n  const ipv4Regex =\r\n    /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\r\n  const ipv6Regex = /^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;\r\n  return ipv4Regex.test(ip) || ipv6Regex.test(ip);\r\n};\r\n","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n    PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n    (typeof Blob !== \"undefined\" &&\n        Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n    return typeof ArrayBuffer.isView === \"function\"\n        ? ArrayBuffer.isView(obj)\n        : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n    if (withNativeBlob && data instanceof Blob) {\n        if (supportsBinary) {\n            return callback(data);\n        }\n        else {\n            return encodeBlobAsBase64(data, callback);\n        }\n    }\n    else if (withNativeArrayBuffer &&\n        (data instanceof ArrayBuffer || isView(data))) {\n        if (supportsBinary) {\n            return callback(data);\n        }\n        else {\n            return encodeBlobAsBase64(new Blob([data]), callback);\n        }\n    }\n    // plain string\n    return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n    const fileReader = new FileReader();\n    fileReader.onload = function () {\n        const content = fileReader.result.split(\",\")[1];\n        callback(\"b\" + (content || \"\"));\n    };\n    return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n    if (data instanceof Uint8Array) {\n        return data;\n    }\n    else if (data instanceof ArrayBuffer) {\n        return new Uint8Array(data);\n    }\n    else {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n    }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n    if (withNativeBlob && packet.data instanceof Blob) {\n        return packet.data.arrayBuffer().then(toArray).then(callback);\n    }\n    else if (withNativeArrayBuffer &&\n        (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n        return callback(toArray(packet.data));\n    }\n    encodePacket(packet, false, (encoded) => {\n        if (!TEXT_ENCODER) {\n            TEXT_ENCODER = new TextEncoder();\n        }\n        callback(TEXT_ENCODER.encode(encoded));\n    });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n    let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n    for (i = 0; i < len; i += 3) {\n        base64 += chars[bytes[i] >> 2];\n        base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n        base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n        base64 += chars[bytes[i + 2] & 63];\n    }\n    if (len % 3 === 2) {\n        base64 = base64.substring(0, base64.length - 1) + '=';\n    }\n    else if (len % 3 === 1) {\n        base64 = base64.substring(0, base64.length - 2) + '==';\n    }\n    return base64;\n};\nexport const decode = (base64) => {\n    let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n    if (base64[base64.length - 1] === '=') {\n        bufferLength--;\n        if (base64[base64.length - 2] === '=') {\n            bufferLength--;\n        }\n    }\n    const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n    for (i = 0; i < len; i += 4) {\n        encoded1 = lookup[base64.charCodeAt(i)];\n        encoded2 = lookup[base64.charCodeAt(i + 1)];\n        encoded3 = lookup[base64.charCodeAt(i + 2)];\n        encoded4 = lookup[base64.charCodeAt(i + 3)];\n        bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n        bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n        bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n    return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n    if (typeof encodedPacket !== \"string\") {\n        return {\n            type: \"message\",\n            data: mapBinary(encodedPacket, binaryType),\n        };\n    }\n    const type = encodedPacket.charAt(0);\n    if (type === \"b\") {\n        return {\n            type: \"message\",\n            data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n        };\n    }\n    const packetType = PACKET_TYPES_REVERSE[type];\n    if (!packetType) {\n        return ERROR_PACKET;\n    }\n    return encodedPacket.length > 1\n        ? {\n            type: PACKET_TYPES_REVERSE[type],\n            data: encodedPacket.substring(1),\n        }\n        : {\n            type: PACKET_TYPES_REVERSE[type],\n        };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n    if (withNativeArrayBuffer) {\n        const decoded = decode(data);\n        return mapBinary(decoded, binaryType);\n    }\n    else {\n        return { base64: true, data }; // fallback for old browsers\n    }\n};\nconst mapBinary = (data, binaryType) => {\n    switch (binaryType) {\n        case \"blob\":\n            if (data instanceof Blob) {\n                // from WebSocket + binaryType \"blob\"\n                return data;\n            }\n            else {\n                // from HTTP long-polling or WebTransport\n                return new Blob([data]);\n            }\n        case \"arraybuffer\":\n        default:\n            if (data instanceof ArrayBuffer) {\n                // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n                return data;\n            }\n            else {\n                // from WebTransport (Uint8Array)\n                return data.buffer;\n            }\n    }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n    // some packets may be added to the array while encoding, so the initial length must be saved\n    const length = packets.length;\n    const encodedPackets = new Array(length);\n    let count = 0;\n    packets.forEach((packet, i) => {\n        // force base64 encoding for binary packets\n        encodePacket(packet, false, (encodedPacket) => {\n            encodedPackets[i] = encodedPacket;\n            if (++count === length) {\n                callback(encodedPackets.join(SEPARATOR));\n            }\n        });\n    });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n    const encodedPackets = encodedPayload.split(SEPARATOR);\n    const packets = [];\n    for (let i = 0; i < encodedPackets.length; i++) {\n        const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n        packets.push(decodedPacket);\n        if (decodedPacket.type === \"error\") {\n            break;\n        }\n    }\n    return packets;\n};\nexport function createPacketEncoderStream() {\n    return new TransformStream({\n        transform(packet, controller) {\n            encodePacketToBinary(packet, (encodedPacket) => {\n                const payloadLength = encodedPacket.length;\n                let header;\n                // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n                if (payloadLength < 126) {\n                    header = new Uint8Array(1);\n                    new DataView(header.buffer).setUint8(0, payloadLength);\n                }\n                else if (payloadLength < 65536) {\n                    header = new Uint8Array(3);\n                    const view = new DataView(header.buffer);\n                    view.setUint8(0, 126);\n                    view.setUint16(1, payloadLength);\n                }\n                else {\n                    header = new Uint8Array(9);\n                    const view = new DataView(header.buffer);\n                    view.setUint8(0, 127);\n                    view.setBigUint64(1, BigInt(payloadLength));\n                }\n                // first bit indicates whether the payload is plain text (0) or binary (1)\n                if (packet.data && typeof packet.data !== \"string\") {\n                    header[0] |= 0x80;\n                }\n                controller.enqueue(header);\n                controller.enqueue(encodedPacket);\n            });\n        },\n    });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n    return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n    if (chunks[0].length === size) {\n        return chunks.shift();\n    }\n    const buffer = new Uint8Array(size);\n    let j = 0;\n    for (let i = 0; i < size; i++) {\n        buffer[i] = chunks[0][j++];\n        if (j === chunks[0].length) {\n            chunks.shift();\n            j = 0;\n        }\n    }\n    if (chunks.length && j < chunks[0].length) {\n        chunks[0] = chunks[0].slice(j);\n    }\n    return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n    if (!TEXT_DECODER) {\n        TEXT_DECODER = new TextDecoder();\n    }\n    const chunks = [];\n    let state = 0 /* State.READ_HEADER */;\n    let expectedLength = -1;\n    let isBinary = false;\n    return new TransformStream({\n        transform(chunk, controller) {\n            chunks.push(chunk);\n            while (true) {\n                if (state === 0 /* State.READ_HEADER */) {\n                    if (totalLength(chunks) < 1) {\n                        break;\n                    }\n                    const header = concatChunks(chunks, 1);\n                    isBinary = (header[0] & 0x80) === 0x80;\n                    expectedLength = header[0] & 0x7f;\n                    if (expectedLength < 126) {\n                        state = 3 /* State.READ_PAYLOAD */;\n                    }\n                    else if (expectedLength === 126) {\n                        state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n                    }\n                    else {\n                        state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n                    }\n                }\n                else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n                    if (totalLength(chunks) < 2) {\n                        break;\n                    }\n                    const headerArray = concatChunks(chunks, 2);\n                    expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n                    state = 3 /* State.READ_PAYLOAD */;\n                }\n                else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n                    if (totalLength(chunks) < 8) {\n                        break;\n                    }\n                    const headerArray = concatChunks(chunks, 8);\n                    const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n                    const n = view.getUint32(0);\n                    if (n > Math.pow(2, 53 - 32) - 1) {\n                        // the maximum safe integer in JavaScript is 2^53 - 1\n                        controller.enqueue(ERROR_PACKET);\n                        break;\n                    }\n                    expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n                    state = 3 /* State.READ_PAYLOAD */;\n                }\n                else {\n                    if (totalLength(chunks) < expectedLength) {\n                        break;\n                    }\n                    const data = concatChunks(chunks, expectedLength);\n                    controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n                    state = 0 /* State.READ_HEADER */;\n                }\n                if (expectedLength === 0 || expectedLength > maxPayload) {\n                    controller.enqueue(ERROR_PACKET);\n                    break;\n                }\n            }\n        },\n    });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n  if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n  for (var key in Emitter.prototype) {\n    obj[key] = Emitter.prototype[key];\n  }\n  return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n  this._callbacks = this._callbacks || {};\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n    .push(fn);\n  return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n  function on() {\n    this.off(event, on);\n    fn.apply(this, arguments);\n  }\n\n  on.fn = fn;\n  this.on(event, on);\n  return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n  this._callbacks = this._callbacks || {};\n\n  // all\n  if (0 == arguments.length) {\n    this._callbacks = {};\n    return this;\n  }\n\n  // specific event\n  var callbacks = this._callbacks['$' + event];\n  if (!callbacks) return this;\n\n  // remove all handlers\n  if (1 == arguments.length) {\n    delete this._callbacks['$' + event];\n    return this;\n  }\n\n  // remove specific handler\n  var cb;\n  for (var i = 0; i < callbacks.length; i++) {\n    cb = callbacks[i];\n    if (cb === fn || cb.fn === fn) {\n      callbacks.splice(i, 1);\n      break;\n    }\n  }\n\n  // Remove event specific arrays for event types that no\n  // one is subscribed for to avoid memory leak.\n  if (callbacks.length === 0) {\n    delete this._callbacks['$' + event];\n  }\n\n  return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n  this._callbacks = this._callbacks || {};\n\n  var args = new Array(arguments.length - 1)\n    , callbacks = this._callbacks['$' + event];\n\n  for (var i = 1; i < arguments.length; i++) {\n    args[i - 1] = arguments[i];\n  }\n\n  if (callbacks) {\n    callbacks = callbacks.slice(0);\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\n      callbacks[i].apply(this, args);\n    }\n  }\n\n  return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n  this._callbacks = this._callbacks || {};\n  return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n  return !! this.listeners(event).length;\n};\n","export const nextTick = (() => {\n    const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n    if (isPromiseAvailable) {\n        return (cb) => Promise.resolve().then(cb);\n    }\n    else {\n        return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n    }\n})();\nexport const globalThisShim = (() => {\n    if (typeof self !== \"undefined\") {\n        return self;\n    }\n    else if (typeof window !== \"undefined\") {\n        return window;\n    }\n    else {\n        return Function(\"return this\")();\n    }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n    return attr.reduce((acc, k) => {\n        if (obj.hasOwnProperty(k)) {\n            acc[k] = obj[k];\n        }\n        return acc;\n    }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n    if (opts.useNativeTimers) {\n        obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n        obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n    }\n    else {\n        obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n        obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n    }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n    if (typeof obj === \"string\") {\n        return utf8Length(obj);\n    }\n    // arraybuffer or blob\n    return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n    let c = 0, length = 0;\n    for (let i = 0, l = str.length; i < l; i++) {\n        c = str.charCodeAt(i);\n        if (c < 0x80) {\n            length += 1;\n        }\n        else if (c < 0x800) {\n            length += 2;\n        }\n        else if (c < 0xd800 || c >= 0xe000) {\n            length += 3;\n        }\n        else {\n            i++;\n            length += 4;\n        }\n    }\n    return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n    return (Date.now().toString(36).substring(3) +\n        Math.random().toString(36).substring(2, 5));\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n    let str = '';\n    for (let i in obj) {\n        if (obj.hasOwnProperty(i)) {\n            if (str.length)\n                str += '&';\n            str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n        }\n    }\n    return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n    let qry = {};\n    let pairs = qs.split('&');\n    for (let i = 0, l = pairs.length; i < l; i++) {\n        let pair = pairs[i].split('=');\n        qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n    }\n    return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n    constructor(reason, description, context) {\n        super(reason);\n        this.description = description;\n        this.context = context;\n        this.type = \"TransportError\";\n    }\n}\nexport class Transport extends Emitter {\n    /**\n     * Transport abstract constructor.\n     *\n     * @param {Object} opts - options\n     * @protected\n     */\n    constructor(opts) {\n        super();\n        this.writable = false;\n        installTimerFunctions(this, opts);\n        this.opts = opts;\n        this.query = opts.query;\n        this.socket = opts.socket;\n        this.supportsBinary = !opts.forceBase64;\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(reason, description, context) {\n        super.emitReserved(\"error\", new TransportError(reason, description, context));\n        return this;\n    }\n    /**\n     * Opens the transport.\n     */\n    open() {\n        this.readyState = \"opening\";\n        this.doOpen();\n        return this;\n    }\n    /**\n     * Closes the transport.\n     */\n    close() {\n        if (this.readyState === \"opening\" || this.readyState === \"open\") {\n            this.doClose();\n            this.onClose();\n        }\n        return this;\n    }\n    /**\n     * Sends multiple packets.\n     *\n     * @param {Array} packets\n     */\n    send(packets) {\n        if (this.readyState === \"open\") {\n            this.write(packets);\n        }\n        else {\n            // this might happen if the transport was silently closed in the beforeunload event handler\n        }\n    }\n    /**\n     * Called upon open\n     *\n     * @protected\n     */\n    onOpen() {\n        this.readyState = \"open\";\n        this.writable = true;\n        super.emitReserved(\"open\");\n    }\n    /**\n     * Called with data.\n     *\n     * @param {String} data\n     * @protected\n     */\n    onData(data) {\n        const packet = decodePacket(data, this.socket.binaryType);\n        this.onPacket(packet);\n    }\n    /**\n     * Called with a decoded packet.\n     *\n     * @protected\n     */\n    onPacket(packet) {\n        super.emitReserved(\"packet\", packet);\n    }\n    /**\n     * Called upon close.\n     *\n     * @protected\n     */\n    onClose(details) {\n        this.readyState = \"closed\";\n        super.emitReserved(\"close\", details);\n    }\n    /**\n     * Pauses the transport, in order not to lose packets during an upgrade.\n     *\n     * @param onPause\n     */\n    pause(onPause) { }\n    createUri(schema, query = {}) {\n        return (schema +\n            \"://\" +\n            this._hostname() +\n            this._port() +\n            this.opts.path +\n            this._query(query));\n    }\n    _hostname() {\n        const hostname = this.opts.hostname;\n        return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n    }\n    _port() {\n        if (this.opts.port &&\n            ((this.opts.secure && Number(this.opts.port !== 443)) ||\n                (!this.opts.secure && Number(this.opts.port) !== 80))) {\n            return \":\" + this.opts.port;\n        }\n        else {\n            return \"\";\n        }\n    }\n    _query(query) {\n        const encodedQuery = encode(query);\n        return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n    }\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n    constructor() {\n        super(...arguments);\n        this._polling = false;\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(onPause) {\n        this.readyState = \"pausing\";\n        const pause = () => {\n            this.readyState = \"paused\";\n            onPause();\n        };\n        if (this._polling || !this.writable) {\n            let total = 0;\n            if (this._polling) {\n                total++;\n                this.once(\"pollComplete\", function () {\n                    --total || pause();\n                });\n            }\n            if (!this.writable) {\n                total++;\n                this.once(\"drain\", function () {\n                    --total || pause();\n                });\n            }\n        }\n        else {\n            pause();\n        }\n    }\n    /**\n     * Starts polling cycle.\n     *\n     * @private\n     */\n    _poll() {\n        this._polling = true;\n        this.doPoll();\n        this.emitReserved(\"poll\");\n    }\n    /**\n     * Overloads onData to detect payloads.\n     *\n     * @protected\n     */\n    onData(data) {\n        const callback = (packet) => {\n            // if its the first message we consider the transport open\n            if (\"opening\" === this.readyState && packet.type === \"open\") {\n                this.onOpen();\n            }\n            // if its a close packet, we close the ongoing requests\n            if (\"close\" === packet.type) {\n                this.onClose({ description: \"transport closed by the server\" });\n                return false;\n            }\n            // otherwise bypass onData and handle the message\n            this.onPacket(packet);\n        };\n        // decode payload\n        decodePayload(data, this.socket.binaryType).forEach(callback);\n        // if an event did not trigger closing\n        if (\"closed\" !== this.readyState) {\n            // if we got data we're not polling\n            this._polling = false;\n            this.emitReserved(\"pollComplete\");\n            if (\"open\" === this.readyState) {\n                this._poll();\n            }\n            else {\n            }\n        }\n    }\n    /**\n     * For polling, send a close packet.\n     *\n     * @protected\n     */\n    doClose() {\n        const close = () => {\n            this.write([{ type: \"close\" }]);\n        };\n        if (\"open\" === this.readyState) {\n            close();\n        }\n        else {\n            // in case we're trying to close while\n            // handshaking is in progress (GH-164)\n            this.once(\"open\", close);\n        }\n    }\n    /**\n     * Writes a packets payload.\n     *\n     * @param {Array} packets - data packets\n     * @protected\n     */\n    write(packets) {\n        this.writable = false;\n        encodePayload(packets, (data) => {\n            this.doWrite(data, () => {\n                this.writable = true;\n                this.emitReserved(\"drain\");\n            });\n        });\n    }\n    /**\n     * Generates uri for connection.\n     *\n     * @private\n     */\n    uri() {\n        const schema = this.opts.secure ? \"https\" : \"http\";\n        const query = this.query || {};\n        // cache busting is forced\n        if (false !== this.opts.timestampRequests) {\n            query[this.opts.timestampParam] = randomString();\n        }\n        if (!this.supportsBinary && !query.sid) {\n            query.b64 = 1;\n        }\n        return this.createUri(schema, query);\n    }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n    value = typeof XMLHttpRequest !== 'undefined' &&\n        'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n    // if XMLHttp support is disabled in IE then it will throw\n    // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n    /**\n     * XHR Polling constructor.\n     *\n     * @param {Object} opts\n     * @package\n     */\n    constructor(opts) {\n        super(opts);\n        if (typeof location !== \"undefined\") {\n            const isSSL = \"https:\" === location.protocol;\n            let port = location.port;\n            // some user agents have empty `location.port`\n            if (!port) {\n                port = isSSL ? \"443\" : \"80\";\n            }\n            this.xd =\n                (typeof location !== \"undefined\" &&\n                    opts.hostname !== location.hostname) ||\n                    port !== opts.port;\n        }\n    }\n    /**\n     * Sends data.\n     *\n     * @param {String} data to send.\n     * @param {Function} called upon flush.\n     * @private\n     */\n    doWrite(data, fn) {\n        const req = this.request({\n            method: \"POST\",\n            data: data,\n        });\n        req.on(\"success\", fn);\n        req.on(\"error\", (xhrStatus, context) => {\n            this.onError(\"xhr post error\", xhrStatus, context);\n        });\n    }\n    /**\n     * Starts a poll cycle.\n     *\n     * @private\n     */\n    doPoll() {\n        const req = this.request();\n        req.on(\"data\", this.onData.bind(this));\n        req.on(\"error\", (xhrStatus, context) => {\n            this.onError(\"xhr poll error\", xhrStatus, context);\n        });\n        this.pollXhr = req;\n    }\n}\nexport class Request extends Emitter {\n    /**\n     * Request constructor\n     *\n     * @param {Object} options\n     * @package\n     */\n    constructor(createRequest, uri, opts) {\n        super();\n        this.createRequest = createRequest;\n        installTimerFunctions(this, opts);\n        this._opts = opts;\n        this._method = opts.method || \"GET\";\n        this._uri = uri;\n        this._data = undefined !== opts.data ? opts.data : null;\n        this._create();\n    }\n    /**\n     * Creates the XHR object and sends the request.\n     *\n     * @private\n     */\n    _create() {\n        var _a;\n        const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n        opts.xdomain = !!this._opts.xd;\n        const xhr = (this._xhr = this.createRequest(opts));\n        try {\n            xhr.open(this._method, this._uri, true);\n            try {\n                if (this._opts.extraHeaders) {\n                    // @ts-ignore\n                    xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n                    for (let i in this._opts.extraHeaders) {\n                        if (this._opts.extraHeaders.hasOwnProperty(i)) {\n                            xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n                        }\n                    }\n                }\n            }\n            catch (e) { }\n            if (\"POST\" === this._method) {\n                try {\n                    xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n                }\n                catch (e) { }\n            }\n            try {\n                xhr.setRequestHeader(\"Accept\", \"*/*\");\n            }\n            catch (e) { }\n            (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n            // ie6 check\n            if (\"withCredentials\" in xhr) {\n                xhr.withCredentials = this._opts.withCredentials;\n            }\n            if (this._opts.requestTimeout) {\n                xhr.timeout = this._opts.requestTimeout;\n            }\n            xhr.onreadystatechange = () => {\n                var _a;\n                if (xhr.readyState === 3) {\n                    (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n                    // @ts-ignore\n                    xhr.getResponseHeader(\"set-cookie\"));\n                }\n                if (4 !== xhr.readyState)\n                    return;\n                if (200 === xhr.status || 1223 === xhr.status) {\n                    this._onLoad();\n                }\n                else {\n                    // make sure the `error` event handler that's user-set\n                    // does not throw in the same tick and gets caught here\n                    this.setTimeoutFn(() => {\n                        this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n                    }, 0);\n                }\n            };\n            xhr.send(this._data);\n        }\n        catch (e) {\n            // Need to defer since .create() is called directly from the constructor\n            // and thus the 'error' event can only be only bound *after* this exception\n            // occurs.  Therefore, also, we cannot throw here at all.\n            this.setTimeoutFn(() => {\n                this._onError(e);\n            }, 0);\n            return;\n        }\n        if (typeof document !== \"undefined\") {\n            this._index = Request.requestsCount++;\n            Request.requests[this._index] = this;\n        }\n    }\n    /**\n     * Called upon error.\n     *\n     * @private\n     */\n    _onError(err) {\n        this.emitReserved(\"error\", err, this._xhr);\n        this._cleanup(true);\n    }\n    /**\n     * Cleans up house.\n     *\n     * @private\n     */\n    _cleanup(fromError) {\n        if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n            return;\n        }\n        this._xhr.onreadystatechange = empty;\n        if (fromError) {\n            try {\n                this._xhr.abort();\n            }\n            catch (e) { }\n        }\n        if (typeof document !== \"undefined\") {\n            delete Request.requests[this._index];\n        }\n        this._xhr = null;\n    }\n    /**\n     * Called upon load.\n     *\n     * @private\n     */\n    _onLoad() {\n        const data = this._xhr.responseText;\n        if (data !== null) {\n            this.emitReserved(\"data\", data);\n            this.emitReserved(\"success\");\n            this._cleanup();\n        }\n    }\n    /**\n     * Aborts the request.\n     *\n     * @package\n     */\n    abort() {\n        this._cleanup();\n    }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n    // @ts-ignore\n    if (typeof attachEvent === \"function\") {\n        // @ts-ignore\n        attachEvent(\"onunload\", unloadHandler);\n    }\n    else if (typeof addEventListener === \"function\") {\n        const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n        addEventListener(terminationEvent, unloadHandler, false);\n    }\n}\nfunction unloadHandler() {\n    for (let i in Request.requests) {\n        if (Request.requests.hasOwnProperty(i)) {\n            Request.requests[i].abort();\n        }\n    }\n}\nconst hasXHR2 = (function () {\n    const xhr = newRequest({\n        xdomain: false,\n    });\n    return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n    constructor(opts) {\n        super(opts);\n        const forceBase64 = opts && opts.forceBase64;\n        this.supportsBinary = hasXHR2 && !forceBase64;\n    }\n    request(opts = {}) {\n        Object.assign(opts, { xd: this.xd }, this.opts);\n        return new Request(newRequest, this.uri(), opts);\n    }\n}\nfunction newRequest(opts) {\n    const xdomain = opts.xdomain;\n    // XMLHttpRequest can be disabled on IE\n    try {\n        if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n            return new XMLHttpRequest();\n        }\n    }\n    catch (e) { }\n    if (!xdomain) {\n        try {\n            return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n        }\n        catch (e) { }\n    }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n    typeof navigator.product === \"string\" &&\n    navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n    get name() {\n        return \"websocket\";\n    }\n    doOpen() {\n        const uri = this.uri();\n        const protocols = this.opts.protocols;\n        // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n        const opts = isReactNative\n            ? {}\n            : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n        if (this.opts.extraHeaders) {\n            opts.headers = this.opts.extraHeaders;\n        }\n        try {\n            this.ws = this.createSocket(uri, protocols, opts);\n        }\n        catch (err) {\n            return this.emitReserved(\"error\", err);\n        }\n        this.ws.binaryType = this.socket.binaryType;\n        this.addEventListeners();\n    }\n    /**\n     * Adds event listeners to the socket\n     *\n     * @private\n     */\n    addEventListeners() {\n        this.ws.onopen = () => {\n            if (this.opts.autoUnref) {\n                this.ws._socket.unref();\n            }\n            this.onOpen();\n        };\n        this.ws.onclose = (closeEvent) => this.onClose({\n            description: \"websocket connection closed\",\n            context: closeEvent,\n        });\n        this.ws.onmessage = (ev) => this.onData(ev.data);\n        this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n    }\n    write(packets) {\n        this.writable = false;\n        // encodePacket efficient as it uses WS framing\n        // no need for encodePayload\n        for (let i = 0; i < packets.length; i++) {\n            const packet = packets[i];\n            const lastPacket = i === packets.length - 1;\n            encodePacket(packet, this.supportsBinary, (data) => {\n                // Sometimes the websocket has already been closed but the browser didn't\n                // have a chance of informing us about it yet, in that case send will\n                // throw an error\n                try {\n                    this.doWrite(packet, data);\n                }\n                catch (e) {\n                }\n                if (lastPacket) {\n                    // fake drain\n                    // defer to next tick to allow Socket to clear writeBuffer\n                    nextTick(() => {\n                        this.writable = true;\n                        this.emitReserved(\"drain\");\n                    }, this.setTimeoutFn);\n                }\n            });\n        }\n    }\n    doClose() {\n        if (typeof this.ws !== \"undefined\") {\n            this.ws.onerror = () => { };\n            this.ws.close();\n            this.ws = null;\n        }\n    }\n    /**\n     * Generates uri for connection.\n     *\n     * @private\n     */\n    uri() {\n        const schema = this.opts.secure ? \"wss\" : \"ws\";\n        const query = this.query || {};\n        // append timestamp to URI\n        if (this.opts.timestampRequests) {\n            query[this.opts.timestampParam] = randomString();\n        }\n        // communicate binary support capabilities\n        if (!this.supportsBinary) {\n            query.b64 = 1;\n        }\n        return this.createUri(schema, query);\n    }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n    createSocket(uri, protocols, opts) {\n        return !isReactNative\n            ? protocols\n                ? new WebSocketCtor(uri, protocols)\n                : new WebSocketCtor(uri)\n            : new WebSocketCtor(uri, protocols, opts);\n    }\n    doWrite(_packet, data) {\n        this.ws.send(data);\n    }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n    get name() {\n        return \"webtransport\";\n    }\n    doOpen() {\n        try {\n            // @ts-ignore\n            this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n        }\n        catch (err) {\n            return this.emitReserved(\"error\", err);\n        }\n        this._transport.closed\n            .then(() => {\n            this.onClose();\n        })\n            .catch((err) => {\n            this.onError(\"webtransport error\", err);\n        });\n        // note: we could have used async/await, but that would require some additional polyfills\n        this._transport.ready.then(() => {\n            this._transport.createBidirectionalStream().then((stream) => {\n                const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n                const reader = stream.readable.pipeThrough(decoderStream).getReader();\n                const encoderStream = createPacketEncoderStream();\n                encoderStream.readable.pipeTo(stream.writable);\n                this._writer = encoderStream.writable.getWriter();\n                const read = () => {\n                    reader\n                        .read()\n                        .then(({ done, value }) => {\n                        if (done) {\n                            return;\n                        }\n                        this.onPacket(value);\n                        read();\n                    })\n                        .catch((err) => {\n                    });\n                };\n                read();\n                const packet = { type: \"open\" };\n                if (this.query.sid) {\n                    packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n                }\n                this._writer.write(packet).then(() => this.onOpen());\n            });\n        });\n    }\n    write(packets) {\n        this.writable = false;\n        for (let i = 0; i < packets.length; i++) {\n            const packet = packets[i];\n            const lastPacket = i === packets.length - 1;\n            this._writer.write(packet).then(() => {\n                if (lastPacket) {\n                    nextTick(() => {\n                        this.writable = true;\n                        this.emitReserved(\"drain\");\n                    }, this.setTimeoutFn);\n                }\n            });\n        }\n    }\n    doClose() {\n        var _a;\n        (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n    }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n    websocket: WS,\n    webtransport: WT,\n    polling: XHR,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n    if (str.length > 8000) {\n        throw \"URI too long\";\n    }\n    const src = str, b = str.indexOf('['), e = str.indexOf(']');\n    if (b != -1 && e != -1) {\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n    }\n    let m = re.exec(str || ''), uri = {}, i = 14;\n    while (i--) {\n        uri[parts[i]] = m[i] || '';\n    }\n    if (b != -1 && e != -1) {\n        uri.source = src;\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n        uri.ipv6uri = true;\n    }\n    uri.pathNames = pathNames(uri, uri['path']);\n    uri.queryKey = queryKey(uri, uri['query']);\n    return uri;\n}\nfunction pathNames(obj, path) {\n    const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n    if (path.slice(0, 1) == '/' || path.length === 0) {\n        names.splice(0, 1);\n    }\n    if (path.slice(-1) == '/') {\n        names.splice(names.length - 1, 1);\n    }\n    return names;\n}\nfunction queryKey(uri, query) {\n    const data = {};\n    query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n        if ($1) {\n            data[$1] = $2;\n        }\n    });\n    return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n    typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n    // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n    // script, so we create one single event listener here which will forward the event to the socket instances\n    addEventListener(\"offline\", () => {\n        OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n    }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n *   transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n    /**\n     * Socket constructor.\n     *\n     * @param {String|Object} uri - uri or options\n     * @param {Object} opts - options\n     */\n    constructor(uri, opts) {\n        super();\n        this.binaryType = defaultBinaryType;\n        this.writeBuffer = [];\n        this._prevBufferLen = 0;\n        this._pingInterval = -1;\n        this._pingTimeout = -1;\n        this._maxPayload = -1;\n        /**\n         * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n         * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n         */\n        this._pingTimeoutTime = Infinity;\n        if (uri && \"object\" === typeof uri) {\n            opts = uri;\n            uri = null;\n        }\n        if (uri) {\n            const parsedUri = parse(uri);\n            opts.hostname = parsedUri.host;\n            opts.secure =\n                parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n            opts.port = parsedUri.port;\n            if (parsedUri.query)\n                opts.query = parsedUri.query;\n        }\n        else if (opts.host) {\n            opts.hostname = parse(opts.host).host;\n        }\n        installTimerFunctions(this, opts);\n        this.secure =\n            null != opts.secure\n                ? opts.secure\n                : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n        if (opts.hostname && !opts.port) {\n            // if no port is specified manually, use the protocol default\n            opts.port = this.secure ? \"443\" : \"80\";\n        }\n        this.hostname =\n            opts.hostname ||\n                (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n        this.port =\n            opts.port ||\n                (typeof location !== \"undefined\" && location.port\n                    ? location.port\n                    : this.secure\n                        ? \"443\"\n                        : \"80\");\n        this.transports = [];\n        this._transportsByName = {};\n        opts.transports.forEach((t) => {\n            const transportName = t.prototype.name;\n            this.transports.push(transportName);\n            this._transportsByName[transportName] = t;\n        });\n        this.opts = Object.assign({\n            path: \"/engine.io\",\n            agent: false,\n            withCredentials: false,\n            upgrade: true,\n            timestampParam: \"t\",\n            rememberUpgrade: false,\n            addTrailingSlash: true,\n            rejectUnauthorized: true,\n            perMessageDeflate: {\n                threshold: 1024,\n            },\n            transportOptions: {},\n            closeOnBeforeunload: false,\n        }, opts);\n        this.opts.path =\n            this.opts.path.replace(/\\/$/, \"\") +\n                (this.opts.addTrailingSlash ? \"/\" : \"\");\n        if (typeof this.opts.query === \"string\") {\n            this.opts.query = decode(this.opts.query);\n        }\n        if (withEventListeners) {\n            if (this.opts.closeOnBeforeunload) {\n                // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n                // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n                // closed/reloaded)\n                this._beforeunloadEventListener = () => {\n                    if (this.transport) {\n                        // silently close the transport\n                        this.transport.removeAllListeners();\n                        this.transport.close();\n                    }\n                };\n                addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n            }\n            if (this.hostname !== \"localhost\") {\n                this._offlineEventListener = () => {\n                    this._onClose(\"transport close\", {\n                        description: \"network connection lost\",\n                    });\n                };\n                OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n            }\n        }\n        if (this.opts.withCredentials) {\n            this._cookieJar = createCookieJar();\n        }\n        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(name) {\n        const query = Object.assign({}, this.opts.query);\n        // append engine.io protocol identifier\n        query.EIO = protocol;\n        // transport name\n        query.transport = name;\n        // session id if we already have one\n        if (this.id)\n            query.sid = this.id;\n        const opts = Object.assign({}, this.opts, {\n            query,\n            socket: this,\n            hostname: this.hostname,\n            secure: this.secure,\n            port: this.port,\n        }, this.opts.transportOptions[name]);\n        return new this._transportsByName[name](opts);\n    }\n    /**\n     * Initializes transport to use and starts probe.\n     *\n     * @private\n     */\n    _open() {\n        if (this.transports.length === 0) {\n            // Emit error on next tick so it can be listened to\n            this.setTimeoutFn(() => {\n                this.emitReserved(\"error\", \"No transports available\");\n            }, 0);\n            return;\n        }\n        const transportName = this.opts.rememberUpgrade &&\n            SocketWithoutUpgrade.priorWebsocketSuccess &&\n            this.transports.indexOf(\"websocket\") !== -1\n            ? \"websocket\"\n            : this.transports[0];\n        this.readyState = \"opening\";\n        const transport = this.createTransport(transportName);\n        transport.open();\n        this.setTransport(transport);\n    }\n    /**\n     * Sets the current transport. Disables the existing one (if any).\n     *\n     * @private\n     */\n    setTransport(transport) {\n        if (this.transport) {\n            this.transport.removeAllListeners();\n        }\n        // set up transport\n        this.transport = transport;\n        // set up transport listeners\n        transport\n            .on(\"drain\", this._onDrain.bind(this))\n            .on(\"packet\", this._onPacket.bind(this))\n            .on(\"error\", this._onError.bind(this))\n            .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n    }\n    /**\n     * Called when connection is deemed open.\n     *\n     * @private\n     */\n    onOpen() {\n        this.readyState = \"open\";\n        SocketWithoutUpgrade.priorWebsocketSuccess =\n            \"websocket\" === this.transport.name;\n        this.emitReserved(\"open\");\n        this.flush();\n    }\n    /**\n     * Handles a packet.\n     *\n     * @private\n     */\n    _onPacket(packet) {\n        if (\"opening\" === this.readyState ||\n            \"open\" === this.readyState ||\n            \"closing\" === this.readyState) {\n            this.emitReserved(\"packet\", packet);\n            // Socket is live - any packet counts\n            this.emitReserved(\"heartbeat\");\n            switch (packet.type) {\n                case \"open\":\n                    this.onHandshake(JSON.parse(packet.data));\n                    break;\n                case \"ping\":\n                    this._sendPacket(\"pong\");\n                    this.emitReserved(\"ping\");\n                    this.emitReserved(\"pong\");\n                    this._resetPingTimeout();\n                    break;\n                case \"error\":\n                    const err = new Error(\"server error\");\n                    // @ts-ignore\n                    err.code = packet.data;\n                    this._onError(err);\n                    break;\n                case \"message\":\n                    this.emitReserved(\"data\", packet.data);\n                    this.emitReserved(\"message\", packet.data);\n                    break;\n            }\n        }\n        else {\n        }\n    }\n    /**\n     * Called upon handshake completion.\n     *\n     * @param {Object} data - handshake obj\n     * @private\n     */\n    onHandshake(data) {\n        this.emitReserved(\"handshake\", data);\n        this.id = data.sid;\n        this.transport.query.sid = data.sid;\n        this._pingInterval = data.pingInterval;\n        this._pingTimeout = data.pingTimeout;\n        this._maxPayload = data.maxPayload;\n        this.onOpen();\n        // In case open handler closes socket\n        if (\"closed\" === this.readyState)\n            return;\n        this._resetPingTimeout();\n    }\n    /**\n     * Sets and resets ping timeout timer based on server pings.\n     *\n     * @private\n     */\n    _resetPingTimeout() {\n        this.clearTimeoutFn(this._pingTimeoutTimer);\n        const delay = this._pingInterval + this._pingTimeout;\n        this._pingTimeoutTime = Date.now() + delay;\n        this._pingTimeoutTimer = this.setTimeoutFn(() => {\n            this._onClose(\"ping timeout\");\n        }, delay);\n        if (this.opts.autoUnref) {\n            this._pingTimeoutTimer.unref();\n        }\n    }\n    /**\n     * Called on `drain` event\n     *\n     * @private\n     */\n    _onDrain() {\n        this.writeBuffer.splice(0, this._prevBufferLen);\n        // setting prevBufferLen = 0 is very important\n        // for example, when upgrading, upgrade packet is sent over,\n        // and a nonzero prevBufferLen could cause problems on `drain`\n        this._prevBufferLen = 0;\n        if (0 === this.writeBuffer.length) {\n            this.emitReserved(\"drain\");\n        }\n        else {\n            this.flush();\n        }\n    }\n    /**\n     * Flush write buffers.\n     *\n     * @private\n     */\n    flush() {\n        if (\"closed\" !== this.readyState &&\n            this.transport.writable &&\n            !this.upgrading &&\n            this.writeBuffer.length) {\n            const packets = this._getWritablePackets();\n            this.transport.send(packets);\n            // keep track of current length of writeBuffer\n            // splice writeBuffer and callbackBuffer on `drain`\n            this._prevBufferLen = packets.length;\n            this.emitReserved(\"flush\");\n        }\n    }\n    /**\n     * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n     * long-polling)\n     *\n     * @private\n     */\n    _getWritablePackets() {\n        const shouldCheckPayloadSize = this._maxPayload &&\n            this.transport.name === \"polling\" &&\n            this.writeBuffer.length > 1;\n        if (!shouldCheckPayloadSize) {\n            return this.writeBuffer;\n        }\n        let payloadSize = 1; // first packet type\n        for (let i = 0; i < this.writeBuffer.length; i++) {\n            const data = this.writeBuffer[i].data;\n            if (data) {\n                payloadSize += byteLength(data);\n            }\n            if (i > 0 && payloadSize > this._maxPayload) {\n                return this.writeBuffer.slice(0, i);\n            }\n            payloadSize += 2; // separator + packet type\n        }\n        return this.writeBuffer;\n    }\n    /**\n     * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n     *\n     * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n     * `write()` method then the message would not be buffered by the Socket.IO client.\n     *\n     * @return {boolean}\n     * @private\n     */\n    /* private */ _hasPingExpired() {\n        if (!this._pingTimeoutTime)\n            return true;\n        const hasExpired = Date.now() > this._pingTimeoutTime;\n        if (hasExpired) {\n            this._pingTimeoutTime = 0;\n            nextTick(() => {\n                this._onClose(\"ping timeout\");\n            }, this.setTimeoutFn);\n        }\n        return hasExpired;\n    }\n    /**\n     * Sends a message.\n     *\n     * @param {String} msg - message.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @return {Socket} for chaining.\n     */\n    write(msg, options, fn) {\n        this._sendPacket(\"message\", msg, options, fn);\n        return this;\n    }\n    /**\n     * Sends a message. Alias of {@link Socket#write}.\n     *\n     * @param {String} msg - message.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @return {Socket} for chaining.\n     */\n    send(msg, options, fn) {\n        this._sendPacket(\"message\", msg, options, fn);\n        return this;\n    }\n    /**\n     * Sends a packet.\n     *\n     * @param {String} type: packet type.\n     * @param {String} data.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @private\n     */\n    _sendPacket(type, data, options, fn) {\n        if (\"function\" === typeof data) {\n            fn = data;\n            data = undefined;\n        }\n        if (\"function\" === typeof options) {\n            fn = options;\n            options = null;\n        }\n        if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n            return;\n        }\n        options = options || {};\n        options.compress = false !== options.compress;\n        const packet = {\n            type: type,\n            data: data,\n            options: options,\n        };\n        this.emitReserved(\"packetCreate\", packet);\n        this.writeBuffer.push(packet);\n        if (fn)\n            this.once(\"flush\", fn);\n        this.flush();\n    }\n    /**\n     * Closes the connection.\n     */\n    close() {\n        const close = () => {\n            this._onClose(\"forced close\");\n            this.transport.close();\n        };\n        const cleanupAndClose = () => {\n            this.off(\"upgrade\", cleanupAndClose);\n            this.off(\"upgradeError\", cleanupAndClose);\n            close();\n        };\n        const waitForUpgrade = () => {\n            // wait for upgrade to finish since we can't send packets while pausing a transport\n            this.once(\"upgrade\", cleanupAndClose);\n            this.once(\"upgradeError\", cleanupAndClose);\n        };\n        if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n            this.readyState = \"closing\";\n            if (this.writeBuffer.length) {\n                this.once(\"drain\", () => {\n                    if (this.upgrading) {\n                        waitForUpgrade();\n                    }\n                    else {\n                        close();\n                    }\n                });\n            }\n            else if (this.upgrading) {\n                waitForUpgrade();\n            }\n            else {\n                close();\n            }\n        }\n        return this;\n    }\n    /**\n     * Called upon transport error\n     *\n     * @private\n     */\n    _onError(err) {\n        SocketWithoutUpgrade.priorWebsocketSuccess = false;\n        if (this.opts.tryAllTransports &&\n            this.transports.length > 1 &&\n            this.readyState === \"opening\") {\n            this.transports.shift();\n            return this._open();\n        }\n        this.emitReserved(\"error\", err);\n        this._onClose(\"transport error\", err);\n    }\n    /**\n     * Called upon transport close.\n     *\n     * @private\n     */\n    _onClose(reason, description) {\n        if (\"opening\" === this.readyState ||\n            \"open\" === this.readyState ||\n            \"closing\" === this.readyState) {\n            // clear timers\n            this.clearTimeoutFn(this._pingTimeoutTimer);\n            // stop event from firing again for transport\n            this.transport.removeAllListeners(\"close\");\n            // ensure transport won't stay open\n            this.transport.close();\n            // ignore further transport communication\n            this.transport.removeAllListeners();\n            if (withEventListeners) {\n                if (this._beforeunloadEventListener) {\n                    removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n                }\n                if (this._offlineEventListener) {\n                    const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n                    if (i !== -1) {\n                        OFFLINE_EVENT_LISTENERS.splice(i, 1);\n                    }\n                }\n            }\n            // set ready state\n            this.readyState = \"closed\";\n            // clear session id\n            this.id = null;\n            // emit close event\n            this.emitReserved(\"close\", reason, description);\n            // clean buffers after, so users can still\n            // grab the buffers on `close` event\n            this.writeBuffer = [];\n            this._prevBufferLen = 0;\n        }\n    }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n *   transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n    constructor() {\n        super(...arguments);\n        this._upgrades = [];\n    }\n    onOpen() {\n        super.onOpen();\n        if (\"open\" === this.readyState && this.opts.upgrade) {\n            for (let i = 0; i < this._upgrades.length; i++) {\n                this._probe(this._upgrades[i]);\n            }\n        }\n    }\n    /**\n     * Probes a transport.\n     *\n     * @param {String} name - transport name\n     * @private\n     */\n    _probe(name) {\n        let transport = this.createTransport(name);\n        let failed = false;\n        SocketWithoutUpgrade.priorWebsocketSuccess = false;\n        const onTransportOpen = () => {\n            if (failed)\n                return;\n            transport.send([{ type: \"ping\", data: \"probe\" }]);\n            transport.once(\"packet\", (msg) => {\n                if (failed)\n                    return;\n                if (\"pong\" === msg.type && \"probe\" === msg.data) {\n                    this.upgrading = true;\n                    this.emitReserved(\"upgrading\", transport);\n                    if (!transport)\n                        return;\n                    SocketWithoutUpgrade.priorWebsocketSuccess =\n                        \"websocket\" === transport.name;\n                    this.transport.pause(() => {\n                        if (failed)\n                            return;\n                        if (\"closed\" === this.readyState)\n                            return;\n                        cleanup();\n                        this.setTransport(transport);\n                        transport.send([{ type: \"upgrade\" }]);\n                        this.emitReserved(\"upgrade\", transport);\n                        transport = null;\n                        this.upgrading = false;\n                        this.flush();\n                    });\n                }\n                else {\n                    const err = new Error(\"probe error\");\n                    // @ts-ignore\n                    err.transport = transport.name;\n                    this.emitReserved(\"upgradeError\", err);\n                }\n            });\n        };\n        function freezeTransport() {\n            if (failed)\n                return;\n            // Any callback called by transport should be ignored since now\n            failed = true;\n            cleanup();\n            transport.close();\n            transport = null;\n        }\n        // Handle any error that happens while probing\n        const onerror = (err) => {\n            const error = new Error(\"probe error: \" + err);\n            // @ts-ignore\n            error.transport = transport.name;\n            freezeTransport();\n            this.emitReserved(\"upgradeError\", error);\n        };\n        function onTransportClose() {\n            onerror(\"transport closed\");\n        }\n        // When the socket is closed while we're probing\n        function onclose() {\n            onerror(\"socket closed\");\n        }\n        // When the socket is upgraded while we're probing\n        function onupgrade(to) {\n            if (transport && to.name !== transport.name) {\n                freezeTransport();\n            }\n        }\n        // Remove all listeners on the transport and on self\n        const cleanup = () => {\n            transport.removeListener(\"open\", onTransportOpen);\n            transport.removeListener(\"error\", onerror);\n            transport.removeListener(\"close\", onTransportClose);\n            this.off(\"close\", onclose);\n            this.off(\"upgrading\", onupgrade);\n        };\n        transport.once(\"open\", onTransportOpen);\n        transport.once(\"error\", onerror);\n        transport.once(\"close\", onTransportClose);\n        this.once(\"close\", onclose);\n        this.once(\"upgrading\", onupgrade);\n        if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n            name !== \"webtransport\") {\n            // favor WebTransport\n            this.setTimeoutFn(() => {\n                if (!failed) {\n                    transport.open();\n                }\n            }, 200);\n        }\n        else {\n            transport.open();\n        }\n    }\n    onHandshake(data) {\n        this._upgrades = this._filterUpgrades(data.upgrades);\n        super.onHandshake(data);\n    }\n    /**\n     * Filters upgrades, returning only those matching client transports.\n     *\n     * @param {Array} upgrades - server upgrades\n     * @private\n     */\n    _filterUpgrades(upgrades) {\n        const filteredUpgrades = [];\n        for (let i = 0; i < upgrades.length; i++) {\n            if (~this.transports.indexOf(upgrades[i]))\n                filteredUpgrades.push(upgrades[i]);\n        }\n        return filteredUpgrades;\n    }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n    constructor(uri, opts = {}) {\n        const o = typeof uri === \"object\" ? uri : opts;\n        if (!o.transports ||\n            (o.transports && typeof o.transports[0] === \"string\")) {\n            o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n                .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n                .filter((t) => !!t);\n        }\n        super(uri, o);\n    }\n}\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n *        Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n    let obj = uri;\n    // default to window.location\n    loc = loc || (typeof location !== \"undefined\" && location);\n    if (null == uri)\n        uri = loc.protocol + \"//\" + loc.host;\n    // relative path support\n    if (typeof uri === \"string\") {\n        if (\"/\" === uri.charAt(0)) {\n            if (\"/\" === uri.charAt(1)) {\n                uri = loc.protocol + uri;\n            }\n            else {\n                uri = loc.host + uri;\n            }\n        }\n        if (!/^(https?|wss?):\\/\\//.test(uri)) {\n            if (\"undefined\" !== typeof loc) {\n                uri = loc.protocol + \"//\" + uri;\n            }\n            else {\n                uri = \"https://\" + uri;\n            }\n        }\n        // parse\n        obj = parse(uri);\n    }\n    // make sure we treat `localhost:80` and `localhost` equally\n    if (!obj.port) {\n        if (/^(http|ws)$/.test(obj.protocol)) {\n            obj.port = \"80\";\n        }\n        else if (/^(http|ws)s$/.test(obj.protocol)) {\n            obj.port = \"443\";\n        }\n    }\n    obj.path = obj.path || \"/\";\n    const ipv6 = obj.host.indexOf(\":\") !== -1;\n    const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n    // define unique id\n    obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n    // define href\n    obj.href =\n        obj.protocol +\n            \"://\" +\n            host +\n            (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n    return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n    return typeof ArrayBuffer.isView === \"function\"\n        ? ArrayBuffer.isView(obj)\n        : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n    (typeof Blob !== \"undefined\" &&\n        toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n    (typeof File !== \"undefined\" &&\n        toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n    return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n        (withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n    if (!obj || typeof obj !== \"object\") {\n        return false;\n    }\n    if (Array.isArray(obj)) {\n        for (let i = 0, l = obj.length; i < l; i++) {\n            if (hasBinary(obj[i])) {\n                return true;\n            }\n        }\n        return false;\n    }\n    if (isBinary(obj)) {\n        return true;\n    }\n    if (obj.toJSON &&\n        typeof obj.toJSON === \"function\" &&\n        arguments.length === 1) {\n        return hasBinary(obj.toJSON(), true);\n    }\n    for (const key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n    const buffers = [];\n    const packetData = packet.data;\n    const pack = packet;\n    pack.data = _deconstructPacket(packetData, buffers);\n    pack.attachments = buffers.length; // number of binary 'attachments'\n    return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (isBinary(data)) {\n        const placeholder = { _placeholder: true, num: buffers.length };\n        buffers.push(data);\n        return placeholder;\n    }\n    else if (Array.isArray(data)) {\n        const newData = new Array(data.length);\n        for (let i = 0; i < data.length; i++) {\n            newData[i] = _deconstructPacket(data[i], buffers);\n        }\n        return newData;\n    }\n    else if (typeof data === \"object\" && !(data instanceof Date)) {\n        const newData = {};\n        for (const key in data) {\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\n                newData[key] = _deconstructPacket(data[key], buffers);\n            }\n        }\n        return newData;\n    }\n    return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n    packet.data = _reconstructPacket(packet.data, buffers);\n    delete packet.attachments; // no longer useful\n    return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (data && data._placeholder === true) {\n        const isIndexValid = typeof data.num === \"number\" &&\n            data.num >= 0 &&\n            data.num < buffers.length;\n        if (isIndexValid) {\n            return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n        }\n        else {\n            throw new Error(\"illegal attachments\");\n        }\n    }\n    else if (Array.isArray(data)) {\n        for (let i = 0; i < data.length; i++) {\n            data[i] = _reconstructPacket(data[i], buffers);\n        }\n    }\n    else if (typeof data === \"object\") {\n        for (const key in data) {\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\n                data[key] = _reconstructPacket(data[key], buffers);\n            }\n        }\n    }\n    return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n    \"connect\",\n    \"connect_error\",\n    \"disconnect\",\n    \"disconnecting\",\n    \"newListener\",\n    \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n    PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n    PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n    PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n    PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n    PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n    PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n    PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n    /**\n     * Encoder constructor\n     *\n     * @param {function} replacer - custom replacer to pass down to JSON.parse\n     */\n    constructor(replacer) {\n        this.replacer = replacer;\n    }\n    /**\n     * Encode a packet as a single string if non-binary, or as a\n     * buffer sequence, depending on packet type.\n     *\n     * @param {Object} obj - packet object\n     */\n    encode(obj) {\n        if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n            if (hasBinary(obj)) {\n                return this.encodeAsBinary({\n                    type: obj.type === PacketType.EVENT\n                        ? PacketType.BINARY_EVENT\n                        : PacketType.BINARY_ACK,\n                    nsp: obj.nsp,\n                    data: obj.data,\n                    id: obj.id,\n                });\n            }\n        }\n        return [this.encodeAsString(obj)];\n    }\n    /**\n     * Encode packet as string.\n     */\n    encodeAsString(obj) {\n        // first is type\n        let str = \"\" + obj.type;\n        // attachments if we have them\n        if (obj.type === PacketType.BINARY_EVENT ||\n            obj.type === PacketType.BINARY_ACK) {\n            str += obj.attachments + \"-\";\n        }\n        // if we have a namespace other than `/`\n        // we append it followed by a comma `,`\n        if (obj.nsp && \"/\" !== obj.nsp) {\n            str += obj.nsp + \",\";\n        }\n        // immediately followed by the id\n        if (null != obj.id) {\n            str += obj.id;\n        }\n        // json data\n        if (null != obj.data) {\n            str += JSON.stringify(obj.data, this.replacer);\n        }\n        return str;\n    }\n    /**\n     * Encode packet as 'buffer sequence' by removing blobs, and\n     * deconstructing packet into object with placeholders and\n     * a list of buffers.\n     */\n    encodeAsBinary(obj) {\n        const deconstruction = deconstructPacket(obj);\n        const pack = this.encodeAsString(deconstruction.packet);\n        const buffers = deconstruction.buffers;\n        buffers.unshift(pack); // add packet info to beginning of data list\n        return buffers; // write all the buffers\n    }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n    return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n    /**\n     * Decoder constructor\n     *\n     * @param {function} reviver - custom reviver to pass down to JSON.stringify\n     */\n    constructor(reviver) {\n        super();\n        this.reviver = reviver;\n    }\n    /**\n     * Decodes an encoded packet string into packet JSON.\n     *\n     * @param {String} obj - encoded packet\n     */\n    add(obj) {\n        let packet;\n        if (typeof obj === \"string\") {\n            if (this.reconstructor) {\n                throw new Error(\"got plaintext data when reconstructing a packet\");\n            }\n            packet = this.decodeString(obj);\n            const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n            if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n                packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n                // binary packet's json\n                this.reconstructor = new BinaryReconstructor(packet);\n                // no attachments, labeled binary but no binary data to follow\n                if (packet.attachments === 0) {\n                    super.emitReserved(\"decoded\", packet);\n                }\n            }\n            else {\n                // non-binary full packet\n                super.emitReserved(\"decoded\", packet);\n            }\n        }\n        else if (isBinary(obj) || obj.base64) {\n            // raw binary data\n            if (!this.reconstructor) {\n                throw new Error(\"got binary data when not reconstructing a packet\");\n            }\n            else {\n                packet = this.reconstructor.takeBinaryData(obj);\n                if (packet) {\n                    // received final buffer\n                    this.reconstructor = null;\n                    super.emitReserved(\"decoded\", packet);\n                }\n            }\n        }\n        else {\n            throw new Error(\"Unknown type: \" + obj);\n        }\n    }\n    /**\n     * Decode a packet String (JSON data)\n     *\n     * @param {String} str\n     * @return {Object} packet\n     */\n    decodeString(str) {\n        let i = 0;\n        // look up type\n        const p = {\n            type: Number(str.charAt(0)),\n        };\n        if (PacketType[p.type] === undefined) {\n            throw new Error(\"unknown packet type \" + p.type);\n        }\n        // look up attachments if type binary\n        if (p.type === PacketType.BINARY_EVENT ||\n            p.type === PacketType.BINARY_ACK) {\n            const start = i + 1;\n            while (str.charAt(++i) !== \"-\" && i != str.length) { }\n            const buf = str.substring(start, i);\n            if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n                throw new Error(\"Illegal attachments\");\n            }\n            p.attachments = Number(buf);\n        }\n        // look up namespace (if any)\n        if (\"/\" === str.charAt(i + 1)) {\n            const start = i + 1;\n            while (++i) {\n                const c = str.charAt(i);\n                if (\",\" === c)\n                    break;\n                if (i === str.length)\n                    break;\n            }\n            p.nsp = str.substring(start, i);\n        }\n        else {\n            p.nsp = \"/\";\n        }\n        // look up id\n        const next = str.charAt(i + 1);\n        if (\"\" !== next && Number(next) == next) {\n            const start = i + 1;\n            while (++i) {\n                const c = str.charAt(i);\n                if (null == c || Number(c) != c) {\n                    --i;\n                    break;\n                }\n                if (i === str.length)\n                    break;\n            }\n            p.id = Number(str.substring(start, i + 1));\n        }\n        // look up json data\n        if (str.charAt(++i)) {\n            const payload = this.tryParse(str.substr(i));\n            if (Decoder.isPayloadValid(p.type, payload)) {\n                p.data = payload;\n            }\n            else {\n                throw new Error(\"invalid payload\");\n            }\n        }\n        return p;\n    }\n    tryParse(str) {\n        try {\n            return JSON.parse(str, this.reviver);\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    static isPayloadValid(type, payload) {\n        switch (type) {\n            case PacketType.CONNECT:\n                return isObject(payload);\n            case PacketType.DISCONNECT:\n                return payload === undefined;\n            case PacketType.CONNECT_ERROR:\n                return typeof payload === \"string\" || isObject(payload);\n            case PacketType.EVENT:\n            case PacketType.BINARY_EVENT:\n                return (Array.isArray(payload) &&\n                    (typeof payload[0] === \"number\" ||\n                        (typeof payload[0] === \"string\" &&\n                            RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n            case PacketType.ACK:\n            case PacketType.BINARY_ACK:\n                return Array.isArray(payload);\n        }\n    }\n    /**\n     * Deallocates a parser's resources\n     */\n    destroy() {\n        if (this.reconstructor) {\n            this.reconstructor.finishedReconstruction();\n            this.reconstructor = null;\n        }\n    }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n    constructor(packet) {\n        this.packet = packet;\n        this.buffers = [];\n        this.reconPack = packet;\n    }\n    /**\n     * Method to be called when binary data received from connection\n     * after a BINARY_EVENT packet.\n     *\n     * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n     * @return {null | Object} returns null if more binary data is expected or\n     *   a reconstructed packet object if all buffers have been received.\n     */\n    takeBinaryData(binData) {\n        this.buffers.push(binData);\n        if (this.buffers.length === this.reconPack.attachments) {\n            // done with buffer list\n            const packet = reconstructPacket(this.reconPack, this.buffers);\n            this.finishedReconstruction();\n            return packet;\n        }\n        return null;\n    }\n    /**\n     * Cleans up binary packet reconstruction variables.\n     */\n    finishedReconstruction() {\n        this.reconPack = null;\n        this.buffers = [];\n    }\n}\n","export function on(obj, ev, fn) {\n    obj.on(ev, fn);\n    return function subDestroy() {\n        obj.off(ev, fn);\n    };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n    connect: 1,\n    connect_error: 1,\n    disconnect: 1,\n    disconnecting: 1,\n    // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n    newListener: 1,\n    removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n *   console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n *   // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n *   console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n    /**\n     * `Socket` constructor.\n     */\n    constructor(io, nsp, opts) {\n        super();\n        /**\n         * Whether the socket is currently connected to the server.\n         *\n         * @example\n         * const socket = io();\n         *\n         * socket.on(\"connect\", () => {\n         *   console.log(socket.connected); // true\n         * });\n         *\n         * socket.on(\"disconnect\", () => {\n         *   console.log(socket.connected); // false\n         * });\n         */\n        this.connected = false;\n        /**\n         * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n         * be transmitted by the server.\n         */\n        this.recovered = false;\n        /**\n         * Buffer for packets received before the CONNECT packet\n         */\n        this.receiveBuffer = [];\n        /**\n         * Buffer for packets that will be sent once the socket is connected\n         */\n        this.sendBuffer = [];\n        /**\n         * The queue of packets to be sent with retry in case of failure.\n         *\n         * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n         * @private\n         */\n        this._queue = [];\n        /**\n         * A sequence to generate the ID of the {@link QueuedPacket}.\n         * @private\n         */\n        this._queueSeq = 0;\n        this.ids = 0;\n        /**\n         * A map containing acknowledgement handlers.\n         *\n         * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n         *\n         * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n         * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n         * - `const value = await socket.emitWithAck(\"test\")`\n         *\n         * From those that don't:\n         *\n         * - `socket.emit(\"test\", (value) => { ... });`\n         *\n         * In the first case, the handlers will be called with an error when:\n         *\n         * - the timeout is reached\n         * - the socket gets disconnected\n         *\n         * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n         * an acknowledgement from the server.\n         *\n         * @private\n         */\n        this.acks = {};\n        this.flags = {};\n        this.io = io;\n        this.nsp = nsp;\n        if (opts && opts.auth) {\n            this.auth = opts.auth;\n        }\n        this._opts = Object.assign({}, opts);\n        if (this.io._autoConnect)\n            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 io = this.io;\n        this.subs = [\n            on(io, \"open\", this.onopen.bind(this)),\n            on(io, \"packet\", this.onpacket.bind(this)),\n            on(io, \"error\", this.onerror.bind(this)),\n            on(io, \"close\", this.onclose.bind(this)),\n        ];\n    }\n    /**\n     * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n     *\n     * @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        if (this.connected)\n            return this;\n        this.subEvents();\n        if (!this.io[\"_reconnecting\"])\n            this.io.open(); // ensure open\n        if (\"open\" === this.io._readyState)\n            this.onopen();\n        return this;\n    }\n    /**\n     * Alias for {@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(...args) {\n        args.unshift(\"message\");\n        this.emit.apply(this, args);\n        return this;\n    }\n    /**\n     * Override `emit`.\n     * If the event is in `events`, it's emitted normally.\n     *\n     * @example\n     * socket.emit(\"hello\", \"world\");\n     *\n     * // all serializable datastructures are supported (no need to call JSON.stringify)\n     * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n     *\n     * // with an acknowledgement from the server\n     * socket.emit(\"hello\", \"world\", (val) => {\n     *   // ...\n     * });\n     *\n     * @return self\n     */\n    emit(ev, ...args) {\n        var _a, _b, _c;\n        if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n            throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n        }\n        args.unshift(ev);\n        if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n            this._addToQueue(args);\n            return this;\n        }\n        const packet = {\n            type: PacketType.EVENT,\n            data: args,\n        };\n        packet.options = {};\n        packet.options.compress = this.flags.compress !== false;\n        // event ack callback\n        if (\"function\" === typeof args[args.length - 1]) {\n            const id = this.ids++;\n            const ack = args.pop();\n            this._registerAckCallback(id, ack);\n            packet.id = id;\n        }\n        const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n        const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n        const discardPacket = this.flags.volatile && !isTransportWritable;\n        if (discardPacket) {\n        }\n        else if (isConnected) {\n            this.notifyOutgoingListeners(packet);\n            this.packet(packet);\n        }\n        else {\n            this.sendBuffer.push(packet);\n        }\n        this.flags = {};\n        return this;\n    }\n    /**\n     * @private\n     */\n    _registerAckCallback(id, ack) {\n        var _a;\n        const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n        if (timeout === undefined) {\n            this.acks[id] = ack;\n            return;\n        }\n        // @ts-ignore\n        const timer = this.io.setTimeoutFn(() => {\n            delete this.acks[id];\n            for (let i = 0; i < this.sendBuffer.length; i++) {\n                if (this.sendBuffer[i].id === id) {\n                    this.sendBuffer.splice(i, 1);\n                }\n            }\n            ack.call(this, new Error(\"operation has timed out\"));\n        }, timeout);\n        const fn = (...args) => {\n            // @ts-ignore\n            this.io.clearTimeoutFn(timer);\n            ack.apply(this, args);\n        };\n        fn.withError = true;\n        this.acks[id] = fn;\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(ev, ...args) {\n        return new Promise((resolve, reject) => {\n            const fn = (arg1, arg2) => {\n                return arg1 ? reject(arg1) : resolve(arg2);\n            };\n            fn.withError = true;\n            args.push(fn);\n            this.emit(ev, ...args);\n        });\n    }\n    /**\n     * Add the packet to the queue.\n     * @param args\n     * @private\n     */\n    _addToQueue(args) {\n        let ack;\n        if (typeof args[args.length - 1] === \"function\") {\n            ack = args.pop();\n        }\n        const packet = {\n            id: this._queueSeq++,\n            tryCount: 0,\n            pending: false,\n            args,\n            flags: Object.assign({ fromQueue: true }, this.flags),\n        };\n        args.push((err, ...responseArgs) => {\n            if (packet !== this._queue[0]) {\n                // the packet has already been acknowledged\n                return;\n            }\n            const hasError = err !== null;\n            if (hasError) {\n                if (packet.tryCount > this._opts.retries) {\n                    this._queue.shift();\n                    if (ack) {\n                        ack(err);\n                    }\n                }\n            }\n            else {\n                this._queue.shift();\n                if (ack) {\n                    ack(null, ...responseArgs);\n                }\n            }\n            packet.pending = false;\n            return this._drainQueue();\n        });\n        this._queue.push(packet);\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(force = false) {\n        if (!this.connected || this._queue.length === 0) {\n            return;\n        }\n        const packet = this._queue[0];\n        if (packet.pending && !force) {\n            return;\n        }\n        packet.pending = true;\n        packet.tryCount++;\n        this.flags = packet.flags;\n        this.emit.apply(this, packet.args);\n    }\n    /**\n     * Sends a packet.\n     *\n     * @param packet\n     * @private\n     */\n    packet(packet) {\n        packet.nsp = this.nsp;\n        this.io._packet(packet);\n    }\n    /**\n     * Called upon engine `open`.\n     *\n     * @private\n     */\n    onopen() {\n        if (typeof this.auth == \"function\") {\n            this.auth((data) => {\n                this._sendConnectPacket(data);\n            });\n        }\n        else {\n            this._sendConnectPacket(this.auth);\n        }\n    }\n    /**\n     * Sends a CONNECT packet to initiate the Socket.IO session.\n     *\n     * @param data\n     * @private\n     */\n    _sendConnectPacket(data) {\n        this.packet({\n            type: PacketType.CONNECT,\n            data: this._pid\n                ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n                : data,\n        });\n    }\n    /**\n     * Called upon engine or manager `error`.\n     *\n     * @param err\n     * @private\n     */\n    onerror(err) {\n        if (!this.connected) {\n            this.emitReserved(\"connect_error\", err);\n        }\n    }\n    /**\n     * Called upon engine `close`.\n     *\n     * @param reason\n     * @param description\n     * @private\n     */\n    onclose(reason, description) {\n        this.connected = false;\n        delete this.id;\n        this.emitReserved(\"disconnect\", reason, description);\n        this._clearAcks();\n    }\n    /**\n     * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n     * the server.\n     *\n     * @private\n     */\n    _clearAcks() {\n        Object.keys(this.acks).forEach((id) => {\n            const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n            if (!isBuffered) {\n                // note: handlers that do not accept an error as first argument are ignored here\n                const ack = this.acks[id];\n                delete this.acks[id];\n                if (ack.withError) {\n                    ack.call(this, new Error(\"socket has been disconnected\"));\n                }\n            }\n        });\n    }\n    /**\n     * Called with socket packet.\n     *\n     * @param packet\n     * @private\n     */\n    onpacket(packet) {\n        const sameNamespace = packet.nsp === this.nsp;\n        if (!sameNamespace)\n            return;\n        switch (packet.type) {\n            case PacketType.CONNECT:\n                if (packet.data && packet.data.sid) {\n                    this.onconnect(packet.data.sid, packet.data.pid);\n                }\n                else {\n                    this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n                }\n                break;\n            case PacketType.EVENT:\n            case PacketType.BINARY_EVENT:\n                this.onevent(packet);\n                break;\n            case PacketType.ACK:\n            case PacketType.BINARY_ACK:\n                this.onack(packet);\n                break;\n            case PacketType.DISCONNECT:\n                this.ondisconnect();\n                break;\n            case PacketType.CONNECT_ERROR:\n                this.destroy();\n                const err = new Error(packet.data.message);\n                // @ts-ignore\n                err.data = packet.data.data;\n                this.emitReserved(\"connect_error\", err);\n                break;\n        }\n    }\n    /**\n     * Called upon a server event.\n     *\n     * @param packet\n     * @private\n     */\n    onevent(packet) {\n        const args = packet.data || [];\n        if (null != packet.id) {\n            args.push(this.ack(packet.id));\n        }\n        if (this.connected) {\n            this.emitEvent(args);\n        }\n        else {\n            this.receiveBuffer.push(Object.freeze(args));\n        }\n    }\n    emitEvent(args) {\n        if (this._anyListeners && this._anyListeners.length) {\n            const listeners = this._anyListeners.slice();\n            for (const listener of listeners) {\n                listener.apply(this, args);\n            }\n        }\n        super.emit.apply(this, args);\n        if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n            this._lastOffset = args[args.length - 1];\n        }\n    }\n    /**\n     * Produces an ack callback to emit with an event.\n     *\n     * @private\n     */\n    ack(id) {\n        const self = this;\n        let sent = false;\n        return function (...args) {\n            // prevent double callbacks\n            if (sent)\n                return;\n            sent = true;\n            self.packet({\n                type: PacketType.ACK,\n                id: id,\n                data: args,\n            });\n        };\n    }\n    /**\n     * Called upon a server acknowledgement.\n     *\n     * @param packet\n     * @private\n     */\n    onack(packet) {\n        const ack = this.acks[packet.id];\n        if (typeof ack !== \"function\") {\n            return;\n        }\n        delete this.acks[packet.id];\n        // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n        if (ack.withError) {\n            packet.data.unshift(null);\n        }\n        // @ts-ignore\n        ack.apply(this, packet.data);\n    }\n    /**\n     * Called upon server connect.\n     *\n     * @private\n     */\n    onconnect(id, pid) {\n        this.id = id;\n        this.recovered = pid && this._pid === pid;\n        this._pid = pid; // defined only if connection state recovery is enabled\n        this.connected = true;\n        this.emitBuffered();\n        this.emitReserved(\"connect\");\n        this._drainQueue(true);\n    }\n    /**\n     * Emit buffered events (received and emitted).\n     *\n     * @private\n     */\n    emitBuffered() {\n        this.receiveBuffer.forEach((args) => this.emitEvent(args));\n        this.receiveBuffer = [];\n        this.sendBuffer.forEach((packet) => {\n            this.notifyOutgoingListeners(packet);\n            this.packet(packet);\n        });\n        this.sendBuffer = [];\n    }\n    /**\n     * Called upon server disconnect.\n     *\n     * @private\n     */\n    ondisconnect() {\n        this.destroy();\n        this.onclose(\"io server disconnect\");\n    }\n    /**\n     * Called upon forced client/server side disconnections,\n     * this method ensures the manager stops tracking us and\n     * that reconnections don't get triggered for this.\n     *\n     * @private\n     */\n    destroy() {\n        if (this.subs) {\n            // clean subscriptions to avoid reconnections\n            this.subs.forEach((subDestroy) => subDestroy());\n            this.subs = undefined;\n        }\n        this.io[\"_destroy\"](this);\n    }\n    /**\n     * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n     *\n     * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n     *\n     * @example\n     * const socket = io();\n     *\n     * socket.on(\"disconnect\", (reason) => {\n     *   // console.log(reason); prints \"io client disconnect\"\n     * });\n     *\n     * socket.disconnect();\n     *\n     * @return self\n     */\n    disconnect() {\n        if (this.connected) {\n            this.packet({ type: PacketType.DISCONNECT });\n        }\n        // remove socket from pool\n        this.destroy();\n        if (this.connected) {\n            // fire events\n            this.onclose(\"io client disconnect\");\n        }\n        return this;\n    }\n    /**\n     * Alias for {@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(compress) {\n        this.flags.compress = compress;\n        return this;\n    }\n    /**\n     * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n     * ready to send messages.\n     *\n     * @example\n     * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n     *\n     * @returns self\n     */\n    get volatile() {\n        this.flags.volatile = true;\n        return this;\n    }\n    /**\n     * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n     * given number of milliseconds have elapsed without an acknowledgement from the server:\n     *\n     * @example\n     * socket.timeout(5000).emit(\"my-event\", (err) => {\n     *   if (err) {\n     *     // the server did not acknowledge the event in the given delay\n     *   }\n     * });\n     *\n     * @returns self\n     */\n    timeout(timeout) {\n        this.flags.timeout = timeout;\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback.\n     *\n     * @example\n     * socket.onAny((event, ...args) => {\n     *   console.log(`got ${event}`);\n     * });\n     *\n     * @param listener\n     */\n    onAny(listener) {\n        this._anyListeners = this._anyListeners || [];\n        this._anyListeners.push(listener);\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback. The listener is 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(listener) {\n        this._anyListeners = this._anyListeners || [];\n        this._anyListeners.unshift(listener);\n        return this;\n    }\n    /**\n     * Removes the listener that will be fired when any event is emitted.\n     *\n     * @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(listener) {\n        if (!this._anyListeners) {\n            return this;\n        }\n        if (listener) {\n            const listeners = this._anyListeners;\n            for (let i = 0; i < listeners.length; i++) {\n                if (listener === listeners[i]) {\n                    listeners.splice(i, 1);\n                    return this;\n                }\n            }\n        }\n        else {\n            this._anyListeners = [];\n        }\n        return this;\n    }\n    /**\n     * Returns an array of listeners that are listening for any event 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(listener) {\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n        this._anyOutgoingListeners.push(listener);\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback. The listener is added to the beginning of the listeners array.\n     *\n     * 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(listener) {\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n        this._anyOutgoingListeners.unshift(listener);\n        return this;\n    }\n    /**\n     * Removes the listener that will be fired when any event is emitted.\n     *\n     * @example\n     * const catchAllListener = (event, ...args) => {\n     *   console.log(`sent event ${event}`);\n     * }\n     *\n     * socket.onAnyOutgoing(catchAllListener);\n     *\n     * // remove a specific listener\n     * socket.offAnyOutgoing(catchAllListener);\n     *\n     * // or remove all listeners\n     * socket.offAnyOutgoing();\n     *\n     * @param [listener] - the catch-all listener (optional)\n     */\n    offAnyOutgoing(listener) {\n        if (!this._anyOutgoingListeners) {\n            return this;\n        }\n        if (listener) {\n            const listeners = this._anyOutgoingListeners;\n            for (let i = 0; i < listeners.length; i++) {\n                if (listener === listeners[i]) {\n                    listeners.splice(i, 1);\n                    return this;\n                }\n            }\n        }\n        else {\n            this._anyOutgoingListeners = [];\n        }\n        return this;\n    }\n    /**\n     * Returns an array of listeners that are listening for any event that is specified. This array can be 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(packet) {\n        if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n            const listeners = this._anyOutgoingListeners.slice();\n            for (const listener of listeners) {\n                listener.apply(this, packet.data);\n            }\n        }\n    }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n    opts = opts || {};\n    this.ms = opts.min || 100;\n    this.max = opts.max || 10000;\n    this.factor = opts.factor || 2;\n    this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n    this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n    var ms = this.ms * Math.pow(this.factor, this.attempts++);\n    if (this.jitter) {\n        var rand = Math.random();\n        var deviation = Math.floor(rand * this.jitter * ms);\n        ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n    }\n    return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n    this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n    this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n    this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n    this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n    constructor(uri, opts) {\n        var _a;\n        super();\n        this.nsps = {};\n        this.subs = [];\n        if (uri && \"object\" === typeof uri) {\n            opts = uri;\n            uri = undefined;\n        }\n        opts = opts || {};\n        opts.path = opts.path || \"/socket.io\";\n        this.opts = opts;\n        installTimerFunctions(this, opts);\n        this.reconnection(opts.reconnection !== false);\n        this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n        this.reconnectionDelay(opts.reconnectionDelay || 1000);\n        this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n        this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n        this.backoff = new Backoff({\n            min: this.reconnectionDelay(),\n            max: this.reconnectionDelayMax(),\n            jitter: this.randomizationFactor(),\n        });\n        this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n        this._readyState = \"closed\";\n        this.uri = uri;\n        const _parser = opts.parser || parser;\n        this.encoder = new _parser.Encoder();\n        this.decoder = new _parser.Decoder();\n        this._autoConnect = opts.autoConnect !== false;\n        if (this._autoConnect)\n            this.open();\n    }\n    reconnection(v) {\n        if (!arguments.length)\n            return this._reconnection;\n        this._reconnection = !!v;\n        if (!v) {\n            this.skipReconnect = true;\n        }\n        return this;\n    }\n    reconnectionAttempts(v) {\n        if (v === undefined)\n            return this._reconnectionAttempts;\n        this._reconnectionAttempts = v;\n        return this;\n    }\n    reconnectionDelay(v) {\n        var _a;\n        if (v === undefined)\n            return this._reconnectionDelay;\n        this._reconnectionDelay = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n        return this;\n    }\n    randomizationFactor(v) {\n        var _a;\n        if (v === undefined)\n            return this._randomizationFactor;\n        this._randomizationFactor = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n        return this;\n    }\n    reconnectionDelayMax(v) {\n        var _a;\n        if (v === undefined)\n            return this._reconnectionDelayMax;\n        this._reconnectionDelayMax = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n        return this;\n    }\n    timeout(v) {\n        if (!arguments.length)\n            return this._timeout;\n        this._timeout = v;\n        return this;\n    }\n    /**\n     * Starts trying to reconnect if reconnection is enabled and we have not\n     * started reconnecting yet\n     *\n     * @private\n     */\n    maybeReconnectOnOpen() {\n        // Only try to reconnect if it's the first time we're connecting\n        if (!this._reconnecting &&\n            this._reconnection &&\n            this.backoff.attempts === 0) {\n            // keeps reconnection from firing twice for the same reconnection loop\n            this.reconnect();\n        }\n    }\n    /**\n     * Sets the current transport `socket`.\n     *\n     * @param {Function} fn - optional, callback\n     * @return self\n     * @public\n     */\n    open(fn) {\n        if (~this._readyState.indexOf(\"open\"))\n            return this;\n        this.engine = new Engine(this.uri, this.opts);\n        const socket = this.engine;\n        const self = this;\n        this._readyState = \"opening\";\n        this.skipReconnect = false;\n        // emit `open`\n        const openSubDestroy = on(socket, \"open\", function () {\n            self.onopen();\n            fn && fn();\n        });\n        const onError = (err) => {\n            this.cleanup();\n            this._readyState = \"closed\";\n            this.emitReserved(\"error\", err);\n            if (fn) {\n                fn(err);\n            }\n            else {\n                // Only do this if there is no fn to handle the error\n                this.maybeReconnectOnOpen();\n            }\n        };\n        // emit `error`\n        const errorSub = on(socket, \"error\", onError);\n        if (false !== this._timeout) {\n            const timeout = this._timeout;\n            // set timer\n            const timer = this.setTimeoutFn(() => {\n                openSubDestroy();\n                onError(new Error(\"timeout\"));\n                socket.close();\n            }, timeout);\n            if (this.opts.autoUnref) {\n                timer.unref();\n            }\n            this.subs.push(() => {\n                this.clearTimeoutFn(timer);\n            });\n        }\n        this.subs.push(openSubDestroy);\n        this.subs.push(errorSub);\n        return this;\n    }\n    /**\n     * Alias for open()\n     *\n     * @return self\n     * @public\n     */\n    connect(fn) {\n        return this.open(fn);\n    }\n    /**\n     * Called upon transport open.\n     *\n     * @private\n     */\n    onopen() {\n        // clear old subs\n        this.cleanup();\n        // mark as open\n        this._readyState = \"open\";\n        this.emitReserved(\"open\");\n        // add new subs\n        const socket = this.engine;\n        this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n        // @ts-ignore\n        on(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(data) {\n        try {\n            this.decoder.add(data);\n        }\n        catch (e) {\n            this.onclose(\"parse error\", e);\n        }\n    }\n    /**\n     * Called when parser fully decodes a packet.\n     *\n     * @private\n     */\n    ondecoded(packet) {\n        // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n        nextTick(() => {\n            this.emitReserved(\"packet\", packet);\n        }, this.setTimeoutFn);\n    }\n    /**\n     * Called upon socket error.\n     *\n     * @private\n     */\n    onerror(err) {\n        this.emitReserved(\"error\", err);\n    }\n    /**\n     * Creates a new socket for the given `nsp`.\n     *\n     * @return {Socket}\n     * @public\n     */\n    socket(nsp, opts) {\n        let socket = this.nsps[nsp];\n        if (!socket) {\n            socket = new Socket(this, nsp, opts);\n            this.nsps[nsp] = socket;\n        }\n        else if (this._autoConnect && !socket.active) {\n            socket.connect();\n        }\n        return socket;\n    }\n    /**\n     * Called upon a socket close.\n     *\n     * @param socket\n     * @private\n     */\n    _destroy(socket) {\n        const nsps = Object.keys(this.nsps);\n        for (const nsp of nsps) {\n            const socket = this.nsps[nsp];\n            if (socket.active) {\n                return;\n            }\n        }\n        this._close();\n    }\n    /**\n     * Writes a packet.\n     *\n     * @param packet\n     * @private\n     */\n    _packet(packet) {\n        const encodedPackets = this.encoder.encode(packet);\n        for (let i = 0; i < encodedPackets.length; i++) {\n            this.engine.write(encodedPackets[i], packet.options);\n        }\n    }\n    /**\n     * Clean up transport subscriptions and packet buffer.\n     *\n     * @private\n     */\n    cleanup() {\n        this.subs.forEach((subDestroy) => subDestroy());\n        this.subs.length = 0;\n        this.decoder.destroy();\n    }\n    /**\n     * Close the current socket.\n     *\n     * @private\n     */\n    _close() {\n        this.skipReconnect = true;\n        this._reconnecting = false;\n        this.onclose(\"forced close\");\n    }\n    /**\n     * Alias for close()\n     *\n     * @private\n     */\n    disconnect() {\n        return this._close();\n    }\n    /**\n     * Called when:\n     *\n     * - the low-level engine is closed\n     * - the parser encountered a badly formatted packet\n     * - all sockets are disconnected\n     *\n     * @private\n     */\n    onclose(reason, description) {\n        var _a;\n        this.cleanup();\n        (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n        this.backoff.reset();\n        this._readyState = \"closed\";\n        this.emitReserved(\"close\", reason, description);\n        if (this._reconnection && !this.skipReconnect) {\n            this.reconnect();\n        }\n    }\n    /**\n     * Attempt a reconnection.\n     *\n     * @private\n     */\n    reconnect() {\n        if (this._reconnecting || this.skipReconnect)\n            return this;\n        const self = this;\n        if (this.backoff.attempts >= this._reconnectionAttempts) {\n            this.backoff.reset();\n            this.emitReserved(\"reconnect_failed\");\n            this._reconnecting = false;\n        }\n        else {\n            const delay = this.backoff.duration();\n            this._reconnecting = true;\n            const timer = this.setTimeoutFn(() => {\n                if (self.skipReconnect)\n                    return;\n                this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n                // check again for the case socket closed in above events\n                if (self.skipReconnect)\n                    return;\n                self.open((err) => {\n                    if (err) {\n                        self._reconnecting = false;\n                        self.reconnect();\n                        this.emitReserved(\"reconnect_error\", err);\n                    }\n                    else {\n                        self.onreconnect();\n                    }\n                });\n            }, delay);\n            if (this.opts.autoUnref) {\n                timer.unref();\n            }\n            this.subs.push(() => {\n                this.clearTimeoutFn(timer);\n            });\n        }\n    }\n    /**\n     * Called upon successful reconnect.\n     *\n     * @private\n     */\n    onreconnect() {\n        const attempt = this.backoff.attempts;\n        this._reconnecting = false;\n        this.backoff.reset();\n        this.emitReserved(\"reconnect\", attempt);\n    }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n    if (typeof uri === \"object\") {\n        opts = uri;\n        uri = undefined;\n    }\n    opts = opts || {};\n    const parsed = url(uri, opts.path || \"/socket.io\");\n    const source = parsed.source;\n    const id = parsed.id;\n    const path = parsed.path;\n    const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n    const newConnection = opts.forceNew ||\n        opts[\"force new connection\"] ||\n        false === opts.multiplex ||\n        sameNamespace;\n    let io;\n    if (newConnection) {\n        io = new Manager(source, opts);\n    }\n    else {\n        if (!cache[id]) {\n            cache[id] = new Manager(source, opts);\n        }\n        io = cache[id];\n    }\n    if (parsed.query && !opts.query) {\n        opts.query = parsed.queryKey;\n    }\n    return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n    Manager,\n    Socket,\n    io: lookup,\n    connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","let config = {\r\n  // Hardcoded API URL - clients should never configure this\r\n  FIREWALL_API_URL:\r\n    process.env.NODE_ENV === \"production\"\r\n      ? \"https://firewall-backend.onrender.com\"\r\n      : \"http://localhost:5000\", // Development fallback\r\n  API_KEY: \"\",\r\n  APP_ID: \"\",\r\n  REALTIME_MONITORING: true, // Default to true - this is a core firewall feature\r\n  DEBUG: process.env.NODE_ENV !== \"production\",\r\n};\r\n\r\n// Callback for WebSocket connection - to be set by firewallApi\r\nlet websocketConnector = null;\r\n\r\nexport const setWebSocketConnector = (connector) => {\r\n  websocketConnector = connector;\r\n};\r\n\r\nexport const setConfig = (newConfig) => {\r\n  // Validate required fields\r\n  if (newConfig.API_KEY && typeof newConfig.API_KEY !== \"string\") {\r\n    throw new Error(\"API_KEY must be a string\");\r\n  }\r\n  if (newConfig.APP_ID && typeof newConfig.APP_ID !== \"string\") {\r\n    throw new Error(\"APP_ID must be a string\");\r\n  }\r\n\r\n  // Filter out FIREWALL_API_URL from client configuration - security measure\r\n  const { FIREWALL_API_URL, ...allowedConfig } = newConfig;\r\n\r\n  if (FIREWALL_API_URL && config.DEBUG) {\r\n    console.warn(\r\n      \"⚠️ FIREWALL_API_URL cannot be overridden by clients for security reasons\"\r\n    );\r\n  }\r\n\r\n  config = { ...config, ...allowedConfig };\r\n\r\n  // Initialize WebSocket if monitoring is enabled and connector is available\r\n  if (config.REALTIME_MONITORING && config.APP_ID && websocketConnector) {\r\n    try {\r\n      websocketConnector(config.APP_ID, (data) => {\r\n        if (config.DEBUG) {\r\n          console.log(\"🚀 Real-time traffic update:\", data);\r\n        }\r\n      });\r\n    } catch (error) {\r\n      console.error(\"Failed to establish WebSocket connection:\", error);\r\n    }\r\n  }\r\n};\r\n\r\nexport const getConfig = () => config;\r\n\r\n// Helper function to validate URL\r\nconst isValidUrl = (string) => {\r\n  try {\r\n    new URL(string);\r\n    return true;\r\n  } catch (_) {\r\n    return false;\r\n  }\r\n};\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[iterator];\n\n  const _iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = _iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n\n  return postMessageSupported ? ((token, callbacks) => {\n    _global.addEventListener(\"message\", ({source, data}) => {\n      if (source === _global && data === token) {\n        callbacks.length && callbacks.shift()();\n      }\n    }, false);\n\n    return (cb) => {\n      callbacks.push(cb);\n      _global.postMessage(token, \"*\");\n    }\n  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n  typeof setImmediate === 'function',\n  isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap,\n  isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  if (response) {\n    this.response = response;\n    this.status = response.status ? response.status : null;\n  }\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (utils.isBoolean(value)) {\n      return value.toString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  if (utils.isFunction(options)) {\n    options = {\n      serialize: options\n    };\n  } \n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  _navigator as navigator,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isObject(header) && utils.isIterable(header)) {\n      let obj = {}, dest, key;\n      for (const entry of header) {\n        if (!utils.isArray(entry)) {\n          throw TypeError('Object iterator must return a key-value pair');\n        }\n\n        obj[key = entry[0]] = (dest = obj[key]) ?\n          (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n      }\n\n      setHeaders(obj, valueOrRewrite)\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  getSetCookie() {\n    return this.get(\"set-cookie\") || [];\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn.apply(null, args);\n  }\n\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if ( passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs)\n        }, threshold - passed);\n      }\n    }\n  }\n\n  const flush = () => lastArgs && invoke(lastArgs);\n\n  return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true\n    };\n\n    listener(data);\n  }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n\n  return [(loaded) => throttled[0]({\n    lengthComputable,\n    total,\n    loaded\n  }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n  url = new URL(url, platform.origin);\n\n  return (\n    origin.protocol === url.protocol &&\n    origin.host === url.host &&\n    (isMSIE || origin.port === url.port)\n  );\n})(\n  new URL(platform.origin),\n  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n  let isRelativeUrl = !isAbsoluteURL(requestedURL);\n  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, prop, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, prop , caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, prop , caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, prop , caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType, onUploadProgress, onDownloadProgress} = _config;\n    let onCanceled;\n    let uploadThrottled, downloadThrottled;\n    let flushUpload, flushDownload;\n\n    function done() {\n      flushUpload && flushUpload(); // flush events\n      flushDownload && flushDownload(); // flush events\n\n      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n      _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (onDownloadProgress) {\n      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n      request.addEventListener('progress', downloadThrottled);\n    }\n\n    // Not all browsers support upload events\n    if (onUploadProgress && request.upload) {\n      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n      request.upload.addEventListener('progress', uploadThrottled);\n\n      request.upload.addEventListener('loadend', flushUpload);\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n  const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n  if (timeout || length) {\n    let controller = new AbortController();\n\n    let aborted;\n\n    const onabort = function (reason) {\n      if (!aborted) {\n        aborted = true;\n        unsubscribe();\n        const err = reason instanceof Error ? reason : this.reason;\n        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n      }\n    }\n\n    let timer = timeout && setTimeout(() => {\n      timer = null;\n      onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n    }, timeout)\n\n    const unsubscribe = () => {\n      if (signals) {\n        timer && clearTimeout(timer);\n        timer = null;\n        signals.forEach(signal => {\n          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n        });\n        signals = null;\n      }\n    }\n\n    signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n    const {signal} = controller;\n\n    signal.unsubscribe = () => utils.asap(unsubscribe);\n\n    return signal;\n  }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n}\n\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const {done, value} = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n\n  let bytes = 0;\n  let done;\n  let _onFinish = (e) => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  }\n\n  return new ReadableStream({\n    async pull(controller) {\n      try {\n        const {done, value} = await iterator.next();\n\n        if (done) {\n         _onFinish();\n          controller.close();\n          return;\n        }\n\n        let len = value.byteLength;\n        if (onProgress) {\n          let loadedBytes = bytes += len;\n          onProgress(loadedBytes);\n        }\n        controller.enqueue(new Uint8Array(value));\n      } catch (err) {\n        _onFinish(err);\n        throw err;\n      }\n    },\n    cancel(reason) {\n      _onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false\n  }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n  test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    const _request = new Request(platform.origin, {\n      method: 'POST',\n      body,\n    });\n    return (await _request.arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n  let request;\n\n  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n      composedSignal.unsubscribe();\n  });\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        const [onProgress, flush] = progressEventDecorator(\n          requestContentLength,\n          progressEventReducer(asyncDecorator(onUploadProgress))\n        );\n\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'include' : 'omit';\n    }\n\n    // Cloudflare Workers throws when credentials are defined\n    // see https://github.com/cloudflare/workerd/issues/902\n    const isCredentialsSupported = \"credentials\" in Request.prototype;\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      credentials: isCredentialsSupported ? withCredentials : undefined\n    });\n\n    let response = await fetch(request, fetchOptions);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n        responseContentLength,\n        progressEventReducer(asyncDecorator(onDownloadProgress), true)\n      ) || [];\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n          flush && flush();\n          unsubscribe && unsubscribe();\n        }),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && unsubscribe && unsubscribe();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    unsubscribe && unsubscribe();\n\n    if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.10.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig || {};\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.allowAbsoluteUrls\n    if (config.allowAbsoluteUrls !== undefined) {\n      // do nothing\n    } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n    } else {\n      config.allowAbsoluteUrls = true;\n    }\n\n    validator.assertOptions(config, {\n      baseUrl: validators.spelling('baseURL'),\n      withXsrfToken: validators.spelling('withXSRFToken')\n    }, true);\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  toAbortSignal() {\n    const controller = new AbortController();\n\n    const abort = (err) => {\n      controller.abort(err);\n    };\n\n    this.subscribe(abort);\n\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n","import { io } from \"socket.io-client\";\r\nimport { getConfig, setWebSocketConnector } from \"../config/config\";\r\nimport axios from \"axios\";\r\nimport { getUserIP } from \"../utils/ipUtils\";\r\n\r\nlet socket = null;\r\nlet retryAttempts = 0;\r\nlet listenerCount = 0;\r\nconst MAX_RETRIES = 5;\r\nconst RETRY_DELAY = 1000;\r\n\r\n// Helper function to create SDK requests with proper headers\r\nconst createSDKRequest = (url, options = {}) => {\r\n  const { API_KEY } = getConfig();\r\n\r\n  return fetch(url, {\r\n    ...options,\r\n    headers: {\r\n      \"Content-Type\": \"application/json\",\r\n      \"x-api-key\": API_KEY,\r\n      \"x-sdk-request\": \"true\",\r\n      \"x-source\": \"cyshield-sdk\",\r\n      ...options.headers,\r\n    },\r\n  });\r\n};\r\n\r\n// Enhanced error handling function\r\nconst handleError = (error, context) => {\r\n  const config = getConfig();\r\n  if (config.DEBUG) {\r\n    console.error(`Error in ${context}:`, error);\r\n  }\r\n  return { error: error.message || \"Unknown error occurred\" };\r\n};\r\n\r\nexport const connectWebSocket = (appId, onTrafficUpdate) => {\r\n  const { FIREWALL_API_URL, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!appId || !FIREWALL_API_URL || !API_KEY) {\r\n    throw new Error(\"Missing required parameters for WebSocket connection\");\r\n  }\r\n\r\n  if (DEBUG) {\r\n    console.log(\"Connecting to:\", FIREWALL_API_URL);\r\n  }\r\n\r\n  const ensureConnection = () => {\r\n    if (!socket) {\r\n      try {\r\n        socket = io(`${FIREWALL_API_URL}/traffic`, {\r\n          query: {\r\n            appId,\r\n            apiKey: API_KEY,\r\n          },\r\n          reconnectionAttempts: MAX_RETRIES,\r\n          reconnectionDelay: RETRY_DELAY,\r\n          timeout: 10000,\r\n          transports: [\"websocket\", \"polling\"],\r\n        });\r\n\r\n        socket.on(\"connect\", () => {\r\n          if (DEBUG) {\r\n            console.log(`Connected to WebSocket for App: ${appId}`);\r\n          }\r\n          retryAttempts = 0;\r\n          socket.emit(\"subscribe\", { appId });\r\n        });\r\n\r\n        socket.on(\"subscribed\", (data) => {\r\n          if (DEBUG) {\r\n            console.log(\r\n              `✅ Successfully subscribed to app ${appId}:`,\r\n              data.message\r\n            );\r\n          }\r\n        });\r\n\r\n        socket.on(\"error\", (error) => {\r\n          if (DEBUG) {\r\n            console.error(\r\n              `❌ WebSocket server error for app ${appId}:`,\r\n              error.message\r\n            );\r\n          }\r\n        });\r\n\r\n        socket.on(\"disconnect\", (reason) => {\r\n          if (DEBUG) {\r\n            console.warn(\r\n              `WebSocket Disconnected (${reason}) for App: ${appId}`\r\n            );\r\n          }\r\n          if (reason === \"io server disconnect\") {\r\n            ensureConnection();\r\n          }\r\n        });\r\n\r\n        socket.on(\"connect_error\", (error) => {\r\n          if (DEBUG) {\r\n            console.error(\"WebSocket Connection Error:\", error);\r\n          }\r\n          if (retryAttempts < MAX_RETRIES) {\r\n            retryAttempts++;\r\n            setTimeout(\r\n              ensureConnection,\r\n              RETRY_DELAY * Math.pow(2, retryAttempts)\r\n            );\r\n          }\r\n        });\r\n      } catch (error) {\r\n        if (DEBUG) {\r\n          console.error(\"Failed to create WebSocket connection:\", error);\r\n        }\r\n        throw error;\r\n      }\r\n    }\r\n\r\n    if (socket?.connected) {\r\n      socket.emit(\"subscribe\", { appId });\r\n    } else {\r\n      socket?.once(\"connect\", () => socket.emit(\"subscribe\", { appId }));\r\n    }\r\n  };\r\n\r\n  ensureConnection();\r\n\r\n  const attachHandlers = () => {\r\n    if (!socket || typeof onTrafficUpdate !== \"function\") {\r\n      return () => {};\r\n    }\r\n\r\n    const trafficHandler = (data) => {\r\n      try {\r\n        onTrafficUpdate(data, \"traffic-update\");\r\n      } catch (error) {\r\n        if (DEBUG) {\r\n          console.error(\"Error in traffic update callback:\", error);\r\n        }\r\n      }\r\n    };\r\n\r\n    const blockStatusHandler = (data) => {\r\n      try {\r\n        onTrafficUpdate(data, \"block-status-update\");\r\n      } catch (error) {\r\n        if (DEBUG) {\r\n          console.error(\"Error in block-status-update callback:\", error);\r\n        }\r\n      }\r\n    };\r\n\r\n    socket.on(`traffic-update-${appId}`, trafficHandler);\r\n    socket.on(\"block-status-update\", blockStatusHandler);\r\n\r\n    return () => {\r\n      socket.off(`traffic-update-${appId}`, trafficHandler);\r\n      socket.off(\"block-status-update\", blockStatusHandler);\r\n    };\r\n  };\r\n\r\n  const detachHandlers = attachHandlers();\r\n  listenerCount += 1;\r\n\r\n  return () => {\r\n    detachHandlers();\r\n    listenerCount = Math.max(listenerCount - 1, 0);\r\n    if (listenerCount === 0) {\r\n      disconnectWebSocket();\r\n    }\r\n  };\r\n};\r\n\r\nexport const disconnectWebSocket = () => {\r\n  if (socket) {\r\n    socket.off(); // ✅ Properly clean up listeners\r\n    socket.disconnect();\r\n    socket = null;\r\n    const { DEBUG } = getConfig();\r\n    if (DEBUG) {\r\n      console.log(\"🔌 WebSocket Disconnected\");\r\n    }\r\n  }\r\n  listenerCount = 0;\r\n  retryAttempts = 0;\r\n};\r\n\r\n// Register the WebSocket connector with config to break circular dependency\r\nsetWebSocketConnector(connectWebSocket);\r\n\r\nexport const validateIP = async (ip) => {\r\n  const { FIREWALL_API_URL, APP_ID, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!ip) {\r\n    const error = \"IP address is required for validation.\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  if (!FIREWALL_API_URL || !APP_ID || !API_KEY) {\r\n    const error = \"Missing required configuration for IP validation\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  try {\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/apps/${APP_ID}/validate-ip`,\r\n      {\r\n        method: \"POST\",\r\n        body: JSON.stringify({ ip }),\r\n        headers: {\r\n          \"x-app-id\": APP_ID,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"validateIP\");\r\n  }\r\n};\r\n\r\nexport const logNavigationEvent = async () => {\r\n  const { FIREWALL_API_URL, APP_ID, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!FIREWALL_API_URL || !APP_ID || !API_KEY) {\r\n    if (DEBUG) {\r\n      console.warn(\"Missing configuration for navigation logging\");\r\n    }\r\n    return;\r\n  }\r\n\r\n  try {\r\n    const ip = await getUserIP();\r\n    if (!ip) {\r\n      if (DEBUG) {\r\n        console.warn(\"Unable to get IP for navigation logging\");\r\n      }\r\n      return;\r\n    }\r\n\r\n    const fullUrl = window.location.href;\r\n\r\n    // Direct fetch for traffic logging to avoid x-sdk-request header\r\n    const response = await fetch(\r\n      `${FIREWALL_API_URL}/api/apps/${APP_ID}/log-traffic`,\r\n      {\r\n        method: \"POST\",\r\n        headers: {\r\n          \"Content-Type\": \"application/json\",\r\n          \"x-api-key\": API_KEY,\r\n          \"x-app-id\": APP_ID,\r\n        },\r\n        body: JSON.stringify({\r\n          ip,\r\n          url: fullUrl,\r\n          method: \"NAVIGATE\",\r\n          statusCode: 200,\r\n          userAgent: navigator.userAgent,\r\n        }),\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    if (DEBUG) {\r\n      console.log(\"✅ Navigation event logged successfully\");\r\n    }\r\n  } catch (error) {\r\n    return handleError(error, \"logNavigationEvent\");\r\n  }\r\n};\r\n\r\nexport const logApiRequest = async (endpoint, method, statusCode) => {\r\n  const { FIREWALL_API_URL, APP_ID, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!FIREWALL_API_URL || !APP_ID || !API_KEY) {\r\n    if (DEBUG) {\r\n      console.warn(\"Missing configuration for API request logging\");\r\n    }\r\n    return;\r\n  }\r\n\r\n  try {\r\n    const ip = await getUserIP();\r\n    if (!ip) {\r\n      if (DEBUG) {\r\n        console.warn(\"Unable to get IP for API request logging\");\r\n      }\r\n      return;\r\n    }\r\n\r\n    // Direct fetch for traffic logging to avoid x-sdk-request header\r\n    const response = await fetch(\r\n      `${FIREWALL_API_URL}/api/apps/${APP_ID}/log-traffic`,\r\n      {\r\n        method: \"POST\",\r\n        headers: {\r\n          \"Content-Type\": \"application/json\",\r\n          \"x-api-key\": API_KEY,\r\n          \"x-app-id\": APP_ID,\r\n        },\r\n        body: JSON.stringify({\r\n          ip,\r\n          url: endpoint,\r\n          method,\r\n          statusCode,\r\n          userAgent: navigator.userAgent,\r\n        }),\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    if (DEBUG) {\r\n      console.log(\"✅ API request logged successfully\");\r\n    }\r\n  } catch (error) {\r\n    return handleError(error, \"logApiRequest\");\r\n  }\r\n};\r\n\r\nexport const setupAxiosInterceptors = (axiosInstance) => {\r\n  const { DEBUG } = getConfig();\r\n\r\n  const requestInterceptor = axiosInstance.interceptors.request.use(\r\n    (request) => {\r\n      // Add SDK header to identify requests from SDK\r\n      request.headers[\"x-sdk-request\"] = \"true\";\r\n      request.headers[\"x-source\"] = \"cyshield-sdk\";\r\n\r\n      if (DEBUG) {\r\n        console.log(\"Request Interceptor:\", request);\r\n      }\r\n      return request;\r\n    },\r\n    (error) => {\r\n      if (DEBUG) {\r\n        console.error(\"Request Interceptor Error:\", error);\r\n      }\r\n      return Promise.reject(error);\r\n    }\r\n  );\r\n\r\n  const responseInterceptor = axiosInstance.interceptors.response.use(\r\n    (response) => {\r\n      if (DEBUG) {\r\n        console.log(\"Response Interceptor:\", response);\r\n      }\r\n\r\n      // Safely log API request\r\n      if (response.config && response.config.url && response.config.method) {\r\n        logApiRequest(\r\n          response.config.url,\r\n          response.config.method.toUpperCase(),\r\n          response.status\r\n        ).catch((error) => {\r\n          if (DEBUG) {\r\n            console.error(\"Failed to log API request:\", error);\r\n          }\r\n        });\r\n      }\r\n\r\n      return response;\r\n    },\r\n    (error) => {\r\n      if (DEBUG) {\r\n        console.error(\"Response Interceptor Error:\", error);\r\n      }\r\n\r\n      if (error.response && error.config) {\r\n        logApiRequest(\r\n          error.config.url,\r\n          error.config.method.toUpperCase(),\r\n          error.response.status\r\n        ).catch((logError) => {\r\n          if (DEBUG) {\r\n            console.error(\"Failed to log API error:\", logError);\r\n          }\r\n        });\r\n      }\r\n\r\n      return Promise.reject(error);\r\n    }\r\n  );\r\n\r\n  // Return cleanup function\r\n  return () => {\r\n    axiosInstance.interceptors.request.eject(requestInterceptor);\r\n    axiosInstance.interceptors.response.eject(responseInterceptor);\r\n  };\r\n};\r\n\r\nexport const analyzeIPRisk = async (ip) => {\r\n  const { FIREWALL_API_URL, APP_ID, DEBUG } = getConfig();\r\n\r\n  if (!ip) {\r\n    const error = \"IP address is required for risk analysis.\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  if (!FIREWALL_API_URL) {\r\n    const error = \"Missing required configuration for IP analysis\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  try {\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/ip/analyze`,\r\n      {\r\n        method: \"POST\",\r\n        body: JSON.stringify({ ip }),\r\n        headers: {\r\n          \"x-app-id\": APP_ID,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"analyzeIPRisk\");\r\n  }\r\n};\r\n\r\nexport const fetchTrafficLogs = async (appId, page = 1, limit = 50) => {\r\n  const { FIREWALL_API_URL, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!appId || !FIREWALL_API_URL || !API_KEY) {\r\n    const error = \"Missing required parameters for fetching traffic logs\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  try {\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/apps/${appId}/traffic-logs?page=${page}&limit=${limit}`,\r\n      {\r\n        method: \"GET\",\r\n        headers: {\r\n          \"x-app-id\": appId,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"fetchTrafficLogs\");\r\n  }\r\n};\r\n\r\nexport const getBlockedIPs = async (appId) => {\r\n  const { FIREWALL_API_URL, API_KEY, DEBUG } = getConfig();\r\n\r\n  if (!appId || !FIREWALL_API_URL || !API_KEY) {\r\n    const error = \"Missing required parameters for fetching blocked IPs\";\r\n    if (DEBUG) {\r\n      console.error(\"❌\", error);\r\n    }\r\n    return { error };\r\n  }\r\n\r\n  try {\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/apps/${appId}/blocked-ips`,\r\n      {\r\n        method: \"GET\",\r\n        headers: {\r\n          \"x-app-id\": appId,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"getBlockedIPs\");\r\n  }\r\n};\r\n\r\n// Block an IP address\r\nexport const blockIP = async (appId, ip) => {\r\n  try {\r\n    const { FIREWALL_API_URL } = getConfig();\r\n\r\n    if (!appId || !ip) {\r\n      const error = \"Missing required parameters for blocking IP\";\r\n      console.error(error);\r\n      return { error };\r\n    }\r\n\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/apps/${appId}/block-ip`,\r\n      {\r\n        method: \"POST\",\r\n        body: JSON.stringify({ ip }),\r\n        headers: {\r\n          \"x-app-id\": appId,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"blockIP\");\r\n  }\r\n};\r\n\r\n// Unblock an IP address\r\nexport const unblockIP = async (appId, ip) => {\r\n  try {\r\n    const { FIREWALL_API_URL } = getConfig();\r\n\r\n    if (!appId || !ip) {\r\n      const error = \"Missing required parameters for unblocking IP\";\r\n      console.error(error);\r\n      return { error };\r\n    }\r\n\r\n    const response = await createSDKRequest(\r\n      `${FIREWALL_API_URL}/api/apps/${appId}/unblock-ip`,\r\n      {\r\n        method: \"POST\",\r\n        body: JSON.stringify({ ip }),\r\n        headers: {\r\n          \"x-app-id\": appId,\r\n        },\r\n      }\r\n    );\r\n\r\n    if (!response.ok) {\r\n      throw new Error(`HTTP error! Status: ${response.status}`);\r\n    }\r\n\r\n    const result = await response.json();\r\n    return result;\r\n  } catch (error) {\r\n    return handleError(error, \"unblockIP\");\r\n  }\r\n};\r\n","import { getUserIP } from \"../utils/ipUtils\";\r\nimport { validateIP } from \"../api/firewallApi\";\r\nimport { getConfig } from \"../config/config\";\r\n\r\nexport const checkIP = async () => {\r\n  const { DEBUG } = getConfig();\r\n\r\n  try {\r\n    const ip = await getUserIP();\r\n    if (!ip) {\r\n      throw new Error(\"Unable to fetch IP address.\");\r\n    }\r\n\r\n    const result = await validateIP(ip);\r\n\r\n    // Handle error response from API\r\n    if (result.error) {\r\n      throw new Error(result.error);\r\n    }\r\n\r\n    // Validate response structure\r\n    if (!result || typeof result.blocked !== \"boolean\") {\r\n      throw new Error(\"Invalid response from firewall service\");\r\n    }\r\n\r\n    return result.blocked;\r\n  } catch (error) {\r\n    if (DEBUG) {\r\n      console.error(\"Error checking IP:\", error);\r\n    }\r\n\r\n    // In production, we might want to fail open (allow access) rather than fail closed\r\n    // This prevents the firewall from breaking the user experience if there are network issues\r\n    const config = getConfig();\r\n    const shouldFailOpen = !config.STRICT_MODE; // Add a config option for this\r\n\r\n    if (shouldFailOpen) {\r\n      if (DEBUG) {\r\n        console.warn(\"Failing open due to IP validation error\");\r\n      }\r\n      return false; // Allow access\r\n    }\r\n\r\n    throw new Error(`IP validation failed: ${error.message}`);\r\n  }\r\n};\r\n","import React, { useEffect, useState, useCallback, useRef } from \"react\";\r\nimport { checkIP } from \"../services/firewallService\";\r\nimport { connectWebSocket, logNavigationEvent } from \"../api/firewallApi\";\r\nimport { getUserIP } from \"../utils/ipUtils\";\r\nimport { getConfig } from \"../config/config\";\r\nimport axios from \"axios\";\r\n\r\nconst ProtectedPage = ({ children, loadingComponent, blockedComponent }) => {\r\n  const [isBlocked, setIsBlocked] = useState(false);\r\n  const [loading, setLoading] = useState(true);\r\n  const [error, setError] = useState(null);\r\n  const userIPRef = useRef(null);\r\n\r\n  // Memoize the IP validation function\r\n  const validateIP = useCallback(async () => {\r\n    try {\r\n      const blocked = await checkIP();\r\n      setIsBlocked(blocked);\r\n      setError(null);\r\n    } catch (error) {\r\n      const config = getConfig();\r\n      if (config.DEBUG) {\r\n        console.error(\"Error validating IP:\", error);\r\n      }\r\n      setError(error.message);\r\n      setIsBlocked(false); // Fail open for better UX\r\n    } finally {\r\n      setLoading(false);\r\n    }\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    const { APP_ID, REALTIME_MONITORING, DEBUG } = getConfig();\r\n    let cleanup = null;\r\n\r\n    validateIP();\r\n\r\n\r\n    const resolveUserIP = async () => {\r\n      if (!userIPRef.current) {\r\n        try {\r\n          const ip = await getUserIP();\r\n          userIPRef.current = typeof ip === \"string\" ? ip.trim() : ip;\r\n        } catch (ipError) {\r\n          if (DEBUG) {\r\n            console.error(\"Failed to resolve user IP:\", ipError);\r\n          }\r\n        }\r\n      }\r\n      return userIPRef.current;\r\n    };\r\n\r\n    resolveUserIP();\r\n\r\n    if (REALTIME_MONITORING && APP_ID) {\r\n      try {\r\n        cleanup = connectWebSocket(APP_ID, async (data, event) => {\r\n          const eventType = event || data?.event;\r\n\r\n          if (eventType !== \"block-status-update\") {\r\n            return;\r\n          }\r\n\r\n          if (DEBUG) {\r\n            console.log(\"🚨 block-status-update received:\", data);\r\n          }\r\n\r\n          try {\r\n            const payloadIP = typeof data?.ip === \"string\" ? data.ip.trim() : data?.ip;\r\n            const currentIP = await resolveUserIP();\r\n\r\n            if (payloadIP && currentIP && payloadIP === currentIP) {\r\n              setIsBlocked(Boolean(data.blocked));\r\n            } else {\r\n              const blocked = await checkIP();\r\n              setIsBlocked(blocked);\r\n            }\r\n          } catch (refreshError) {\r\n            if (DEBUG) {\r\n              console.error(\"Failed to handle block-status-update:\", refreshError);\r\n            }\r\n          }\r\n        });\r\n      } catch (error) {\r\n        if (DEBUG) {\r\n          console.error(\"Failed to connect WebSocket:\", error);\r\n        }\r\n      }\r\n    }\r\n\r\n    return () => {\r\n      if (cleanup && typeof cleanup === 'function') {\r\n        cleanup();\r\n      }\r\n    };\r\n  }, [validateIP]);\r\n\r\n  // Log navigation events with error handling\r\n  useEffect(() => {\r\n    const config = getConfig();\r\n\r\n    const handlePopState = () => {\r\n      try {\r\n        logNavigationEvent(window.location.pathname);\r\n      } catch (error) {\r\n        if (config.DEBUG) {\r\n          console.error(\"Failed to log navigation event:\", error);\r\n        }\r\n      }\r\n    };\r\n\r\n    const originalPushState = window.history.pushState;\r\n    const originalReplaceState = window.history.replaceState;\r\n\r\n    const handleStateChange = () => {\r\n      try {\r\n        logNavigationEvent(window.location.pathname);\r\n      } catch (error) {\r\n        if (config.DEBUG) {\r\n          console.error(\"Failed to log navigation event:\", error);\r\n        }\r\n      }\r\n    };\r\n\r\n    window.history.pushState = function (...args) {\r\n      originalPushState.apply(this, args);\r\n      handleStateChange();\r\n    };\r\n\r\n    window.history.replaceState = function (...args) {\r\n      originalReplaceState.apply(this, args);\r\n      handleStateChange();\r\n    };\r\n\r\n    window.addEventListener('popstate', handlePopState);\r\n\r\n    return () => {\r\n      window.history.pushState = originalPushState;\r\n      window.history.replaceState = originalReplaceState;\r\n      window.removeEventListener('popstate', handlePopState);\r\n    };\r\n  }, []);\r\n\r\n  // Set up Axios interceptors with error handling\r\n  useEffect(() => {\r\n    const config = getConfig();\r\n\r\n    const requestInterceptor = axios.interceptors.request.use(\r\n      (request) => {\r\n        if (config.DEBUG) {\r\n          console.log(\"Request Interceptor:\", request);\r\n        }\r\n        return request;\r\n      },\r\n      (error) => {\r\n        if (config.DEBUG) {\r\n          console.error(\"Request Interceptor Error:\", error);\r\n        }\r\n        return Promise.reject(error);\r\n      }\r\n    );\r\n\r\n    const responseInterceptor = axios.interceptors.response.use(\r\n      (response) => {\r\n        if (config.DEBUG) {\r\n          console.log(\"Response Interceptor:\", response);\r\n        }\r\n        try {\r\n          // Safely log API request with error handling\r\n          if (response.config && response.config.url && response.config.method) {\r\n            // Dynamic import to avoid circular dependency\r\n            import(\"../api/firewallApi\").then(({ logApiRequest }) => {\r\n              logApiRequest(\r\n                response.config.url,\r\n                response.config.method.toUpperCase(),\r\n                response.status\r\n              ).catch(err => {\r\n                if (config.DEBUG) {\r\n                  console.error(\"Failed to log API request:\", err);\r\n                }\r\n              });\r\n            });\r\n          }\r\n        } catch (error) {\r\n          if (config.DEBUG) {\r\n            console.error(\"Error in response interceptor:\", error);\r\n          }\r\n        }\r\n        return response;\r\n      },\r\n      (error) => {\r\n        if (config.DEBUG) {\r\n          console.error(\"Response Interceptor Error:\", error);\r\n        }\r\n        if (error.response && error.config) {\r\n          try {\r\n            // Dynamic import to avoid circular dependency\r\n            import(\"../api/firewallApi\").then(({ logApiRequest }) => {\r\n              logApiRequest(\r\n                error.config.url,\r\n                error.config.method.toUpperCase(),\r\n                error.response.status\r\n              ).catch(err => {\r\n                if (config.DEBUG) {\r\n                  console.error(\"Failed to log API error:\", err);\r\n                }\r\n              });\r\n            });\r\n          } catch (logError) {\r\n            if (config.DEBUG) {\r\n              console.error(\"Error logging API error:\", logError);\r\n            }\r\n          }\r\n        }\r\n        return Promise.reject(error);\r\n      }\r\n    );\r\n\r\n    return () => {\r\n      axios.interceptors.request.eject(requestInterceptor);\r\n      axios.interceptors.response.eject(responseInterceptor);\r\n    };\r\n  }, []);\r\n\r\n  // Custom loading component\r\n  if (loading) {\r\n    return loadingComponent || (\r\n      <div className=\"flex items-center justify-center min-h-screen\">\r\n        <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600\"></div>\r\n        <span className=\"ml-3 text-gray-600\">Validating access...</span>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  // Error state\r\n  if (error) {\r\n    return (\r\n      <div className=\"flex items-center justify-center min-h-screen\">\r\n        <div className=\"text-center\">\r\n          <div className=\"mx-auto flex items-center justify-center h-12 w-12 rounded-full bg-yellow-100\">\r\n            <svg className=\"h-6 w-6 text-yellow-600\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n              <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.728-.833-2.498 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\" />\r\n            </svg>\r\n          </div>\r\n          <h3 className=\"mt-2 text-sm font-medium text-gray-900\">Validation Error</h3>\r\n          <p className=\"mt-1 text-sm text-gray-500\">\r\n            Unable to validate access. You can continue, but some features may be limited.\r\n          </p>\r\n          <div className=\"mt-6\">\r\n            <button\r\n              type=\"button\"\r\n              onClick={() => {\r\n                setError(null);\r\n                setLoading(true);\r\n                validateIP();\r\n              }}\r\n              className=\"inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\r\n            >\r\n              Retry\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  // Blocked state\r\n  if (isBlocked) {\r\n    return blockedComponent || (\r\n      <div style={{\r\n        position: 'fixed',\r\n        top: 0,\r\n        left: 0,\r\n        width: '100vw',\r\n        height: '100vh',\r\n        zIndex: 2147483647,\r\n        background: 'rgba(255, 255, 255, 0.98)',\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        justifyContent: 'center',\r\n        pointerEvents: 'all',\r\n        margin: 0,\r\n        padding: 0,\r\n      }}>\r\n        <div style={{\r\n          textAlign: 'center',\r\n          border: '5px solid #dc2626',\r\n          borderRadius: '32px',\r\n          padding: '3rem',\r\n          boxShadow: '0 8px 40px 0 rgba(220,38,38,0.15)',\r\n          background: '#fff',\r\n          maxWidth: 480,\r\n          width: '90vw',\r\n        }}>\r\n          <div style={{\r\n            margin: '0 auto',\r\n            display: 'flex',\r\n            alignItems: 'center',\r\n            justifyContent: 'center',\r\n            height: 80,\r\n            width: 80,\r\n            borderRadius: '50%',\r\n            background: '#fee2e2',\r\n            border: '4px solid #f87171',\r\n          }}>\r\n            <svg style={{ height: 48, width: 48, color: '#dc2626', animation: 'pulse 1.5s infinite' }} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n              <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728L5.636 5.636m12.728 12.728L18.364 5.636\" />\r\n            </svg>\r\n          </div>\r\n          <h1 style={{ marginTop: 24, fontSize: 40, fontWeight: 800, color: '#dc2626', letterSpacing: 2, textShadow: '0 2px 8px #fca5a5' }}>ACCESS DENIED</h1>\r\n          <p style={{ marginTop: 16, fontSize: 20, color: '#b91c1c', fontWeight: 600 }}>\r\n            Your IP address has been <span style={{ fontWeight: 700 }}>blocked</span> for security reasons.<br />\r\n            If you believe this is a mistake, please contact support.\r\n          </p>\r\n        </div>\r\n        <style>{`\r\n          @keyframes pulse {\r\n            0%, 100% { opacity: 1; }\r\n            50% { opacity: 0.5; }\r\n          }\r\n        `}</style>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  return <div>{children}</div>;\r\n};\r\n\r\nexport default ProtectedPage;","function _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nexport { _createClass as default };","import { getConfig } from \"../config/config\";\r\nimport { analyzeIPRisk, getBlockedIPs } from \"../api/firewallApi\";\r\nimport { getUserIP } from \"../utils/ipUtils\";\r\n\r\n// Enhanced threat detection service\r\nexport class ThreatDetectionService {\r\n  constructor() {\r\n    this.threatCache = new Map();\r\n    this.behaviorMetrics = {\r\n      pageViews: 0,\r\n      navigationPatterns: [],\r\n      mouseMovements: [],\r\n      keystrokes: [],\r\n      suspiciousActivity: 0,\r\n    };\r\n  }\r\n\r\n  // Advanced IP analysis with caching\r\n  async analyzeCurrentIP() {\r\n    const { DEBUG } = getConfig();\r\n\r\n    try {\r\n      const ip = await getUserIP();\r\n      if (!ip) {\r\n        throw new Error(\"Unable to get IP address\");\r\n      }\r\n\r\n      // Check cache first\r\n      if (this.threatCache.has(ip)) {\r\n        const cached = this.threatCache.get(ip);\r\n        const isExpired = Date.now() - cached.timestamp > 300000; // 5 minutes\r\n\r\n        if (!isExpired) {\r\n          if (DEBUG) {\r\n            console.log(\"Using cached threat analysis for IP:\", ip);\r\n          }\r\n          return cached.data;\r\n        }\r\n      }\r\n\r\n      // Fetch fresh analysis\r\n      const analysis = await analyzeIPRisk(ip);\r\n\r\n      if (!analysis.error) {\r\n        // Cache the result\r\n        this.threatCache.set(ip, {\r\n          data: analysis,\r\n          timestamp: Date.now(),\r\n        });\r\n      }\r\n\r\n      return analysis;\r\n    } catch (error) {\r\n      if (DEBUG) {\r\n        console.error(\"Error in IP analysis:\", error);\r\n      }\r\n      return { error: error.message };\r\n    }\r\n  }\r\n\r\n  // Check if current IP is in blocked list\r\n  async isCurrentIPBlocked(appId) {\r\n    const { DEBUG } = getConfig();\r\n\r\n    try {\r\n      const ip = await getUserIP();\r\n      if (!ip) {\r\n        return false;\r\n      }\r\n\r\n      const blockedIPs = await getBlockedIPs(appId);\r\n\r\n      if (blockedIPs.error) {\r\n        if (DEBUG) {\r\n          console.warn(\"Could not fetch blocked IPs:\", blockedIPs.error);\r\n        }\r\n        return false;\r\n      }\r\n\r\n      return blockedIPs.blockedIPs?.includes(ip) || false;\r\n    } catch (error) {\r\n      if (DEBUG) {\r\n        console.error(\"Error checking blocked IP status:\", error);\r\n      }\r\n      return false;\r\n    }\r\n  }\r\n\r\n  // Basic behavioral analysis\r\n  trackPageView(url) {\r\n    this.behaviorMetrics.pageViews++;\r\n    this.behaviorMetrics.navigationPatterns.push({\r\n      url,\r\n      timestamp: Date.now(),\r\n    });\r\n\r\n    // Keep only last 50 page views\r\n    if (this.behaviorMetrics.navigationPatterns.length > 50) {\r\n      this.behaviorMetrics.navigationPatterns.shift();\r\n    }\r\n\r\n    // Detect rapid navigation (potential bot behavior)\r\n    if (this.behaviorMetrics.navigationPatterns.length >= 3) {\r\n      const recentNavigations =\r\n        this.behaviorMetrics.navigationPatterns.slice(-3);\r\n      const timeSpan =\r\n        recentNavigations[2].timestamp - recentNavigations[0].timestamp;\r\n\r\n      if (timeSpan < 1000) {\r\n        // Less than 1 second for 3 page views\r\n        this.behaviorMetrics.suspiciousActivity++;\r\n        const { DEBUG } = getConfig();\r\n        if (DEBUG) {\r\n          console.warn(\"Suspicious rapid navigation detected\");\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  // Mouse movement tracking (basic bot detection)\r\n  trackMouseMovement(x, y) {\r\n    const timestamp = Date.now();\r\n    this.behaviorMetrics.mouseMovements.push({ x, y, timestamp });\r\n\r\n    // Keep only last 100 movements\r\n    if (this.behaviorMetrics.mouseMovements.length > 100) {\r\n      this.behaviorMetrics.mouseMovements.shift();\r\n    }\r\n\r\n    // Detect unnatural mouse patterns\r\n    if (this.behaviorMetrics.mouseMovements.length >= 10) {\r\n      const recent = this.behaviorMetrics.mouseMovements.slice(-10);\r\n      const isLinear = this.detectLinearMouseMovement(recent);\r\n\r\n      if (isLinear) {\r\n        this.behaviorMetrics.suspiciousActivity++;\r\n        const { DEBUG } = getConfig();\r\n        if (DEBUG) {\r\n          console.warn(\"Suspicious linear mouse movement detected\");\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  // Simple linear movement detection\r\n  detectLinearMouseMovement(movements) {\r\n    if (movements.length < 5) return false;\r\n\r\n    let linearCount = 0;\r\n    for (let i = 1; i < movements.length - 1; i++) {\r\n      const prev = movements[i - 1];\r\n      const curr = movements[i];\r\n      const next = movements[i + 1];\r\n\r\n      // Check if movement is perfectly linear\r\n      const slope1 = (curr.y - prev.y) / (curr.x - prev.x || 1);\r\n      const slope2 = (next.y - curr.y) / (next.x - curr.x || 1);\r\n\r\n      if (Math.abs(slope1 - slope2) < 0.1) {\r\n        linearCount++;\r\n      }\r\n    }\r\n\r\n    return linearCount > movements.length * 0.7; // 70% linear movements\r\n  }\r\n\r\n  // Get current threat level\r\n  getThreatLevel() {\r\n    const { suspiciousActivity, pageViews } = this.behaviorMetrics;\r\n\r\n    if (suspiciousActivity === 0) return \"low\";\r\n\r\n    const suspiciousRatio = suspiciousActivity / Math.max(pageViews, 1);\r\n\r\n    if (suspiciousRatio > 0.5) return \"high\";\r\n    if (suspiciousRatio > 0.2) return \"medium\";\r\n    return \"low\";\r\n  }\r\n\r\n  // Get behavioral metrics summary\r\n  getBehaviorMetrics() {\r\n    return {\r\n      ...this.behaviorMetrics,\r\n      threatLevel: this.getThreatLevel(),\r\n    };\r\n  }\r\n\r\n  // Clear cached data\r\n  clearCache() {\r\n    this.threatCache.clear();\r\n    this.behaviorMetrics = {\r\n      pageViews: 0,\r\n      navigationPatterns: [],\r\n      mouseMovements: [],\r\n      keystrokes: [],\r\n      suspiciousActivity: 0,\r\n    };\r\n  }\r\n}\r\n\r\n// Singleton instance\r\nexport const threatDetection = new ThreatDetectionService();\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { getConfig } from \"../config/config\";\r\nimport { threatDetection } from \"../services/threatDetectionService\";\r\nimport { checkIP } from \"../services/firewallService\";\r\nimport { connectWebSocket, disconnectWebSocket, logNavigationEvent } from \"../api/firewallApi\";\r\nimport { getUserIP } from \"../utils/ipUtils\";\r\n\r\nconst EnhancedProtectedPage = ({\r\n    children,\r\n    loadingComponent,\r\n    blockedComponent,\r\n    suspiciousComponent,\r\n    onThreatDetected,\r\n    enableBehaviorTracking = true,\r\n    enableIPAnalysis = true,\r\n}) => {\r\n    const [isBlocked, setIsBlocked] = useState(false);\r\n    const [loading, setLoading] = useState(true);\r\n    const [error, setError] = useState(null);\r\n    const [threatLevel, setThreatLevel] = useState(\"low\");\r\n    const [ipAnalysis, setIPAnalysis] = useState(null);\r\n\r\n    // Initialize threat detection and IP validation\r\n    useEffect(() => {\r\n        const initializeSecurity = async () => {\r\n            const config = getConfig();\r\n\r\n            try {\r\n                setLoading(true);\r\n\r\n                // Basic IP validation\r\n                const blocked = await checkIP();\r\n                setIsBlocked(blocked);\r\n\r\n                // Enhanced IP analysis if enabled\r\n                if (enableIPAnalysis) {\r\n                    const analysis = await threatDetection.analyzeCurrentIP();\r\n                    if (!analysis.error) {\r\n                        setIPAnalysis(analysis);\r\n\r\n                        // Check if IP analysis indicates high risk\r\n                        if (analysis.riskScore > 0.8) {\r\n                            setThreatLevel(\"high\");\r\n                            if (onThreatDetected) {\r\n                                onThreatDetected({\r\n                                    type: \"high_risk_ip\",\r\n                                    data: analysis,\r\n                                    timestamp: Date.now(),\r\n                                });\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n\r\n                setError(null);\r\n            } catch (err) {\r\n                if (config.DEBUG) {\r\n                    console.error(\"Error initializing security:\", err);\r\n                }\r\n                setError(err.message);\r\n                setIsBlocked(false); // Fail open for better UX\r\n            } finally {\r\n                setLoading(false);\r\n            }\r\n        };\r\n\r\n        initializeSecurity();\r\n    }, [enableIPAnalysis, onThreatDetected]);\r\n\r\n    // Setup real-time monitoring\r\n    useEffect(() => {\r\n        const config = getConfig();\r\n        const { APP_ID, REALTIME_MONITORING } = config;\r\n\r\n        let cleanup = null;\r\n\r\n        if (REALTIME_MONITORING && APP_ID) {\r\n            try {\r\n                cleanup = connectWebSocket(APP_ID, (data) => {\r\n                    if (config.DEBUG) {\r\n                        console.log(\"🚀 Real-time security update:\", data);\r\n                    }\r\n\r\n                    // Handle real-time security updates\r\n                    if (data.type === \"ip_blocked\" && data.ip) {\r\n                        threatDetection.analyzeCurrentIP().then((analysis) => {\r\n                            if (!analysis.error && analysis.ip === data.ip) {\r\n                                setIsBlocked(true);\r\n                                if (onThreatDetected) {\r\n                                    onThreatDetected({\r\n                                        type: \"real_time_block\",\r\n                                        data: data,\r\n                                        timestamp: Date.now(),\r\n                                    });\r\n                                }\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n            } catch (error) {\r\n                if (config.DEBUG) {\r\n                    console.error(\"Failed to connect WebSocket:\", error);\r\n                }\r\n            }\r\n        }\r\n\r\n        return () => {\r\n            if (cleanup && typeof cleanup === \"function\") {\r\n                cleanup();\r\n            }\r\n        };\r\n    }, [onThreatDetected]);\r\n\r\n    // Behavioral tracking setup\r\n    useEffect(() => {\r\n        if (!enableBehaviorTracking) return;\r\n\r\n        const config = getConfig();\r\n\r\n        // Track page navigation\r\n        threatDetection.trackPageView(window.location.href);\r\n\r\n        // Mouse movement tracking\r\n        const handleMouseMove = (event) => {\r\n            threatDetection.trackMouseMovement(event.clientX, event.clientY);\r\n        };\r\n\r\n        // Periodic threat level check\r\n        const threatLevelInterval = setInterval(() => {\r\n            const currentThreatLevel = threatDetection.getThreatLevel();\r\n            if (currentThreatLevel !== threatLevel) {\r\n                setThreatLevel(currentThreatLevel);\r\n\r\n                if (currentThreatLevel === \"high\" && onThreatDetected) {\r\n                    onThreatDetected({\r\n                        type: \"behavioral_threat\",\r\n                        data: threatDetection.getBehaviorMetrics(),\r\n                        timestamp: Date.now(),\r\n                    });\r\n                }\r\n            }\r\n        }, 5000); // Check every 5 seconds\r\n\r\n        // Add event listeners\r\n        document.addEventListener(\"mousemove\", handleMouseMove);\r\n\r\n        // Navigation event logging\r\n        const handleNavigation = () => {\r\n            try {\r\n                logNavigationEvent();\r\n                threatDetection.trackPageView(window.location.href);\r\n            } catch (error) {\r\n                if (config.DEBUG) {\r\n                    console.error(\"Failed to log navigation:\", error);\r\n                }\r\n            }\r\n        };\r\n\r\n        // Override pushState and replaceState\r\n        const originalPushState = window.history.pushState;\r\n        const originalReplaceState = window.history.replaceState;\r\n\r\n        window.history.pushState = function (...args) {\r\n            originalPushState.apply(window.history, args);\r\n            handleNavigation();\r\n        };\r\n\r\n        window.history.replaceState = function (...args) {\r\n            originalReplaceState.apply(window.history, args);\r\n            handleNavigation();\r\n        };\r\n\r\n        // Handle popstate events\r\n        window.addEventListener(\"popstate\", handleNavigation);\r\n\r\n        return () => {\r\n            clearInterval(threatLevelInterval);\r\n            document.removeEventListener(\"mousemove\", handleMouseMove);\r\n            window.removeEventListener(\"popstate\", handleNavigation);\r\n\r\n            // Restore original methods\r\n            window.history.pushState = originalPushState;\r\n            window.history.replaceState = originalReplaceState;\r\n        };\r\n    }, [enableBehaviorTracking, threatLevel, onThreatDetected]);\r\n\r\n\r\n    useEffect(() => {\r\n        const { APP_ID, REALTIME_MONITORING, DEBUG } = getConfig();\r\n        let cleanup = null;\r\n        let currentUserIP = null;\r\n        getUserIP().then(ip => { currentUserIP = ip; });\r\n\r\n        if (REALTIME_MONITORING && APP_ID) {\r\n            try {\r\n                cleanup = connectWebSocket(APP_ID, (data, event) => {\r\n                    if (DEBUG) {\r\n                        console.log(\"🚀 Real-time traffic update:\", data, event);\r\n                    }\r\n                    // Listen for block-status-update\r\n                    if ((event === 'block-status-update' || data?.event === 'block-status-update') && data.ip === currentUserIP) {\r\n                        setIsBlocked(!!data.blocked);\r\n                    }\r\n                });\r\n            } catch (error) {\r\n                if (DEBUG) {\r\n                    console.error(\"Failed to connect WebSocket:\", error);\r\n                }\r\n            }\r\n        }\r\n        return () => {\r\n            if (cleanup && typeof cleanup === 'function') {\r\n                cleanup();\r\n            }\r\n        };\r\n    }, []);\r\n\r\n    // Blocked state\r\n    if (isBlocked) {\r\n        return blockedComponent || (\r\n            <div style={{\r\n                position: 'fixed',\r\n                top: 0,\r\n                left: 0,\r\n                width: '100vw',\r\n                height: '100vh',\r\n                zIndex: 2147483647,\r\n                background: 'rgba(255, 255, 255, 0.98)',\r\n                display: 'flex',\r\n                alignItems: 'center',\r\n                justifyContent: 'center',\r\n                pointerEvents: 'all',\r\n                margin: 0,\r\n                padding: 0,\r\n            }}>\r\n                <div style={{\r\n                    textAlign: 'center',\r\n                    border: '5px solid #dc2626',\r\n                    borderRadius: '32px',\r\n                    padding: '3rem',\r\n                    boxShadow: '0 8px 40px 0 rgba(220,38,38,0.15)',\r\n                    background: '#fff',\r\n                    maxWidth: 480,\r\n                    width: '90vw',\r\n                }}>\r\n                    <div style={{\r\n                        margin: '0 auto',\r\n                        display: 'flex',\r\n                        alignItems: 'center',\r\n                        justifyContent: 'center',\r\n                        height: 80,\r\n                        width: 80,\r\n                        borderRadius: '50%',\r\n                        background: '#fee2e2',\r\n                        border: '4px solid #f87171',\r\n                    }}>\r\n                        <svg style={{ height: 48, width: 48, color: '#dc2626', animation: 'pulse 1.5s infinite' }} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n                            <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728L5.636 5.636m12.728 12.728L18.364 5.636\" />\r\n                        </svg>\r\n                    </div>\r\n                    <h1 style={{ marginTop: 24, fontSize: 40, fontWeight: 800, color: '#dc2626', letterSpacing: 2, textShadow: '0 2px 8px #fca5a5' }}>ACCESS DENIED</h1>\r\n                    <p style={{ marginTop: 16, fontSize: 20, color: '#b91c1c', fontWeight: 600 }}>\r\n                        Your IP address has been <span style={{ fontWeight: 700 }}>blocked</span> for security reasons.<br />\r\n                        If you believe this is a mistake, please contact support.\r\n                    </p>\r\n                </div>\r\n                <style>{`\r\n                    @keyframes pulse {\r\n                        0%, 100% { opacity: 1; }\r\n                        50% { opacity: 0.5; }\r\n                    }\r\n                `}</style>\r\n            </div>\r\n        );\r\n    }\r\n\r\n    // Suspicious activity warning\r\n    if (threatLevel === \"high\" && suspiciousComponent) {\r\n        return suspiciousComponent;\r\n    }\r\n\r\n    // Normal access with optional threat level indicator\r\n    return (\r\n        <div className=\"cyshield-protected\">\r\n            {children}\r\n            {getConfig().DEBUG && (\r\n                <div className=\"cyshield-debug-info\" style={{\r\n                    position: \"fixed\",\r\n                    top: 10,\r\n                    right: 10,\r\n                    background: \"rgba(0,0,0,0.8)\",\r\n                    color: \"white\",\r\n                    padding: \"10px\",\r\n                    borderRadius: \"5px\",\r\n                    fontSize: \"12px\",\r\n                    zIndex: 9999,\r\n                }}>\r\n                    <div>Threat Level: {threatLevel}</div>\r\n                    {ipAnalysis && (\r\n                        <div>Risk Score: {ipAnalysis.riskScore?.toFixed(2) || \"N/A\"}</div>\r\n                    )}\r\n                    <div>Behavior Tracking: {enableBehaviorTracking ? \"ON\" : \"OFF\"}</div>\r\n                    <div>IP Analysis: {enableIPAnalysis ? \"ON\" : \"OFF\"}</div>\r\n                </div>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default EnhancedProtectedPage;\r\n"],"names":["arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","IP_SERVICES","getUserIP","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","i","response","data","ip","wrap","_callee$","_context","prev","next","length","fetch","timeout","sent","ok","Error","concat","status","json","query","IPv4","origin","isValidIP","abrupt","t0","console","warn","message","error","stop","apply","arguments","ipv4Regex","ipv6Regex","test","withNativeBlob","withNativeArrayBuffer","isView","toArray","lookup","decode","protocol","globalThis","encode","Request","DEFAULT_TRANSPORTS","toString","RESERVED_EVENTS","isObject","Engine","objectWithoutPropertiesLoose","config","FIREWALL_API_URL","process","env","NODE_ENV","API_KEY","APP_ID","REALTIME_MONITORING","DEBUG","websocketConnector","setWebSocketConnector","connector","setConfig","newConfig","allowedConfig","_objectWithoutProperties","_excluded","_objectSpread","log","getConfig","AxiosError","utils","prototype","toFormData","URLSearchParams","FormData","Blob","platform","AxiosHeaders","isCancel","CanceledError","mergeConfig","VERSION","validators","Axios","spread","isAxiosError","HttpStatusCode","CancelToken","socket","retryAttempts","listenerCount","MAX_RETRIES","RETRY_DELAY","createSDKRequest","url","options","undefined","_getConfig","headers","handleError","context","connectWebSocket","appId","onTrafficUpdate","_getConfig2","ensureConnection","_socket","io","apiKey","reconnectionAttempts","reconnectionDelay","transports","on","emit","reason","setTimeout","Math","pow","connected","_socket2","once","attachHandlers","trafficHandler","blockStatusHandler","off","detachHandlers","max","disconnectWebSocket","disconnect","_getConfig3","validateIP","_getConfig4","_error","result","method","body","JSON","stringify","_x","logNavigationEvent","_ref2","_callee2","_getConfig5","fullUrl","_callee2$","_context2","window","location","href","statusCode","userAgent","navigator","logApiRequest","_ref3","_callee3","endpoint","_getConfig6","_callee3$","_context3","_x2","_x3","_x4","setupAxiosInterceptors","axiosInstance","_getConfig7","requestInterceptor","interceptors","request","use","Promise","reject","responseInterceptor","toUpperCase","logError","eject","analyzeIPRisk","_ref4","_callee4","_getConfig8","_error2","_callee4$","_context4","_x5","fetchTrafficLogs","_ref5","_callee5","page","limit","_getConfig9","_args5","_callee5$","_context5","_x6","getBlockedIPs","_ref6","_callee6","_getConfig10","_callee6$","_context6","_x7","blockIP","_ref7","_callee7","_getConfig11","_callee7$","_context7","_x8","_x9","unblockIP","_ref8","_callee8","_getConfig12","_callee8$","_context8","_x10","_x11","checkIP","shouldFailOpen","blocked","STRICT_MODE","ProtectedPage","children","loadingComponent","blockedComponent","_useState","useState","_useState2","_slicedToArray","isBlocked","setIsBlocked","_useState3","_useState4","loading","setLoading","_useState5","_useState6","setError","userIPRef","useRef","useCallback","finish","useEffect","cleanup","resolveUserIP","current","trim","event","eventType","payloadIP","currentIP","Boolean","handlePopState","pathname","originalPushState","history","pushState","originalReplaceState","replaceState","handleStateChange","_len","args","Array","_key","_len2","_key2","addEventListener","removeEventListener","axios","then","err","React","createElement","className","fill","viewBox","stroke","strokeLinecap","strokeLinejoin","strokeWidth","d","type","onClick","style","position","top","left","width","height","zIndex","background","display","alignItems","justifyContent","pointerEvents","margin","padding","textAlign","border","borderRadius","boxShadow","maxWidth","color","animation","marginTop","fontSize","fontWeight","letterSpacing","textShadow","ThreatDetectionService","_classCallCheck","threatCache","Map","behaviorMetrics","pageViews","navigationPatterns","mouseMovements","keystrokes","suspiciousActivity","_createClass","key","value","_analyzeCurrentIP","cached","isExpired","analysis","has","get","Date","now","timestamp","set","analyzeCurrentIP","_isCurrentIPBlocked","_blockedIPs$blockedIP","blockedIPs","includes","isCurrentIPBlocked","trackPageView","push","shift","recentNavigations","slice","timeSpan","trackMouseMovement","x","y","recent","isLinear","detectLinearMouseMovement","movements","linearCount","curr","slope1","slope2","abs","getThreatLevel","_this$behaviorMetrics","suspiciousRatio","getBehaviorMetrics","threatLevel","clearCache","clear","threatDetection","EnhancedProtectedPage","_ipAnalysis$riskScore","suspiciousComponent","onThreatDetected","_ref$enableBehaviorTr","enableBehaviorTracking","_ref$enableIPAnalysis","enableIPAnalysis","_useState7","_useState8","setThreatLevel","_useState9","_useState10","ipAnalysis","setIPAnalysis","initializeSecurity","riskScore","handleMouseMove","clientX","clientY","threatLevelInterval","setInterval","currentThreatLevel","document","handleNavigation","clearInterval","currentUserIP","right","toFixed"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,106,107]}