@voicenter-team/events-sdk 0.0.100 → 0.0.102
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.
- package/dist/voicenter-events-sdk.cjs.js +1 -1
- package/dist/voicenter-events-sdk.cjs.js.map +1 -1
- package/dist/voicenter-events-sdk.d.ts +2 -2
- package/dist/voicenter-events-sdk.es.js +4 -4
- package/dist/voicenter-events-sdk.es.js.map +1 -1
- package/dist/voicenter-events-sdk.iife.js +1 -1
- package/dist/voicenter-events-sdk.iife.js.map +1 -1
- package/dist/voicenter-events-sdk.umd.js +1 -1
- package/dist/voicenter-events-sdk.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
`+x+Z.join(`,
|
|
16
16
|
`+x)+`
|
|
17
17
|
`+fe+"}":"{"+Z.join(",")+"}":"{}";return B.pop(),de}};u.stringify=function(E,O,w){var D,k,x,B;if(typeof O=="function"||typeof O=="object"&&O){if((B=d.call(O))==r)k=O;else if(B==y){x={};for(var N,F=0,G=O.length;G>F;N=O[F++],B=d.call(N),(B==g||B==p)&&(x[N]=1));}}if(w)if((B=d.call(w))==p){if((w-=w%1)>0)for(D="",w>10&&(w=10);D.length<w;D+=" ");}else B==g&&(D=w.length<=10?w:w.slice(0,10));return R("",(N={},N[""]=E,N),k,x,D,"",[])}}if(!o("json-parse")){var S,K,$=String.fromCharCode,z={92:"\\",34:'"',47:"/",98:"\b",116:" ",110:`
|
|
18
|
-
`,102:"\f",114:"\r"},X=function(){throw S=K=null,SyntaxError()},J=function(){for(var E,O,w,D,k,x=K,B=x.length;B>S;)switch(k=x.charCodeAt(S)){case 9:case 10:case 13:case 32:S++;break;case 123:case 125:case 91:case 93:case 58:case 44:return E=P?x.charAt(S):x[S],S++,E;case 34:for(E="@",S++;B>S;)if(k=x.charCodeAt(S),32>k)X();else if(k==92)switch(k=x.charCodeAt(++S)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:E+=z[k],S++;break;case 117:for(O=++S,w=S+4;w>S;S++)k=x.charCodeAt(S),k>=48&&57>=k||k>=97&&102>=k||k>=65&&70>=k||X();E+=$("0x"+x.slice(O,S));break;default:X()}else{if(k==34)break;for(k=x.charCodeAt(S),O=S;k>=32&&k!=92&&k!=34;)k=x.charCodeAt(++S);E+=x.slice(O,S)}if(x.charCodeAt(S)==34)return S++,E;X();default:if(O=S,k==45&&(D=!0,k=x.charCodeAt(++S)),k>=48&&57>=k){for(k==48&&(k=x.charCodeAt(S+1),k>=48&&57>=k)&&X(),D=!1;B>S&&(k=x.charCodeAt(S),k>=48&&57>=k);S++);if(x.charCodeAt(S)==46){for(w=++S;B>w&&(k=x.charCodeAt(w),k>=48&&57>=k);w++);w==S&&X(),S=w}if(k=x.charCodeAt(S),k==101||k==69){for(k=x.charCodeAt(++S),(k==43||k==45)&&S++,w=S;B>w&&(k=x.charCodeAt(w),k>=48&&57>=k);w++);w==S&&X(),S=w}return+x.slice(O,S)}if(D&&X(),x.slice(S,S+4)=="true")return S+=4,!0;if(x.slice(S,S+5)=="false")return S+=5,!1;if(x.slice(S,S+4)=="null")return S+=4,null;X()}return"$"},ne=function(E){var O,w;if(E=="$"&&X(),typeof E=="string"){if((P?E.charAt(0):E[0])=="@")return E.slice(1);if(E=="["){for(O=[];E=J(),E!="]";w||(w=!0))w&&(E==","?(E=J(),E=="]"&&X()):X()),E==","&&X(),O.push(ne(E));return O}if(E=="{"){for(O={};E=J(),E!="}";w||(w=!0))w&&(E==","?(E=J(),E=="}"&&X()):X()),(E==","||typeof E!="string"||(P?E.charAt(0):E[0])!="@"||J()!=":")&&X(),O[E.slice(1)]=ne(J());return O}X()}return E},ke=function(E,O,w){var D=Ce(E,O,w);D===l?delete E[O]:E[O]=D},Ce=function(E,O,w){var D,k=E[O];if(typeof k=="object"&&k)if(d.call(k)==y)for(D=k.length;D--;)ke(k,D,w);else f(k,function(x){ke(k,x,w)});return w.call(E,O,k)};u.parse=function(E,O){var w,D;return S=0,K=""+E,w=ne(J()),J()!="$"&&X(),S=K=null,O&&d.call(O)==r?Ce((D={},D[""]=w,D),"",O):w}}}})(this)},{}],48:[function(a,t){function e(s,o){var h=[];o=o||0;for(var f=o||0;f<s.length;f++)h[f-o]=s[f];return h}t.exports=e},{}]},{},[1])(1)}const ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"})),Je=Object.assign({"./v1_3_7.js":ze}),We=/v\d+_\d+_\d+/;function He(a){return typeof a=="function"}const ve=Object.entries(Je).reduce((a,t)=>{var o;const e=t[1].default,s=(o=t[0].match(We))==null?void 0:o[0];return He(e)&&s&&(a[s]=e()),a},{}),Ne=a=>{if(a in ve)return ve[a];throw new Error(`Socket version ${a} not found`)},Ye=(a,...t)=>Ne(a)(...t),Qe={...ve,getSocketVersion:Ne,makeSocketVersion:Ye};var Le=(a=>(a.RINGING="Ringing",a.TALKING="Talking",a.DIALING="Dialing",a.HOLD="Hold",a))(Le||{}),Oe=(a=>(a.INCOMING="Incoming",a.OUTGOING="Outgoing",a))(Oe||{}),te=(a=>(a.CONNECTED="connected",a.DISCONNECTED="disconnected",a.TRYING_TO_CONNECT="tryingToConnect",a))(te||{}),_e=(a=>(a.AUTOMATIC="Automatic",a.IVR="IVR",a))(_e||{}),Re=(a=>(a.INCOMINC="Incoming",a.OUTGOING="Outgoing",a.SPY="Spy",a.CLICK2CALL="Click2Call",a))(Re||{}),Ie=(a=>(a.RESPONSE_FROM_API_VALID="RESPONSE_FROM_API_VALID",a.RESPONSE_FROM_API_INVALID="RESPONSE_FROM_API_INVALID",a))(Ie||{}),j=(a=>(a.ALL_DIALER_STATUS="AllDialersStatus",a.ALL_EXTENSION_STATUS="AllExtensionsStatus",a.ALL_USERS_STATUS="AllUsersStatus",a.CONNECT="connect",a.DISCONNECT="disconnect",a.CONNECT_ERROR_EVENT="connect_error",a.EXTENSION_EVENT="ExtensionEvent",a.KEEP_ALIVE="keepalive",a.KEEP_ALIVE_RESPONSE="keepaliveResponse",a.LOGIN_STATUS="loginStatus",a.LOGIN_SUCCESS="loginSuccess",a.QUEUE_EVENT="QueueEvent",a.ONLINE_STATUS_EVENT="onlineStatusEvent",a.DIALER_EVENT="DialerEvent",a.EXTENSIONS_UPDATED="ExtensionsUpdated",a))(j||{}),me=(a=>(a.NEWCALL="NEWCALL",a.ANSWER="ANSWER",a.HOLD="HOLD",a.UNHOLD="UNHOLD",a.HANGUP="HANGUP",a.USER_STATUS_UPDATE="userStatusUpdate",a))(me||{}),xe=(a=>(a.NORMAL_HANGUP="Normal hangup",a.USER_BUSY="User busy",a.CALL_REJECTED="Call Rejected",a.UNALLOCATED_NUMBER="Unallocated (unassigned) number",a.UNKNOWN="Unknown",a.NO_USER_RESPONDING="No user responding",a.USER_ALERTING="User alerting, no answer",a.ANSWERED_ELSEWHERE="Answered elsewhere",a))(xe||{}),Ue=(a=>(a.ANSWER="ANSWER",a.ABANDONED="ABANDONED",a.EXIT="EXIT",a.JOIN="JOIN",a))(Ue||{});class ae{static mapExtensionEvent(t){var f,l;const e=t.reason;let s,o;t.data.currentCall&&(o=this.mapExtensionCall(t,t.data.currentCall));const h=this.mapExtensionData(t,t.data);return e===me.HANGUP?s={...t,reason:e,data:{...h,currentCall:o?{...o,duration:o.callAnswered_UTC_CLIENT?Date.now()-o.callAnswered_UTC_CLIENT:0}:void 0,calls:(f=t.data.calls)==null?void 0:f.map(d=>{const i=this.mapExtensionCall(t,d);return{...i,duration:i.callAnswered_UTC_CLIENT?Date.now()-i.callAnswered_UTC_CLIENT:0}})}}:s={...t,data:{...h,currentCall:o,calls:(l=t.data.calls)==null?void 0:l.map(d=>this.mapExtensionCall(t,d))},reason:e},s}static mapAllExtensionStatus(t){return{...t,extensions:t.extensions.map(e=>{var s;return{...this.mapExtensionData(t,e),currentCall:e.currentCall?this.mapExtensionCall(t,e.currentCall):void 0,calls:(s=e.calls)==null?void 0:s.map(o=>this.mapExtensionCall(t,o))}})}}static mapExtensionData(t,e){return this.configureUTCForObject(e,[{key:"lastAnsweredCallEventEpoch",format:"sec"},{key:"lastCallEventEpoch",format:"sec"},{key:"lastHangupCallEpoch",format:"sec"},{key:"representativeUpdated",format:"ms"}],t.servertime,t.servertimeoffset)}static mapExtensionCall(t,e){return this.configureUTCForObject(e,[{key:"callAnswered",format:"sec"},{key:"callStarted",format:"sec"}],t.servertime,t.servertimeoffset)}static mapQueueCall(t,e){return this.configureUTCForObject(e,[{key:"JoinTimeStamp",format:"sec"},{key:"VHJoinTimeStamp",format:"sec"}],t.servertime,t.servertimeoffset)}static mapLoginStatusEvent(t){return{...t,queues:t.queues.map(e=>({...e,Calls:e.Calls.map(s=>this.mapQueueCall(t,s))}))}}static mapQueueEvent(t){return{...t,data:{...t.data,Calls:t.data.Calls.map(e=>this.mapQueueCall(t,e))}}}static assignProperty(t,e,s){t[e]=s}static configureUTCForObject(t,e,s,o){const h=(s-o*60)*1e3,f=Date.now()-h,l={};return e.forEach(d=>{const i=t[d.key],u=d.key;if(i!==0&&typeof i=="number"&&!isNaN(i)){let c=i;d.format==="ms"&&(c=Math.floor(c/1e3));const r=(c-o*60)*1e3;this.assignProperty(l,`${u}_UTC`,r),this.assignProperty(l,`${u}_UTC_CLIENT`,r+f)}else this.assignProperty(l,`${u}_UTC`,0),this.assignProperty(l,`${u}_UTC_CLIENT`,0)}),{...t,...l}}}var Se=(a=>(a.UPDATE_MONITORED_EXTENSIONS="updateMonitoredExtensions",a.KEEP_ALIVE="keepalive",a))(Se||{});class Ze{constructor(t){V(this,"io");V(this,"ioFunction");V(this,"lastEventTimestamp",new Date().getTime());V(this,"doReconnect",!0);V(this,"keepAliveInterval");V(this,"keepReconnectInterval");V(this,"keepReconnectTimeout");V(this,"connected",!1);V(this,"reconnectionTime",20);this.eventsSdkClass=t,this.eventsSdkClass=t,typeof window<"u"&&(window.addEventListener("offline",()=>{this.closeAllConnections()}),window.addEventListener("online",()=>{setTimeout(()=>{this.keepReconnectTimeout&&clearTimeout(this.keepReconnectTimeout),this.eventsSdkClass.connect(Q.NEXT)},5e3)})),typeof self<"u"&&typeof window>"u"&&typeof global>"u"&&(self.addEventListener("offline",()=>{this.closeAllConnections()}),self.addEventListener("online",()=>{setTimeout(()=>{this.keepReconnectTimeout&&clearTimeout(this.keepReconnectTimeout),this.eventsSdkClass.connect(Q.NEXT)},5e3)}))}getSocketIoFunction(t){const e=t.split("v="),s="v".concat(e[e.length-1]).replaceAll(".","_");this.ioFunction=Qe.getSocketVersion(s)}initSocketConnection(){const t=this.eventsSdkClass.authClass.token,e=this.eventsSdkClass.options.protocol,s=this.eventsSdkClass.server;try{const o=s?s.Domain:this.eventsSdkClass.URL,h=s?`${e}://${o}`:this.eventsSdkClass.URL,f={reconnection:!1,upgrade:!1,transports:["websocket"],forceNew:!0,query:{token:t},timeout:this.eventsSdkClass.options.timeout};if(this.ioFunction&&h)this.io=this.ioFunction(h,f),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{attemptToConnect:h,connectionStatus:te.TRYING_TO_CONNECT}),this.eventsSdkClass.loggerClass.sdkAttemptToConnect(o);else throw new Error("Socket server url no defined")}catch(o){this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(o)}}clearKeepAliveInterval(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval)}initKeepAlive(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveInterval=setInterval(async()=>{if(new Date().getTime()>this.lastEventTimestamp+this.eventsSdkClass.options.keepAliveTimeout&&this.io&&this.eventsSdkClass.authClass.token){this.eventsSdkClass.emit(Se.KEEP_ALIVE,this.eventsSdkClass.authClass.token),this.eventsSdkClass.loggerClass.keepAliveEmit();return}},this.eventsSdkClass.options.keepAliveTimeout)}closeAllConnections(){var t;this.io&&(this.io.close(),(t=this.io)==null||t.disconnect(),this.io=void 0),this.eventsSdkClass.loggerClass.stop(),oe.clearSessionStorage()}initSocketEvents(){this.io&&this.io.on(j.LOGIN_SUCCESS,t=>this.onLoginSuccessEvent(t,j.LOGIN_SUCCESS)).on(j.QUEUE_EVENT,t=>this.onQueueEvent(t,j.QUEUE_EVENT)).on(j.EXTENSION_EVENT,t=>this.onExtensionEvent(t,j.EXTENSION_EVENT)).on(j.DIALER_EVENT,t=>this.onDialerEvent(t,j.DIALER_EVENT)).on(j.LOGIN_STATUS,t=>this.onLoginStatusEvent(t,j.LOGIN_STATUS)).on(j.ALL_EXTENSION_STATUS,t=>this.onAllExtensionStatus(t,j.ALL_EXTENSION_STATUS)).on(j.ALL_DIALER_STATUS,t=>this.onAllDialerStatus(t,j.ALL_DIALER_STATUS)).on(j.KEEP_ALIVE_RESPONSE,t=>this.onKeepAliveResponse(t)).on(j.EXTENSIONS_UPDATED,t=>this.onExtensionsUpdatedEvent(t,j.EXTENSIONS_UPDATED)).on(j.CONNECT,()=>this.onConnect()).on(j.DISCONNECT,t=>this.onDisconnect(t)).on(j.CONNECT_ERROR_EVENT,t=>this.onConnectError(t))}onLoginSuccessEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onQueueEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,ae.mapQueueEvent(t))}onExtensionEvent(t,e){const s=ae.mapExtensionEvent(t);s&&(this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,s))}onDialerEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onLoginStatusEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,ae.mapLoginStatusEvent(t))}onAllExtensionStatus(t,e){const s=ae.mapAllExtensionStatus(t);this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,s)}onAllDialerStatus(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onKeepAliveResponse(t){if(this.eventsSdkClass.loggerClass.keepAliveResponse(t),t.errorCode){this.initSocketConnection();return}this.connected?this.lastEventTimestamp=new Date().getTime():this.initSocketConnection()}onExtensionsUpdatedEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onConnect(){this.connected=!0,this.keepReconnectInterval&&clearInterval(this.keepReconnectInterval),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:te.CONNECTED}),this.eventsSdkClass.loggerClass.start().then(()=>{this.eventsSdkClass.loggerClass.sdkConnectionSuccess()})}onDisconnect(t){this.connected=!1,this.doReconnect&&(this.closeAllConnections(),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?te.TRYING_TO_CONNECT:te.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkDisconnect([t]),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>120&&(this.reconnectionTime=20),this.eventsSdkClass.connect(Q.NEXT)},this.reconnectionTime*1e3))}onConnectError(t){this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?te.TRYING_TO_CONNECT:te.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(t),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>60&&(this.reconnectionTime=20),this.eventsSdkClass.connect(Q.NEXT)},this.reconnectionTime*1e3)}}class et{constructor(t){V(this,"storageLogger");this.eventsSdkClass=t,this.eventsSdkClass=t}init(){if(!this.eventsSdkClass.options.useLogger)return;if(this.eventsSdkClass.options.storageLoggerInstance){this.storageLogger=this.eventsSdkClass.options.storageLoggerInstance;return}let t;this.eventsSdkClass.options.loggerSocketConnection&&(t=this.eventsSdkClass.options.loggerSocketConnection),this.eventsSdkClass.socketIoClass.ioFunction&&!t&&(t=this.eventsSdkClass.socketIoClass.ioFunction(this.eventsSdkClass.options.loggerServer,this.eventsSdkClass.options.loggerConnectOptions)),t&&(this.storageLogger=new q({socket:t,loggerOptions:this.eventsSdkClass.options.loggerConfig}))}async start(){this.storageLogger&&await this.storageLogger.start()}stop(){this.storageLogger&&this.storageLogger.stop()}log(t){if(this.eventsSdkClass.options.useLogger)if(this.storageLogger)switch(t.Level){case q.LevelEnum.INFO:this.storageLogger.log(t);break;case q.LevelEnum.DEBUG:this.storageLogger.debug(t);break;case q.LevelEnum.WARNING:this.storageLogger.warn(t);break;case q.LevelEnum.ERROR:this.storageLogger.error(t)}else t.Level===q.LevelEnum.INFO?console.log(t):t.Level===q.LevelEnum.ERROR&&console.error(t)}sdkConnectionSuccess(){const t={...this.eventsSdkClass.options,token:"CENSORED",password:"CENSORED"};this.log({Message:`Sdk connected to the socket server ${this.eventsSdkClass.server&&this.eventsSdkClass.server.Domain?this.eventsSdkClass.server.Domain:this.eventsSdkClass.URL}`,Body:JSON.stringify(t,this.eventsSdkClass.getCircularReplacer()),ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection established",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkDisconnect(t){this.log({Message:`Sdk disconnected from the socket server ${this.eventsSdkClass.server&&this.eventsSdkClass.server.Domain?this.eventsSdkClass.server.Domain:this.eventsSdkClass.URL} (${t})`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection closed",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkAttemptToConnect(t){this.log({Message:`${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${t}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Switching Protocols",StatusCode:101,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkAttemptToConnectError(t){this.log({Message:`${t}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection error",StatusCode:500,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}loginError(t,e,s,o){this.log({Message:`External login request error with the login type ${t} ${t===Y.TOKEN?s:o}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"External login error",StatusCode:e||400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}getSettingsError(t,e){this.log({Message:`Get settings error with token ${t}, error: ${e}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}refreshTokenError(t,e,s){this.log({Message:`Refresh token error with old refresh token ${t}, url: ${e}, error: ${s}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}keepAliveEmit(){this.log({Message:`Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}keepAliveResponse(t){this.log({Message:`Keep alive response: ${JSON.stringify(t)}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}eventLog(t,e){const s={[ee.FULL]:[],[ee.BOOTSTRAP]:[j.LOGIN_STATUS,j.LOGIN_SUCCESS,j.ALL_EXTENSION_STATUS,j.ALL_DIALER_STATUS],[ee.DEBUG_EXTENSIONS]:[j.ALL_EXTENSION_STATUS,j.EXTENSION_EVENT,j.EXTENSIONS_UPDATED],[ee.DEBUG_DIALER]:[j.ALL_DIALER_STATUS,j.DIALER_EVENT],[ee.DEBUG_QUEUE]:[j.QUEUE_EVENT]};this.eventsSdkClass.options.debugOption&&(s[this.eventsSdkClass.options.debugOption].includes(t)||this.eventsSdkClass.options.debugOption===ee.FULL)&&this.log({Message:`Event name: ${t}`,Body:e,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",Level:q.LevelEnum.DEBUG,LogType:q.LogTypeEnum.INFO})}}class tt{constructor(t){V(this,"listeners",{[j.ALL_EXTENSION_STATUS]:[],[j.ALL_DIALER_STATUS]:[],[j.ALL_USERS_STATUS]:[],[j.QUEUE_EVENT]:[],[j.EXTENSION_EVENT]:[],[j.DIALER_EVENT]:[],[j.LOGIN_SUCCESS]:[],[j.LOGIN_STATUS]:[],[j.KEEP_ALIVE_RESPONSE]:[],[j.ONLINE_STATUS_EVENT]:[],[j.EXTENSIONS_UPDATED]:[]});V(this,"allListeners",[]);this.eventsSdkClass=t,this.eventsSdkClass=t}on(t,e){t==="*"?this.allListeners.push(e):this.listeners[t].push(e)}off(t,e){if(t==="*")this.allListeners=this.allListeners.filter(s=>s!==e);else{const o=this.listeners[t].filter(h=>h!==e);this.listeners={...this.listeners,[t]:o}}}emit(t,e){this.eventsSdkClass.socketIoClass.lastEventTimestamp=new Date().getTime(),this.listeners[t].forEach(o=>o({name:t,data:e}));const s={name:t,data:e};this.allListeners.forEach(o=>o(s))}}class nt{constructor(t){V(this,"options");V(this,"servers",[]);V(this,"URLList",[]);V(this,"server");V(this,"URL");V(this,"socket");V(this,"mainServer");V(this,"alreadyAttemptedOtherServers",[]);V(this,"authClass",new Ke(this));V(this,"socketIoClass",new Ze(this));V(this,"loggerClass",new et(this));V(this,"eventEmitterClass",new tt(this));V(this,"getCircularReplacer",()=>{const t=new WeakSet;return(e,s)=>{if(!(e==="socket"||e==="io"||e==="nsps")){if(typeof s=="object"&&s!==null){if(t.has(s))return;t.add(s)}return s}}});this.options={...$e,...t}}on(t,e){this.eventEmitterClass.on(t,e)}emit(t,...e){this.socketIoClass.io&&this.socketIoClass.io.emit(t,...e)}connect(t){t===Q.MAIN&&this.findMainServer(),t===Q.NEXT&&this.findNextServer(),this.socketIoClass.doReconnect=!0;try{this.loggerClass.start()}catch(e){console.error(e)}this.socketIoClass.initSocketConnection(),this.socketIoClass.initSocketEvents(),this.socketIoClass.initKeepAlive()}disconnect(){this.socketIoClass.doReconnect=!1,this.socketIoClass.closeAllConnections(),this.loggerClass.stop()}clearKeepAliveInterval(){this.socketIoClass.clearKeepAliveInterval()}findMainServer(){this.servers.length?(this.mainServer=this.servers.reduce((t,e)=>e.Priority>t.Priority?e:t),this.server=this.mainServer):this.URLList.length&&(this.URL=this.URLList[0])}findNextServer(){if(this.servers.length&&this.server)if(this.server.Priority===this.mainServer.Priority){let t=this.servers.filter(e=>e.Priority!==this.mainServer.Priority&&this.alreadyAttemptedOtherServers.indexOf(e.Priority)+1===0);t.length||(this.alreadyAttemptedOtherServers=[],t=this.servers.filter(e=>e.Priority!==this.mainServer.Priority&&this.alreadyAttemptedOtherServers.indexOf(e.Priority)+1===0)),t.length&&(this.server=t.reduce((e,s)=>s.Priority>e.Priority?s:e),this.alreadyAttemptedOtherServers.push(this.server.Priority))}else this.server=this.mainServer;else if(this.URLList.length)if(this.URL===this.URLList[0]){let t=this.URLList.filter(e=>e!==this.URLList[0]&&this.alreadyAttemptedOtherServers.indexOf(e)+1===0);t.length||(this.alreadyAttemptedOtherServers=[],t=this.URLList.filter(e=>e!==this.URLList[0]&&this.alreadyAttemptedOtherServers.indexOf(e)+1===0)),t.length&&(this.URL=t[0],this.alreadyAttemptedOtherServers.push(this.URL))}else this.URL=this.URLList[0]}async init(){const t=await this.authClass.login();return t&&this.authClass.onLoginResponse(t),!0}getCurrentMonitorServer(){return this.server}}exports.CallStatusEnum=Le;exports.CallTypeEnum=Oe;exports.ConnectionStatusEnum=te;exports.DebugOption=ee;exports.DialerTypeEnum=_e;exports.DirectionEnum=Re;exports.DoNotCallMeStatusCodeEnum=Ie;exports.EventsEnum=j;exports.ExtensionEventReasonEnum=me;exports.ExtensionHangupCauseEnum=xe;exports.LoginType=Y;exports.QueueEventReasonEnum=Ue;exports.ServerListenerEventsEnum=Se;exports.ServerParameter=Q;exports.default=nt;
|
|
18
|
+
`,102:"\f",114:"\r"},X=function(){throw S=K=null,SyntaxError()},J=function(){for(var E,O,w,D,k,x=K,B=x.length;B>S;)switch(k=x.charCodeAt(S)){case 9:case 10:case 13:case 32:S++;break;case 123:case 125:case 91:case 93:case 58:case 44:return E=P?x.charAt(S):x[S],S++,E;case 34:for(E="@",S++;B>S;)if(k=x.charCodeAt(S),32>k)X();else if(k==92)switch(k=x.charCodeAt(++S)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:E+=z[k],S++;break;case 117:for(O=++S,w=S+4;w>S;S++)k=x.charCodeAt(S),k>=48&&57>=k||k>=97&&102>=k||k>=65&&70>=k||X();E+=$("0x"+x.slice(O,S));break;default:X()}else{if(k==34)break;for(k=x.charCodeAt(S),O=S;k>=32&&k!=92&&k!=34;)k=x.charCodeAt(++S);E+=x.slice(O,S)}if(x.charCodeAt(S)==34)return S++,E;X();default:if(O=S,k==45&&(D=!0,k=x.charCodeAt(++S)),k>=48&&57>=k){for(k==48&&(k=x.charCodeAt(S+1),k>=48&&57>=k)&&X(),D=!1;B>S&&(k=x.charCodeAt(S),k>=48&&57>=k);S++);if(x.charCodeAt(S)==46){for(w=++S;B>w&&(k=x.charCodeAt(w),k>=48&&57>=k);w++);w==S&&X(),S=w}if(k=x.charCodeAt(S),k==101||k==69){for(k=x.charCodeAt(++S),(k==43||k==45)&&S++,w=S;B>w&&(k=x.charCodeAt(w),k>=48&&57>=k);w++);w==S&&X(),S=w}return+x.slice(O,S)}if(D&&X(),x.slice(S,S+4)=="true")return S+=4,!0;if(x.slice(S,S+5)=="false")return S+=5,!1;if(x.slice(S,S+4)=="null")return S+=4,null;X()}return"$"},ne=function(E){var O,w;if(E=="$"&&X(),typeof E=="string"){if((P?E.charAt(0):E[0])=="@")return E.slice(1);if(E=="["){for(O=[];E=J(),E!="]";w||(w=!0))w&&(E==","?(E=J(),E=="]"&&X()):X()),E==","&&X(),O.push(ne(E));return O}if(E=="{"){for(O={};E=J(),E!="}";w||(w=!0))w&&(E==","?(E=J(),E=="}"&&X()):X()),(E==","||typeof E!="string"||(P?E.charAt(0):E[0])!="@"||J()!=":")&&X(),O[E.slice(1)]=ne(J());return O}X()}return E},ke=function(E,O,w){var D=Ce(E,O,w);D===l?delete E[O]:E[O]=D},Ce=function(E,O,w){var D,k=E[O];if(typeof k=="object"&&k)if(d.call(k)==y)for(D=k.length;D--;)ke(k,D,w);else f(k,function(x){ke(k,x,w)});return w.call(E,O,k)};u.parse=function(E,O){var w,D;return S=0,K=""+E,w=ne(J()),J()!="$"&&X(),S=K=null,O&&d.call(O)==r?Ce((D={},D[""]=w,D),"",O):w}}}})(this)},{}],48:[function(a,t){function e(s,o){var h=[];o=o||0;for(var f=o||0;f<s.length;f++)h[f-o]=s[f];return h}t.exports=e},{}]},{},[1])(1)}const ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"})),Je=Object.assign({"./v1_3_7.js":ze}),We=/v\d+_\d+_\d+/;function He(a){return typeof a=="function"}const ve=Object.entries(Je).reduce((a,t)=>{var o;const e=t[1].default,s=(o=t[0].match(We))==null?void 0:o[0];return He(e)&&s&&(a[s]=e()),a},{}),Ne=a=>{if(a in ve)return ve[a];throw new Error(`Socket version ${a} not found`)},Ye=(a,...t)=>Ne(a)(...t),Qe={...ve,getSocketVersion:Ne,makeSocketVersion:Ye};var Le=(a=>(a.RINGING="Ringing",a.TALKING="Talking",a.DIALING="Dialing",a.HOLD="Hold",a))(Le||{}),Oe=(a=>(a.INCOMING="Incoming",a.OUTGOING="Outgoing",a))(Oe||{}),te=(a=>(a.CONNECTED="connected",a.DISCONNECTED="disconnected",a.TRYING_TO_CONNECT="tryingToConnect",a))(te||{}),_e=(a=>(a.AUTOMATIC="Automatic",a.IVR="IVR",a))(_e||{}),Re=(a=>(a.INCOMINC="Incoming",a.OUTGOING="Outgoing",a.SPY="Spy",a.CLICK2CALL="Click2Call",a))(Re||{}),Ie=(a=>(a.RESPONSE_FROM_API_VALID="RESPONSE_FROM_API_VALID",a.RESPONSE_FROM_API_INVALID="RESPONSE_FROM_API_INVALID",a))(Ie||{}),j=(a=>(a.ALL_DIALER_STATUS="AllDialersStatus",a.ALL_EXTENSION_STATUS="AllExtensionsStatus",a.ALL_USERS_STATUS="AllUsersStatus",a.CONNECT="connect",a.DISCONNECT="disconnect",a.CONNECT_ERROR_EVENT="connect_error",a.EXTENSION_EVENT="ExtensionEvent",a.KEEP_ALIVE="keepalive",a.KEEP_ALIVE_RESPONSE="keepaliveResponse",a.LOGIN_STATUS="loginStatus",a.LOGIN_SUCCESS="loginSuccess",a.QUEUE_EVENT="QueueEvent",a.ONLINE_STATUS_EVENT="onlineStatusEvent",a.DIALER_EVENT="DialerEvent",a.EXTENSIONS_UPDATED="ExtensionsUpdated",a))(j||{}),me=(a=>(a.NEWCALL="NEWCALL",a.ANSWER="ANSWER",a.HOLD="HOLD",a.UNHOLD="UNHOLD",a.HANGUP="HANGUP",a.USER_STATUS_UPDATE="userStatusUpdate",a))(me||{}),xe=(a=>(a.NORMAL_HANGUP="Normal hangup",a.USER_BUSY="User busy",a.CALL_REJECTED="Call Rejected",a.UNALLOCATED_NUMBER="Unallocated (unassigned) number",a.UNKNOWN="Unknown",a.NO_USER_RESPONDING="No user responding",a.USER_ALERTING="User alerting, no answer",a.ANSWERED_ELSEWHERE="Answered elsewhere",a))(xe||{}),Ue=(a=>(a.ANSWER="ANSWER",a.ABANDONED="ABANDONED",a.EXIT="EXIT",a.JOIN="JOIN",a))(Ue||{});class ae{static mapExtensionEvent(t){var f,l;const e=t.reason;let s,o;t.data.currentCall&&(o=this.mapExtensionCall(t,t.data.currentCall));const h=this.mapExtensionData(t,t.data);return e===me.HANGUP?s={...t,reason:e,data:{...h,currentCall:o?{...o,duration:o.callAnswered_UTC_CLIENT?Date.now()-o.callAnswered_UTC_CLIENT:0}:void 0,calls:(f=t.data.calls)==null?void 0:f.map(d=>{const i=this.mapExtensionCall(t,d);return{...i,duration:i.callAnswered_UTC_CLIENT?Date.now()-i.callAnswered_UTC_CLIENT:0}})}}:s={...t,data:{...h,currentCall:o,calls:(l=t.data.calls)==null?void 0:l.map(d=>this.mapExtensionCall(t,d))},reason:e},s}static mapAllExtensionStatus(t){return{...t,extensions:t.extensions.map(e=>{var s;return{...this.mapExtensionData(t,e),currentCall:e.currentCall?this.mapExtensionCall(t,e.currentCall):void 0,calls:(s=e.calls)==null?void 0:s.map(o=>this.mapExtensionCall(t,o))}})}}static mapExtensionData(t,e){return this.configureUTCForObject(e,[{key:"lastAnsweredCallEventEpoch",format:"sec"},{key:"lastCallEventEpoch",format:"sec"},{key:"lastHangupCallEpoch",format:"sec"},{key:"representativeUpdated",format:"ms"}],t.servertime,t.servertimeoffset)}static mapExtensionCall(t,e){return this.configureUTCForObject(e,[{key:"callAnswered",format:"sec"},{key:"callStarted",format:"sec"}],t.servertime,t.servertimeoffset)}static mapQueueCall(t,e){return this.configureUTCForObject(e,[{key:"JoinTimeStamp",format:"sec"},{key:"VHJoinTimeStamp",format:"sec"}],t.servertime,t.servertimeoffset)}static mapLoginStatusEvent(t){return{...t,queues:t.queues.map(e=>({...e,Calls:e.Calls.map(s=>this.mapQueueCall(t,s))}))}}static mapQueueEvent(t){return{...t,data:{...t.data,Calls:t.data.Calls.map(e=>this.mapQueueCall(t,e))}}}static assignProperty(t,e,s){t[e]=s}static configureUTCForObject(t,e,s,o){const h=(s-o*60)*1e3,f=Date.now()-h,l={};return e.forEach(d=>{const i=t[d.key],u=d.key;if(i!==0&&typeof i=="number"&&!isNaN(i)){let c=i;d.format==="ms"&&(c=Math.floor(c/1e3));const r=(c-o*60)*1e3;this.assignProperty(l,`${u}_UTC`,r),this.assignProperty(l,`${u}_UTC_CLIENT`,r+f)}else this.assignProperty(l,`${u}_UTC`,0),this.assignProperty(l,`${u}_UTC_CLIENT`,0)}),{...t,...l}}}var Se=(a=>(a.UPDATE_MONITORED_EXTENSIONS="updateMonitoredExtensions",a.KEEP_ALIVE="keepalive",a))(Se||{});class Ze{constructor(t){V(this,"io");V(this,"ioFunction");V(this,"lastEventTimestamp",new Date().getTime());V(this,"doReconnect",!0);V(this,"keepAliveInterval");V(this,"keepReconnectInterval");V(this,"keepReconnectTimeout");V(this,"connected",!1);V(this,"reconnectionTime",20);this.eventsSdkClass=t,this.eventsSdkClass=t,typeof window<"u"&&(window.addEventListener("offline",()=>{this.closeAllConnections()}),window.addEventListener("online",()=>{setTimeout(()=>{this.keepReconnectTimeout&&clearTimeout(this.keepReconnectTimeout),this.eventsSdkClass.connect(Q.NEXT)},5e3)})),typeof self<"u"&&typeof window>"u"&&typeof global>"u"&&(self.addEventListener("offline",()=>{this.closeAllConnections()}),self.addEventListener("online",()=>{setTimeout(()=>{this.keepReconnectTimeout&&clearTimeout(this.keepReconnectTimeout),this.eventsSdkClass.connect(Q.NEXT)},5e3)}))}getSocketIoFunction(t){const e=t.split("v="),s="v".concat(e[e.length-1]).replaceAll(".","_");this.ioFunction=Qe.getSocketVersion(s)}initSocketConnection(){const t=this.eventsSdkClass.authClass.token,e=this.eventsSdkClass.options.protocol,s=this.eventsSdkClass.server;try{const o=s?s.Domain:this.eventsSdkClass.URL,h=s?`${e}://${o}`:this.eventsSdkClass.URL,f={reconnection:!1,upgrade:!1,transports:["websocket"],forceNew:!0,query:{token:t},timeout:this.eventsSdkClass.options.timeout};if(this.ioFunction&&h)this.io=this.ioFunction(h,f),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{attemptToConnect:h,connectionStatus:te.TRYING_TO_CONNECT}),this.eventsSdkClass.loggerClass.sdkAttemptToConnect(o);else throw new Error("Socket server url no defined")}catch(o){this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(o)}}clearKeepAliveInterval(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval)}initKeepAlive(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveInterval=setInterval(async()=>{if(new Date().getTime()>this.lastEventTimestamp+this.eventsSdkClass.options.keepAliveTimeout&&this.io&&this.eventsSdkClass.authClass.token){this.eventsSdkClass.emit(Se.KEEP_ALIVE,this.eventsSdkClass.authClass.token),this.eventsSdkClass.loggerClass.keepAliveEmit();return}},this.eventsSdkClass.options.keepAliveTimeout)}closeAllConnections(){var t;this.io&&(this.io.close(),(t=this.io)==null||t.disconnect(),this.io=void 0),this.eventsSdkClass.loggerClass.stop(),oe.clearSessionStorage()}initSocketEvents(){this.io&&this.io.on(j.LOGIN_SUCCESS,t=>this.onLoginSuccessEvent(t,j.LOGIN_SUCCESS)).on(j.QUEUE_EVENT,t=>this.onQueueEvent(t,j.QUEUE_EVENT)).on(j.EXTENSION_EVENT,t=>this.onExtensionEvent(t,j.EXTENSION_EVENT)).on(j.DIALER_EVENT,t=>this.onDialerEvent(t,j.DIALER_EVENT)).on(j.LOGIN_STATUS,t=>this.onLoginStatusEvent(t,j.LOGIN_STATUS)).on(j.ALL_EXTENSION_STATUS,t=>this.onAllExtensionStatus(t,j.ALL_EXTENSION_STATUS)).on(j.ALL_DIALER_STATUS,t=>this.onAllDialerStatus(t,j.ALL_DIALER_STATUS)).on(j.KEEP_ALIVE_RESPONSE,t=>this.onKeepAliveResponse(t)).on(j.EXTENSIONS_UPDATED,t=>this.onExtensionsUpdatedEvent(t,j.EXTENSIONS_UPDATED)).on(j.CONNECT,()=>this.onConnect()).on(j.DISCONNECT,t=>this.onDisconnect(t)).on(j.CONNECT_ERROR_EVENT,t=>this.onConnectError(t))}onLoginSuccessEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onQueueEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,ae.mapQueueEvent(t))}onExtensionEvent(t,e){const s=ae.mapExtensionEvent(t);s&&(this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,s))}onDialerEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onLoginStatusEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,ae.mapLoginStatusEvent(t))}onAllExtensionStatus(t,e){const s=ae.mapAllExtensionStatus(t);this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,s)}onAllDialerStatus(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onKeepAliveResponse(t){if(this.eventsSdkClass.loggerClass.keepAliveResponse(t),t.errorCode){this.initSocketConnection();return}this.connected?this.lastEventTimestamp=new Date().getTime():this.initSocketConnection()}onExtensionsUpdatedEvent(t,e){this.eventsSdkClass.loggerClass.eventLog(e,t),this.eventsSdkClass.eventEmitterClass.emit(e,t)}onConnect(){this.connected=!0,this.keepReconnectInterval&&clearInterval(this.keepReconnectInterval),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:te.CONNECTED}),this.eventsSdkClass.loggerClass.start().then(()=>{this.eventsSdkClass.loggerClass.sdkConnectionSuccess()})}onDisconnect(t){this.connected=!1,this.doReconnect&&(this.closeAllConnections(),this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?te.TRYING_TO_CONNECT:te.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkDisconnect([t]),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>120&&(this.reconnectionTime=20),this.eventsSdkClass.connect(Q.NEXT)},this.reconnectionTime*1e3))}onConnectError(t){this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?te.TRYING_TO_CONNECT:te.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(t),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>60&&(this.reconnectionTime=20),this.eventsSdkClass.connect(Q.NEXT)},this.reconnectionTime*1e3)}}class et{constructor(t){V(this,"storageLogger");this.eventsSdkClass=t,this.eventsSdkClass=t}init(){if(!this.eventsSdkClass.options.useLogger)return;if(this.eventsSdkClass.options.storageLoggerInstance){this.storageLogger=this.eventsSdkClass.options.storageLoggerInstance;return}let t;this.eventsSdkClass.options.loggerSocketConnection&&(t=this.eventsSdkClass.options.loggerSocketConnection),this.eventsSdkClass.socketIoClass.ioFunction&&!t&&(t=this.eventsSdkClass.socketIoClass.ioFunction(this.eventsSdkClass.options.loggerServer,this.eventsSdkClass.options.loggerConnectOptions)),t&&(this.storageLogger=new q({socket:t,loggerOptions:this.eventsSdkClass.options.loggerConfig}))}async start(){this.storageLogger&&await this.storageLogger.start()}async stop(){this.storageLogger&&await this.storageLogger.stop()}log(t){if(this.eventsSdkClass.options.useLogger)if(this.storageLogger)switch(t.Level){case q.LevelEnum.INFO:this.storageLogger.log(t);break;case q.LevelEnum.DEBUG:this.storageLogger.debug(t);break;case q.LevelEnum.WARNING:this.storageLogger.warn(t);break;case q.LevelEnum.ERROR:this.storageLogger.error(t)}else t.Level===q.LevelEnum.INFO?console.log(t):t.Level===q.LevelEnum.ERROR&&console.error(t)}sdkConnectionSuccess(){const t={...this.eventsSdkClass.options,token:"CENSORED",password:"CENSORED"};this.log({Message:`Sdk connected to the socket server ${this.eventsSdkClass.server&&this.eventsSdkClass.server.Domain?this.eventsSdkClass.server.Domain:this.eventsSdkClass.URL}`,Body:JSON.stringify(t,this.eventsSdkClass.getCircularReplacer()),ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection established",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkDisconnect(t){this.log({Message:`Sdk disconnected from the socket server ${this.eventsSdkClass.server&&this.eventsSdkClass.server.Domain?this.eventsSdkClass.server.Domain:this.eventsSdkClass.URL} (${t})`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection closed",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkAttemptToConnect(t){this.log({Message:`${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${t}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Switching Protocols",StatusCode:101,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}sdkAttemptToConnectError(t){this.log({Message:`${t}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection error",StatusCode:500,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}loginError(t,e,s,o){this.log({Message:`External login request error with the login type ${t} ${t===Y.TOKEN?s:o}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"External login error",StatusCode:e||400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}getSettingsError(t,e){this.log({Message:`Get settings error with token ${t}, error: ${e}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}refreshTokenError(t,e,s){this.log({Message:`Refresh token error with old refresh token ${t}, url: ${e}, error: ${s}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:q.LevelEnum.ERROR,LogType:q.LogTypeEnum.ERROR})}keepAliveEmit(){this.log({Message:`Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}keepAliveResponse(t){this.log({Message:`Keep alive response: ${JSON.stringify(t)}`,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",StatusCode:200,Level:q.LevelEnum.INFO,LogType:q.LogTypeEnum.INFO})}eventLog(t,e){const s={[ee.FULL]:[],[ee.BOOTSTRAP]:[j.LOGIN_STATUS,j.LOGIN_SUCCESS,j.ALL_EXTENSION_STATUS,j.ALL_DIALER_STATUS],[ee.DEBUG_EXTENSIONS]:[j.ALL_EXTENSION_STATUS,j.EXTENSION_EVENT,j.EXTENSIONS_UPDATED],[ee.DEBUG_DIALER]:[j.ALL_DIALER_STATUS,j.DIALER_EVENT],[ee.DEBUG_QUEUE]:[j.QUEUE_EVENT]};this.eventsSdkClass.options.debugOption&&(s[this.eventsSdkClass.options.debugOption].includes(t)||this.eventsSdkClass.options.debugOption===ee.FULL)&&this.log({Message:`Event name: ${t}`,Body:e,ActionName:q.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",Level:q.LevelEnum.DEBUG,LogType:q.LogTypeEnum.INFO})}}class tt{constructor(t){V(this,"listeners",{[j.ALL_EXTENSION_STATUS]:[],[j.ALL_DIALER_STATUS]:[],[j.ALL_USERS_STATUS]:[],[j.QUEUE_EVENT]:[],[j.EXTENSION_EVENT]:[],[j.DIALER_EVENT]:[],[j.LOGIN_SUCCESS]:[],[j.LOGIN_STATUS]:[],[j.KEEP_ALIVE_RESPONSE]:[],[j.ONLINE_STATUS_EVENT]:[],[j.EXTENSIONS_UPDATED]:[]});V(this,"allListeners",[]);this.eventsSdkClass=t,this.eventsSdkClass=t}on(t,e){t==="*"?this.allListeners.push(e):this.listeners[t].push(e)}off(t,e){if(t==="*")this.allListeners=this.allListeners.filter(s=>s!==e);else{const o=this.listeners[t].filter(h=>h!==e);this.listeners={...this.listeners,[t]:o}}}emit(t,e){this.eventsSdkClass.socketIoClass.lastEventTimestamp=new Date().getTime(),this.listeners[t].forEach(o=>o({name:t,data:e}));const s={name:t,data:e};this.allListeners.forEach(o=>o(s))}}class nt{constructor(t){V(this,"options");V(this,"servers",[]);V(this,"URLList",[]);V(this,"server");V(this,"URL");V(this,"socket");V(this,"mainServer");V(this,"alreadyAttemptedOtherServers",[]);V(this,"authClass",new Ke(this));V(this,"socketIoClass",new Ze(this));V(this,"loggerClass",new et(this));V(this,"eventEmitterClass",new tt(this));V(this,"getCircularReplacer",()=>{const t=new WeakSet;return(e,s)=>{if(!(e==="socket"||e==="io"||e==="nsps")){if(typeof s=="object"&&s!==null){if(t.has(s))return;t.add(s)}return s}}});this.options={...$e,...t}}on(t,e){this.eventEmitterClass.on(t,e)}emit(t,...e){this.socketIoClass.io&&this.socketIoClass.io.emit(t,...e)}connect(t){t===Q.MAIN&&this.findMainServer(),t===Q.NEXT&&this.findNextServer(),this.socketIoClass.doReconnect=!0;try{this.loggerClass.start()}catch(e){console.error(e)}this.socketIoClass.initSocketConnection(),this.socketIoClass.initSocketEvents(),this.socketIoClass.initKeepAlive()}async disconnect(){this.socketIoClass.doReconnect=!1,this.socketIoClass.closeAllConnections(),await this.loggerClass.stop()}clearKeepAliveInterval(){this.socketIoClass.clearKeepAliveInterval()}findMainServer(){this.servers.length?(this.mainServer=this.servers.reduce((t,e)=>e.Priority>t.Priority?e:t),this.server=this.mainServer):this.URLList.length&&(this.URL=this.URLList[0])}findNextServer(){if(this.servers.length&&this.server)if(this.server.Priority===this.mainServer.Priority){let t=this.servers.filter(e=>e.Priority!==this.mainServer.Priority&&this.alreadyAttemptedOtherServers.indexOf(e.Priority)+1===0);t.length||(this.alreadyAttemptedOtherServers=[],t=this.servers.filter(e=>e.Priority!==this.mainServer.Priority&&this.alreadyAttemptedOtherServers.indexOf(e.Priority)+1===0)),t.length&&(this.server=t.reduce((e,s)=>s.Priority>e.Priority?s:e),this.alreadyAttemptedOtherServers.push(this.server.Priority))}else this.server=this.mainServer;else if(this.URLList.length)if(this.URL===this.URLList[0]){let t=this.URLList.filter(e=>e!==this.URLList[0]&&this.alreadyAttemptedOtherServers.indexOf(e)+1===0);t.length||(this.alreadyAttemptedOtherServers=[],t=this.URLList.filter(e=>e!==this.URLList[0]&&this.alreadyAttemptedOtherServers.indexOf(e)+1===0)),t.length&&(this.URL=t[0],this.alreadyAttemptedOtherServers.push(this.URL))}else this.URL=this.URLList[0]}async init(){const t=await this.authClass.login();return t&&this.authClass.onLoginResponse(t),!0}getCurrentMonitorServer(){return this.server}}exports.CallStatusEnum=Le;exports.CallTypeEnum=Oe;exports.ConnectionStatusEnum=te;exports.DebugOption=ee;exports.DialerTypeEnum=_e;exports.DirectionEnum=Re;exports.DoNotCallMeStatusCodeEnum=Ie;exports.EventsEnum=j;exports.ExtensionEventReasonEnum=me;exports.ExtensionHangupCauseEnum=xe;exports.LoginType=Y;exports.QueueEventReasonEnum=Ue;exports.ServerListenerEventsEnum=Se;exports.ServerParameter=Q;exports.default=nt;
|
|
19
19
|
//# sourceMappingURL=voicenter-events-sdk.cjs.js.map
|