@voicenter-team/events-sdk 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,5 +44,5 @@ function print() { __p += __j.call(arguments, '') }
44
44
  `+Q+Xe.join(`,
45
45
  `+Q)+`
46
46
  `+mn+"}":"{"+Xe.join(",")+"}":"{}";return ee.pop(),St}};T.stringify=function(H,$,M){var te,U,Q,ee;if(typeof $=="function"||typeof $=="object"&&$){if((ee=E.call($))==g)U=$;else if(ee==k){Q={};for(var z,oe=0,_e=$.length;_e>oe;z=$[oe++],ee=E.call(z),(ee==S||ee==_)&&(Q[z]=1));}}if(M)if((ee=E.call(M))==_){if((M-=M%1)>0)for(te="",M>10&&(M=10);te.length<M;te+=" ");}else ee==S&&(te=M.length<=10?M:M.slice(0,10));return Z("",(z={},z[""]=H,z),U,Q,te,"",[])}}if(!l("json-parse")){var N,be,xe=String.fromCharCode,Ce={92:"\\",34:'"',47:"/",98:"\b",116:" ",110:`
47
- `,102:"\f",114:"\r"},ae=function(){throw N=be=null,SyntaxError()},Pe=function(){for(var H,$,M,te,U,Q=be,ee=Q.length;ee>N;)switch(U=Q.charCodeAt(N)){case 9:case 10:case 13:case 32:N++;break;case 123:case 125:case 91:case 93:case 58:case 44:return H=se?Q.charAt(N):Q[N],N++,H;case 34:for(H="@",N++;ee>N;)if(U=Q.charCodeAt(N),32>U)ae();else if(U==92)switch(U=Q.charCodeAt(++N)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:H+=Ce[U],N++;break;case 117:for($=++N,M=N+4;M>N;N++)U=Q.charCodeAt(N),U>=48&&57>=U||U>=97&&102>=U||U>=65&&70>=U||ae();H+=xe("0x"+Q.slice($,N));break;default:ae()}else{if(U==34)break;for(U=Q.charCodeAt(N),$=N;U>=32&&U!=92&&U!=34;)U=Q.charCodeAt(++N);H+=Q.slice($,N)}if(Q.charCodeAt(N)==34)return N++,H;ae();default:if($=N,U==45&&(te=!0,U=Q.charCodeAt(++N)),U>=48&&57>=U){for(U==48&&(U=Q.charCodeAt(N+1),U>=48&&57>=U)&&ae(),te=!1;ee>N&&(U=Q.charCodeAt(N),U>=48&&57>=U);N++);if(Q.charCodeAt(N)==46){for(M=++N;ee>M&&(U=Q.charCodeAt(M),U>=48&&57>=U);M++);M==N&&ae(),N=M}if(U=Q.charCodeAt(N),U==101||U==69){for(U=Q.charCodeAt(++N),(U==43||U==45)&&N++,M=N;ee>M&&(U=Q.charCodeAt(M),U>=48&&57>=U);M++);M==N&&ae(),N=M}return+Q.slice($,N)}if(te&&ae(),Q.slice(N,N+4)=="true")return N+=4,!0;if(Q.slice(N,N+5)=="false")return N+=5,!1;if(Q.slice(N,N+4)=="null")return N+=4,null;ae()}return"$"},mt=function(H){var $,M;if(H=="$"&&ae(),typeof H=="string"){if((se?H.charAt(0):H[0])=="@")return H.slice(1);if(H=="["){for($=[];H=Pe(),H!="]";M||(M=!0))M&&(H==","?(H=Pe(),H=="]"&&ae()):ae()),H==","&&ae(),$.push(mt(H));return $}if(H=="{"){for($={};H=Pe(),H!="}";M||(M=!0))M&&(H==","?(H=Pe(),H=="}"&&ae()):ae()),(H==","||typeof H!="string"||(se?H.charAt(0):H[0])!="@"||Pe()!=":")&&ae(),$[H.slice(1)]=mt(Pe());return $}ae()}return H},Qe=function(H,$,M){var te=Dn(H,$,M);te===y?delete H[$]:H[$]=te},Dn=function(H,$,M){var te,U=H[$];if(typeof U=="object"&&U)if(E.call(U)==k)for(te=U.length;te--;)Qe(U,te,M);else d(U,function(Q){Qe(U,Q,M)});return M.call(H,$,U)};T.parse=function(H,$){var M,te;return N=0,be=""+H,M=mt(Pe()),Pe()!="$"&&ae(),N=be=null,$&&E.call($)==g?Dn((te={},te[""]=M,te),"",$):M}}}})(this)},{}],48:[function(s,a){function r(o,l){var h=[];l=l||0;for(var d=l||0;d<o.length;d++)h[d-l]=o[d];return h}a.exports=r},{}]},{},[1])(1)}const __vite_glob_0_0=Object.freeze(Object.defineProperty({__proto__:null,default:v1_3_7},Symbol.toStringTag,{value:"Module"})),importModules=Object.assign({"./v1_3_7.js":__vite_glob_0_0}),SOCKET_NAME_REGEX=/v\d+_\d+_\d+/;function isSocketIoFn(s){return typeof s=="function"}const sockets=Object.entries(importModules).reduce((s,a)=>{var l;const r=a[1].default,o=(l=a[0].match(SOCKET_NAME_REGEX))==null?void 0:l[0];return isSocketIoFn(r)&&o&&(s[o]=r()),s},{}),getSocketVersion=s=>{if(s in sockets)return sockets[s];throw new Error(`Socket version ${s} not found`)},makeSocketVersion=(s,...a)=>getSocketVersion(s)(...a),sockets$1={...sockets,getSocketVersion,makeSocketVersion};var EventsEnum=(s=>(s.ALL_DIALER_STATUS="AllDialersStatus",s.ALL_EXTENSION_STATUS="AllExtensionsStatus",s.ALL_USERS_STATUS="AllUsersStatus",s.CONNECT="connect",s.DISCONNECT="disconnect",s.EXTENSION_EVENT="ExtensionEvent",s.KEEP_ALIVE="keepalive",s.KEEP_ALIVE_RESPONSE="keepaliveResponse",s.LOGIN_STATUS="loginStatus",s.LOGIN_SUCCESS="loginSuccess",s.QUEUE_EVENT="QueueEvent",s.ONLINE_STATUS_EVENT="onlineStatusEvent",s.DIALER_EVENT="DialerEvent",s))(EventsEnum||{});class SocketIoClass{constructor(a){Ie(this,"io");Ie(this,"ioFunction");Ie(this,"lastEventTimestamp",new Date().getTime());Ie(this,"doReconnect",!0);Ie(this,"keepAliveInterval");Ie(this,"keepReconnectInterval");Ie(this,"connected",!1);this.eventsSdkClass=a,this.eventsSdkClass=a}getSocketIoFunction(a){const r=a.split("v="),o="v".concat(r[r.length-1]).replaceAll(".","_");this.ioFunction=sockets$1.getSocketVersion(o)}initSocketConnection(){const a=this.eventsSdkClass.authClass.token,r=this.eventsSdkClass.options.protocol,o=this.eventsSdkClass.server;try{const l=o.Domain,h=`${r}://${l}`,d={reconnection:!1,upgrade:!1,transports:["websocket"],forceNew:!0,query:{token:a}};a&&(d.query={token:a}),this.ioFunction&&(this.io=this.ioFunction(h,d))}catch{}}initSocketEvents(){this.io&&this.io.on(EventsEnum.LOGIN_SUCCESS,a=>this.eventsSdkClass.emit(EventsEnum.LOGIN_SUCCESS,a)).on(EventsEnum.QUEUE_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.QUEUE_EVENT,a)).on(EventsEnum.EXTENSION_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.EXTENSION_EVENT,a)).on(EventsEnum.DIALER_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.DIALER_EVENT,a)).on(EventsEnum.LOGIN_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.LOGIN_STATUS,a)).on(EventsEnum.ALL_EXTENSION_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.ALL_EXTENSION_STATUS,a)).on(EventsEnum.ALL_DIALER_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.ALL_DIALER_STATUS,a)).on(EventsEnum.KEEP_ALIVE_RESPONSE,a=>this.onKeepAliveResponse(a)).on(EventsEnum.CONNECT,()=>this.onConnect()).on(EventsEnum.DISCONNECT,()=>this.onDisconnect())}clearKeepAliveInterval(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval)}initKeepAlive(){this.clearKeepAliveInterval(),this.keepAliveInterval=setInterval(async()=>{if(new Date().getTime()>this.lastEventTimestamp+this.eventsSdkClass.options.keepAliveTimeout&&this.io){this.io.emit(EventsEnum.KEEP_ALIVE,this.eventsSdkClass.authClass.token);return}},this.eventsSdkClass.options.keepAliveTimeout)}closeAllConnections(){this.io&&(this.io.close(),this.io.disconnect(),this.io=void 0),this.eventsSdkClass.options.environment===Environment.BROWSER&&window&&window.sessionStorage.clear(),this.eventsSdkClass.options.environment===Environment.CHROME_EXTENSION&&chrome&&chrome.storage.session.clear()}onKeepAliveResponse(a){if(a.errorCode){this.initSocketConnection();return}this.connected?this.lastEventTimestamp=new Date().getTime():this.initSocketConnection()}onConnect(){this.keepReconnectInterval&&clearInterval(this.keepReconnectInterval),this.connected=!0,this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT,{isSocketConnected:!0})}onDisconnect(){this.connected=!1,this.closeAllConnections(),this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT,{isSocketConnected:!1}),this.doReconnect&&(this.keepReconnectInterval=setInterval(()=>{console.log("attempt to connect..."),this.eventsSdkClass.connect(ServerParameter.NEXT,!0)},15e3))}}class EventsSdkClass{constructor(a){Ie(this,"argumentOptions");Ie(this,"options",{...eventsSdkDefaultOptions});Ie(this,"servers",[]);Ie(this,"server");Ie(this,"socket");Ie(this,"authClass",new AuthClass(this));Ie(this,"socketIoClass",new SocketIoClass(this));Ie(this,"reconnectOptions",{retryCount:1,maxReconnectAttempts:this.options.maxReconnectAttempts,reconnectionDelay:this.options.reconnectionDelay,minReconnectionDelay:this.options.reconnectionDelay,maxReconnectionDelay:6e4*5});Ie(this,"retryConnection",lodashExports.debounce(this.connect.bind(this),this.reconnectOptions.reconnectionDelay,{leading:!0,trailing:!1}));Ie(this,"listeners",{[EventsEnum.ALL_EXTENSION_STATUS]:[],[EventsEnum.ALL_DIALER_STATUS]:[],[EventsEnum.ALL_USERS_STATUS]:[],[EventsEnum.QUEUE_EVENT]:[],[EventsEnum.EXTENSION_EVENT]:[],[EventsEnum.DIALER_EVENT]:[],[EventsEnum.LOGIN_SUCCESS]:[],[EventsEnum.LOGIN_STATUS]:[],[EventsEnum.KEEP_ALIVE_RESPONSE]:[],[EventsEnum.ONLINE_STATUS_EVENT]:[]});Ie(this,"allListeners",[]);this.options={...eventsSdkDefaultOptions,...a},this.server=this.options.fallbackServer,this.argumentOptions={...a}}on(a,r){a==="*"?this.allListeners.push(r):this.listeners[a].push(r)}off(a,r){if(a==="*")this.allListeners=this.allListeners.filter(o=>o!==r);else{const l=this.listeners[a].filter(h=>h!==r);this.listeners={...this.listeners,[a]:l}}}emit(a,r){this.socketIoClass.lastEventTimestamp=new Date().getTime(),this.listeners[a].forEach(l=>l({name:a,data:r}));const o={name:a,data:r};this.allListeners.forEach(l=>l(o))}connect(a=ServerParameter.DEFAULT,r=!1){let o;a===ServerParameter.DEFAULT&&(o=this.findCurrentServer()),a===ServerParameter.NEXT&&(o=this.findNextAvailableServer()),a===ServerParameter.PREVIOUS&&(o=this.findMaxPriorityServer()),o||(this.server=this.findCurrentServer()),this.socketIoClass.doReconnect=!0,this.socketIoClass.initSocketConnection(),this.socketIoClass.initSocketEvents(),this.socketIoClass.initKeepAlive()}disconnect(){this.socketIoClass.doReconnect=!1,this.socketIoClass.closeAllConnections()}clearKeepAliveInterval(){this.socketIoClass.clearKeepAliveInterval()}findCurrentServer(){return this.servers.length&&(this.server=this.servers[0]),this.server||(this.server=this.options.fallbackServer),this.server}findNextAvailableServer(){const r=this.server.Priority+1,o=this.servers.find(l=>l.Priority===r)||this.findMinPriorityServer();return this.server={...o},this.server}findMaxPriorityServer(){const a=this.getServerWithHighestPriority(this.servers);return this.server?this.server&&a.Domain!==this.server.Domain?(this.server=a,this.server):this.server:(this.server=a,this.server)}findMinPriorityServer(){const a=Math.min(...this.servers.map(o=>o.Priority)),r=this.servers.find(o=>o.Priority===a);return r?(this.server=r,this.server):this.server}getServerWithHighestPriority(a){let r,o=Number.MAX_SAFE_INTEGER;return r=a.find(l=>{l.Priority<o&&(o=l.Priority,r=l)}),r||this.server}async init(){return this.socket,await this.authClass.login(this.options),this.getServers(),!0}getServers(){this.options.serverFetchStrategy==="static"&&this.argumentOptions.servers&&Array.isArray(this.argumentOptions.servers)&&this.argumentOptions.servers.length>1&&(this.servers=this.argumentOptions.servers)}}exports.Environment=Environment,exports.EventsEnum=EventsEnum,exports.default=EventsSdkClass,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
47
+ `,102:"\f",114:"\r"},ae=function(){throw N=be=null,SyntaxError()},Pe=function(){for(var H,$,M,te,U,Q=be,ee=Q.length;ee>N;)switch(U=Q.charCodeAt(N)){case 9:case 10:case 13:case 32:N++;break;case 123:case 125:case 91:case 93:case 58:case 44:return H=se?Q.charAt(N):Q[N],N++,H;case 34:for(H="@",N++;ee>N;)if(U=Q.charCodeAt(N),32>U)ae();else if(U==92)switch(U=Q.charCodeAt(++N)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:H+=Ce[U],N++;break;case 117:for($=++N,M=N+4;M>N;N++)U=Q.charCodeAt(N),U>=48&&57>=U||U>=97&&102>=U||U>=65&&70>=U||ae();H+=xe("0x"+Q.slice($,N));break;default:ae()}else{if(U==34)break;for(U=Q.charCodeAt(N),$=N;U>=32&&U!=92&&U!=34;)U=Q.charCodeAt(++N);H+=Q.slice($,N)}if(Q.charCodeAt(N)==34)return N++,H;ae();default:if($=N,U==45&&(te=!0,U=Q.charCodeAt(++N)),U>=48&&57>=U){for(U==48&&(U=Q.charCodeAt(N+1),U>=48&&57>=U)&&ae(),te=!1;ee>N&&(U=Q.charCodeAt(N),U>=48&&57>=U);N++);if(Q.charCodeAt(N)==46){for(M=++N;ee>M&&(U=Q.charCodeAt(M),U>=48&&57>=U);M++);M==N&&ae(),N=M}if(U=Q.charCodeAt(N),U==101||U==69){for(U=Q.charCodeAt(++N),(U==43||U==45)&&N++,M=N;ee>M&&(U=Q.charCodeAt(M),U>=48&&57>=U);M++);M==N&&ae(),N=M}return+Q.slice($,N)}if(te&&ae(),Q.slice(N,N+4)=="true")return N+=4,!0;if(Q.slice(N,N+5)=="false")return N+=5,!1;if(Q.slice(N,N+4)=="null")return N+=4,null;ae()}return"$"},mt=function(H){var $,M;if(H=="$"&&ae(),typeof H=="string"){if((se?H.charAt(0):H[0])=="@")return H.slice(1);if(H=="["){for($=[];H=Pe(),H!="]";M||(M=!0))M&&(H==","?(H=Pe(),H=="]"&&ae()):ae()),H==","&&ae(),$.push(mt(H));return $}if(H=="{"){for($={};H=Pe(),H!="}";M||(M=!0))M&&(H==","?(H=Pe(),H=="}"&&ae()):ae()),(H==","||typeof H!="string"||(se?H.charAt(0):H[0])!="@"||Pe()!=":")&&ae(),$[H.slice(1)]=mt(Pe());return $}ae()}return H},Qe=function(H,$,M){var te=Dn(H,$,M);te===y?delete H[$]:H[$]=te},Dn=function(H,$,M){var te,U=H[$];if(typeof U=="object"&&U)if(E.call(U)==k)for(te=U.length;te--;)Qe(U,te,M);else d(U,function(Q){Qe(U,Q,M)});return M.call(H,$,U)};T.parse=function(H,$){var M,te;return N=0,be=""+H,M=mt(Pe()),Pe()!="$"&&ae(),N=be=null,$&&E.call($)==g?Dn((te={},te[""]=M,te),"",$):M}}}})(this)},{}],48:[function(s,a){function r(o,l){var h=[];l=l||0;for(var d=l||0;d<o.length;d++)h[d-l]=o[d];return h}a.exports=r},{}]},{},[1])(1)}const __vite_glob_0_0=Object.freeze(Object.defineProperty({__proto__:null,default:v1_3_7},Symbol.toStringTag,{value:"Module"})),importModules=Object.assign({"./v1_3_7.js":__vite_glob_0_0}),SOCKET_NAME_REGEX=/v\d+_\d+_\d+/;function isSocketIoFn(s){return typeof s=="function"}const sockets=Object.entries(importModules).reduce((s,a)=>{var l;const r=a[1].default,o=(l=a[0].match(SOCKET_NAME_REGEX))==null?void 0:l[0];return isSocketIoFn(r)&&o&&(s[o]=r()),s},{}),getSocketVersion=s=>{if(s in sockets)return sockets[s];throw new Error(`Socket version ${s} not found`)},makeSocketVersion=(s,...a)=>getSocketVersion(s)(...a),sockets$1={...sockets,getSocketVersion,makeSocketVersion};var EventsEnum=(s=>(s.ALL_DIALER_STATUS="AllDialersStatus",s.ALL_EXTENSION_STATUS="AllExtensionsStatus",s.ALL_USERS_STATUS="AllUsersStatus",s.CONNECT="connect",s.DISCONNECT="disconnect",s.EXTENSION_EVENT="ExtensionEvent",s.KEEP_ALIVE="keepalive",s.KEEP_ALIVE_RESPONSE="keepaliveResponse",s.LOGIN_STATUS="loginStatus",s.LOGIN_SUCCESS="loginSuccess",s.QUEUE_EVENT="QueueEvent",s.ONLINE_STATUS_EVENT="onlineStatusEvent",s.DIALER_EVENT="DialerEvent",s))(EventsEnum||{});class SocketIoClass{constructor(a){Ie(this,"io");Ie(this,"ioFunction");Ie(this,"lastEventTimestamp",new Date().getTime());Ie(this,"doReconnect",!0);Ie(this,"keepAliveInterval");Ie(this,"keepReconnectInterval");Ie(this,"connected",!1);this.eventsSdkClass=a,this.eventsSdkClass=a}getSocketIoFunction(a){const r=a.split("v="),o="v".concat(r[r.length-1]).replaceAll(".","_");this.ioFunction=sockets$1.getSocketVersion(o)}initSocketConnection(){const a=this.eventsSdkClass.authClass.token,r=this.eventsSdkClass.options.protocol,o=this.eventsSdkClass.server;try{const l=o.Domain,h=`${r}://${l}`,d={reconnection:!1,upgrade:!1,transports:["websocket"],forceNew:!0,query:{token:a}};a&&(d.query={token:a}),this.ioFunction&&(this.io=this.ioFunction(h,d))}catch{}}initSocketEvents(){this.io&&this.io.on(EventsEnum.LOGIN_SUCCESS,a=>this.eventsSdkClass.emit(EventsEnum.LOGIN_SUCCESS,a)).on(EventsEnum.QUEUE_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.QUEUE_EVENT,a)).on(EventsEnum.EXTENSION_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.EXTENSION_EVENT,a)).on(EventsEnum.DIALER_EVENT,a=>this.eventsSdkClass.emit(EventsEnum.DIALER_EVENT,a)).on(EventsEnum.LOGIN_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.LOGIN_STATUS,a)).on(EventsEnum.ALL_EXTENSION_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.ALL_EXTENSION_STATUS,a)).on(EventsEnum.ALL_DIALER_STATUS,a=>this.eventsSdkClass.emit(EventsEnum.ALL_DIALER_STATUS,a)).on(EventsEnum.KEEP_ALIVE_RESPONSE,a=>this.onKeepAliveResponse(a)).on(EventsEnum.CONNECT,()=>this.onConnect()).on(EventsEnum.DISCONNECT,()=>this.onDisconnect())}clearKeepAliveInterval(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval)}initKeepAlive(){this.clearKeepAliveInterval(),this.keepAliveInterval=setInterval(async()=>{if(new Date().getTime()>this.lastEventTimestamp+this.eventsSdkClass.options.keepAliveTimeout&&this.io){this.io.emit(EventsEnum.KEEP_ALIVE,this.eventsSdkClass.authClass.token);return}},this.eventsSdkClass.options.keepAliveTimeout)}closeAllConnections(){var a;this.io&&(this.io.close(),(a=this.io)==null||a.disconnect(),this.io=void 0),this.eventsSdkClass.options.environment===Environment.BROWSER&&window&&window.sessionStorage.clear(),this.eventsSdkClass.options.environment===Environment.CHROME_EXTENSION&&chrome&&chrome.storage.session.clear()}onKeepAliveResponse(a){if(a.errorCode){this.initSocketConnection();return}this.connected?this.lastEventTimestamp=new Date().getTime():this.initSocketConnection()}onConnect(){this.keepReconnectInterval&&clearInterval(this.keepReconnectInterval),this.connected=!0,this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT,{isSocketConnected:!0})}onDisconnect(){this.connected=!1,this.closeAllConnections(),this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT,{isSocketConnected:!1}),this.doReconnect&&(this.keepReconnectInterval=setInterval(()=>{console.log("attempt to connect..."),this.eventsSdkClass.connect(ServerParameter.NEXT,!0)},15e3))}}class EventsSdkClass{constructor(a){Ie(this,"argumentOptions");Ie(this,"options",{...eventsSdkDefaultOptions});Ie(this,"servers",[]);Ie(this,"server");Ie(this,"socket");Ie(this,"authClass",new AuthClass(this));Ie(this,"socketIoClass",new SocketIoClass(this));Ie(this,"reconnectOptions",{retryCount:1,maxReconnectAttempts:this.options.maxReconnectAttempts,reconnectionDelay:this.options.reconnectionDelay,minReconnectionDelay:this.options.reconnectionDelay,maxReconnectionDelay:6e4*5});Ie(this,"retryConnection",lodashExports.debounce(this.connect.bind(this),this.reconnectOptions.reconnectionDelay,{leading:!0,trailing:!1}));Ie(this,"listeners",{[EventsEnum.ALL_EXTENSION_STATUS]:[],[EventsEnum.ALL_DIALER_STATUS]:[],[EventsEnum.ALL_USERS_STATUS]:[],[EventsEnum.QUEUE_EVENT]:[],[EventsEnum.EXTENSION_EVENT]:[],[EventsEnum.DIALER_EVENT]:[],[EventsEnum.LOGIN_SUCCESS]:[],[EventsEnum.LOGIN_STATUS]:[],[EventsEnum.KEEP_ALIVE_RESPONSE]:[],[EventsEnum.ONLINE_STATUS_EVENT]:[]});Ie(this,"allListeners",[]);this.options={...eventsSdkDefaultOptions,...a},this.server=this.options.fallbackServer,this.argumentOptions={...a}}on(a,r){a==="*"?this.allListeners.push(r):this.listeners[a].push(r)}off(a,r){if(a==="*")this.allListeners=this.allListeners.filter(o=>o!==r);else{const l=this.listeners[a].filter(h=>h!==r);this.listeners={...this.listeners,[a]:l}}}emit(a,r){this.socketIoClass.lastEventTimestamp=new Date().getTime(),this.listeners[a].forEach(l=>l({name:a,data:r}));const o={name:a,data:r};this.allListeners.forEach(l=>l(o))}connect(a=ServerParameter.DEFAULT,r=!1){let o;a===ServerParameter.DEFAULT&&(o=this.findCurrentServer()),a===ServerParameter.NEXT&&(o=this.findNextAvailableServer()),a===ServerParameter.PREVIOUS&&(o=this.findMaxPriorityServer()),o||(this.server=this.findCurrentServer()),this.socketIoClass.doReconnect=!0,this.socketIoClass.initSocketConnection(),this.socketIoClass.initSocketEvents(),this.socketIoClass.initKeepAlive()}disconnect(){this.socketIoClass.doReconnect=!1,this.socketIoClass.closeAllConnections()}clearKeepAliveInterval(){this.socketIoClass.clearKeepAliveInterval()}findCurrentServer(){return this.servers.length&&(this.server=this.servers[0]),this.server||(this.server=this.options.fallbackServer),this.server}findNextAvailableServer(){const r=this.server.Priority+1,o=this.servers.find(l=>l.Priority===r)||this.findMinPriorityServer();return this.server={...o},this.server}findMaxPriorityServer(){const a=this.getServerWithHighestPriority(this.servers);return this.server?this.server&&a.Domain!==this.server.Domain?(this.server=a,this.server):this.server:(this.server=a,this.server)}findMinPriorityServer(){const a=Math.min(...this.servers.map(o=>o.Priority)),r=this.servers.find(o=>o.Priority===a);return r?(this.server=r,this.server):this.server}getServerWithHighestPriority(a){let r,o=Number.MAX_SAFE_INTEGER;return r=a.find(l=>{l.Priority<o&&(o=l.Priority,r=l)}),r||this.server}async init(){return this.socket,await this.authClass.login(this.options),this.getServers(),!0}getServers(){this.options.serverFetchStrategy==="static"&&this.argumentOptions.servers&&Array.isArray(this.argumentOptions.servers)&&this.argumentOptions.servers.length>1&&(this.servers=this.argumentOptions.servers)}}exports.Environment=Environment,exports.EventsEnum=EventsEnum,exports.default=EventsSdkClass,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
48
48
  //# sourceMappingURL=voicenter-events-sdk.umd.js.map