/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@livechat/websocket-manager@0.1.1/dist/websocket-manager.cjs.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var mitt=require("@livechat/mitt"),urlUtils=require("@livechat/url-utils"),createBackoff=require("@livechat/backoff");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var mitt__default=_interopDefaultLegacy(mitt),createBackoff__default=_interopDefaultLegacy(createBackoff),CONNECTING=0,OPEN=1,CLOSED=3,readyStates=Object.freeze({__proto__:null,CONNECTING:CONNECTING,OPEN:OPEN,CLOSED:CLOSED}),createWebSocketManager=function(e,t){var n,r=(void 0===t?{}:t).query,o=void 0===r?{}:r,i=urlUtils.buildQueryString(o),a=i?e+"?"+i:e,c=mitt__default.default(),u=createBackoff__default.default({min:1e3,max:5e3,jitter:.5}),f=CLOSED,l=null,s=function(){f=OPEN,u.reset(),c.emit("connect")},d=function(){v(),S(),c.emit("disconnect")},E=function(e){var t=e.data;c.emit("message",t)},v=function(){var e;(clearTimeout(n),f=CLOSED,l)&&((e=l).removeEventListener("open",s),e.removeEventListener("close",d),e.removeEventListener("message",E),l.close(),l=null)},m=function(){var e;f=CONNECTING,l=new WebSocket(a),(e=l).addEventListener("open",s),e.addEventListener("close",d),e.addEventListener("message",E)},S=function(e){void 0===e&&(e=u.duration()),v(),0!==e?n=setTimeout(m,e):m()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){if(f!==CLOSED)throw new Error("Socket is already open or connecting.");clearTimeout(n),m()})),destroy:function(){c.off(),v()},disconnect:v,reconnect:S,emit:function(e){if(f!==OPEN)throw new Error("Socket is not connected.");l.send(e)},getReadyState:function(){return f},on:c.on,off:c.off}};exports.default=createWebSocketManager,exports.readyStates=readyStates;
//# sourceMappingURL=/sm/85bd5a2890cbc5d6548ccd9872e5371922cc66c4b35069ac2e178ee31467dd85.map