@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+te.join(`,
|
|
16
16
|
`+x)+`
|
|
17
17
|
`+ke+"}":"{"+te.join(",")+"}":"{}";return B.pop(),Se}};u.stringify=function(E,_,w){var D,S,x,B;if(typeof _=="function"||typeof _=="object"&&_){if((B=d.call(_))==r)S=_;else if(B==v){x={};for(var N,M=0,z=_.length;z>M;N=_[M++],B=d.call(N),(B==y||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==y&&(D=w.length<=10?w:w.slice(0,10));return R("",(N={},N[""]=E,N),S,x,D,"",[])}}if(!o("json-parse")){var k,$,G=String.fromCharCode,J={92:"\\",34:'"',47:"/",98:"\b",116:" ",110:`
|
|
18
|
-
`,102:"\f",114:"\r"},X=function(){throw k=$=null,SyntaxError()},W=function(){for(var E,_,w,D,S,x=$,B=x.length;B>k;)switch(S=x.charCodeAt(k)){case 9:case 10:case 13:case 32:k++;break;case 123:case 125:case 91:case 93:case 58:case 44:return E=P?x.charAt(k):x[k],k++,E;case 34:for(E="@",k++;B>k;)if(S=x.charCodeAt(k),32>S)X();else if(S==92)switch(S=x.charCodeAt(++k)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:E+=J[S],k++;break;case 117:for(_=++k,w=k+4;w>k;k++)S=x.charCodeAt(k),S>=48&&57>=S||S>=97&&102>=S||S>=65&&70>=S||X();E+=G("0x"+x.slice(_,k));break;default:X()}else{if(S==34)break;for(S=x.charCodeAt(k),_=k;S>=32&&S!=92&&S!=34;)S=x.charCodeAt(++k);E+=x.slice(_,k)}if(x.charCodeAt(k)==34)return k++,E;X();default:if(_=k,S==45&&(D=!0,S=x.charCodeAt(++k)),S>=48&&57>=S){for(S==48&&(S=x.charCodeAt(k+1),S>=48&&57>=S)&&X(),D=!1;B>k&&(S=x.charCodeAt(k),S>=48&&57>=S);k++);if(x.charCodeAt(k)==46){for(w=++k;B>w&&(S=x.charCodeAt(w),S>=48&&57>=S);w++);w==k&&X(),k=w}if(S=x.charCodeAt(k),S==101||S==69){for(S=x.charCodeAt(++k),(S==43||S==45)&&k++,w=k;B>w&&(S=x.charCodeAt(w),S>=48&&57>=S);w++);w==k&&X(),k=w}return+x.slice(_,k)}if(D&&X(),x.slice(k,k+4)=="true")return k+=4,!0;if(x.slice(k,k+5)=="false")return k+=5,!1;if(x.slice(k,k+4)=="null")return k+=4,null;X()}return"$"},oe=function(E){var _,w;if(E=="$"&&X(),typeof E=="string"){if((P?E.charAt(0):E[0])=="@")return E.slice(1);if(E=="["){for(_=[];E=W(),E!="]";w||(w=!0))w&&(E==","?(E=W(),E=="]"&&X()):X()),E==","&&X(),_.push(oe(E));return _}if(E=="{"){for(_={};E=W(),E!="}";w||(w=!0))w&&(E==","?(E=W(),E=="}"&&X()):X()),(E==","||typeof E!="string"||(P?E.charAt(0):E[0])!="@"||W()!=":")&&X(),_[E.slice(1)]=oe(W());return _}X()}return E},Ue=function(E,_,w){var D=Be(E,_,w);D===l?delete E[_]:E[_]=D},Be=function(E,_,w){var D,S=E[_];if(typeof S=="object"&&S)if(d.call(S)==v)for(D=S.length;D--;)Ue(S,D,w);else f(S,function(x){Ue(S,x,w)});return w.call(E,_,S)};u.parse=function(E,_){var w,D;return k=0,$=""+E,w=oe(W()),W()!="$"&&X(),k=$=null,_&&d.call(_)==r?Be((D={},D[""]=w,D),"",_):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 Ge=Object.assign({"./v1_3_7.js":Object.freeze(Object.defineProperty({__proto__:null,default:$e},Symbol.toStringTag,{value:"Module"}))}),ze=/v\d+_\d+_\d+/;function Je(a){return typeof a=="function"}const ue=Object.entries(Ge).reduce((a,t)=>{var o;const e=t[1].default,s=(o=t[0].match(ze))==null?void 0:o[0];return Je(e)&&s&&(a[s]=e()),a},{}),Ae=a=>{if(a in ue)return ue[a];throw new Error(`Socket version ${a} not found`)},We={...ue,getSocketVersion:Ae,makeSocketVersion:(a,...t)=>Ae(a)(...t)};var Ne=(a=>(a.RINGING="Ringing",a.TALKING="Talking",a.DIALING="Dialing",a.HOLD="Hold",a))(Ne||{}),Le=(a=>(a.INCOMING="Incoming",a.OUTGOING="Outgoing",a))(Le||{}),re=(a=>(a.CONNECTED="connected",a.DISCONNECTED="disconnected",a.TRYING_TO_CONNECT="tryingToConnect",a))(re||{}),_e=(a=>(a.AUTOMATIC="Automatic",a.IVR="IVR",a))(_e||{}),Oe=(a=>(a.INCOMINC="Incoming",a.OUTGOING="Outgoing",a.SPY="Spy",a.CLICK2CALL="Click2Call",a))(Oe||{}),Re=(a=>(a.RESPONSE_FROM_API_VALID="RESPONSE_FROM_API_VALID",a.RESPONSE_FROM_API_INVALID="RESPONSE_FROM_API_INVALID",a))(Re||{}),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||{}),pe=(a=>(a.NEWCALL="NEWCALL",a.ANSWER="ANSWER",a.HOLD="HOLD",a.UNHOLD="UNHOLD",a.HANGUP="HANGUP",a.USER_STATUS_UPDATE="userStatusUpdate",a))(pe||{}),Ie=(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))(Ie||{}),xe=(a=>(a.ANSWER="ANSWER",a.ABANDONED="ABANDONED",a.EXIT="EXIT",a.JOIN="JOIN",a))(xe||{});class ce{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===pe.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 fe=(a=>(a.UPDATE_MONITORED_EXTENSIONS="updateMonitoredExtensions",a.KEEP_ALIVE="keepalive",a))(fe||{});class He{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(ee.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(ee.NEXT)},5e3)}))}getSocketIoFunction(t){const e=t.split("v="),s="v".concat(e[e.length-1]).replaceAll(".","_");this.ioFunction=We.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:re.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(fe.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(),se.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,ce.mapQueueEvent(t))}onExtensionEvent(t,e){const s=ce.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,ce.mapLoginStatusEvent(t))}onAllExtensionStatus(t,e){const s=ce.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:re.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?re.TRYING_TO_CONNECT:re.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkDisconnect([t]),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>120&&(this.reconnectionTime=20),this.eventsSdkClass.connect(ee.NEXT)},this.reconnectionTime*1e3))}onConnectError(t){this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?re.TRYING_TO_CONNECT:re.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(t),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>60&&(this.reconnectionTime=20),this.eventsSdkClass.connect(ee.NEXT)},this.reconnectionTime*1e3)}}class Ye{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 F({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 F.LevelEnum.INFO:this.storageLogger.log(t);break;case F.LevelEnum.DEBUG:this.storageLogger.debug(t);break;case F.LevelEnum.WARNING:this.storageLogger.warn(t);break;case F.LevelEnum.ERROR:this.storageLogger.error(t)}else t.Level===F.LevelEnum.INFO?console.log(t):t.Level===F.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:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection established",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.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:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection closed",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}sdkAttemptToConnect(t){this.log({Message:`${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${t}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Switching Protocols",StatusCode:101,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}sdkAttemptToConnectError(t){this.log({Message:`${t}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection error",StatusCode:500,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}loginError(t,e,s,o){this.log({Message:`External login request error with the login type ${t} ${t===Z.TOKEN?s:o}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"External login error",StatusCode:e||400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}getSettingsError(t,e){this.log({Message:`Get settings error with token ${t}, error: ${e}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}refreshTokenError(t,e,s){this.log({Message:`Refresh token error with old refresh token ${t}, url: ${e}, error: ${s}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}keepAliveEmit(){this.log({Message:`Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}keepAliveResponse(t){this.log({Message:`Keep alive response: ${JSON.stringify(t)}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}eventLog(t,e){const s={[ne.FULL]:[],[ne.BOOTSTRAP]:[j.LOGIN_STATUS,j.LOGIN_SUCCESS,j.ALL_EXTENSION_STATUS,j.ALL_DIALER_STATUS],[ne.DEBUG_EXTENSIONS]:[j.ALL_EXTENSION_STATUS,j.EXTENSION_EVENT,j.EXTENSIONS_UPDATED],[ne.DEBUG_DIALER]:[j.ALL_DIALER_STATUS,j.DIALER_EVENT],[ne.DEBUG_QUEUE]:[j.QUEUE_EVENT]};this.eventsSdkClass.options.debugOption&&(s[this.eventsSdkClass.options.debugOption].includes(t)||this.eventsSdkClass.options.debugOption===ne.FULL)&&this.log({Message:`Event name: ${t}`,Body:e,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",Level:F.LevelEnum.DEBUG,LogType:F.LogTypeEnum.INFO})}}class Qe{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 Ze{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 Ve(this));V(this,"socketIoClass",new He(this));V(this,"loggerClass",new Ye(this));V(this,"eventEmitterClass",new Qe(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={...Ke,...t}}on(t,e){this.eventEmitterClass.on(t,e)}emit(t,...e){this.socketIoClass.io&&this.socketIoClass.io.emit(t,...e)}connect(t){t===ee.MAIN&&this.findMainServer(),t===ee.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}}K.CallStatusEnum=Ne,K.CallTypeEnum=Le,K.ConnectionStatusEnum=re,K.DebugOption=ne,K.DialerTypeEnum=_e,K.DirectionEnum=Oe,K.DoNotCallMeStatusCodeEnum=Re,K.EventsEnum=j,K.ExtensionEventReasonEnum=pe,K.ExtensionHangupCauseEnum=Ie,K.LoginType=Z,K.QueueEventReasonEnum=xe,K.ServerListenerEventsEnum=fe,K.ServerParameter=ee,K.default=Ze,Object.defineProperties(K,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
18
|
+
`,102:"\f",114:"\r"},X=function(){throw k=$=null,SyntaxError()},W=function(){for(var E,_,w,D,S,x=$,B=x.length;B>k;)switch(S=x.charCodeAt(k)){case 9:case 10:case 13:case 32:k++;break;case 123:case 125:case 91:case 93:case 58:case 44:return E=P?x.charAt(k):x[k],k++,E;case 34:for(E="@",k++;B>k;)if(S=x.charCodeAt(k),32>S)X();else if(S==92)switch(S=x.charCodeAt(++k)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:E+=J[S],k++;break;case 117:for(_=++k,w=k+4;w>k;k++)S=x.charCodeAt(k),S>=48&&57>=S||S>=97&&102>=S||S>=65&&70>=S||X();E+=G("0x"+x.slice(_,k));break;default:X()}else{if(S==34)break;for(S=x.charCodeAt(k),_=k;S>=32&&S!=92&&S!=34;)S=x.charCodeAt(++k);E+=x.slice(_,k)}if(x.charCodeAt(k)==34)return k++,E;X();default:if(_=k,S==45&&(D=!0,S=x.charCodeAt(++k)),S>=48&&57>=S){for(S==48&&(S=x.charCodeAt(k+1),S>=48&&57>=S)&&X(),D=!1;B>k&&(S=x.charCodeAt(k),S>=48&&57>=S);k++);if(x.charCodeAt(k)==46){for(w=++k;B>w&&(S=x.charCodeAt(w),S>=48&&57>=S);w++);w==k&&X(),k=w}if(S=x.charCodeAt(k),S==101||S==69){for(S=x.charCodeAt(++k),(S==43||S==45)&&k++,w=k;B>w&&(S=x.charCodeAt(w),S>=48&&57>=S);w++);w==k&&X(),k=w}return+x.slice(_,k)}if(D&&X(),x.slice(k,k+4)=="true")return k+=4,!0;if(x.slice(k,k+5)=="false")return k+=5,!1;if(x.slice(k,k+4)=="null")return k+=4,null;X()}return"$"},oe=function(E){var _,w;if(E=="$"&&X(),typeof E=="string"){if((P?E.charAt(0):E[0])=="@")return E.slice(1);if(E=="["){for(_=[];E=W(),E!="]";w||(w=!0))w&&(E==","?(E=W(),E=="]"&&X()):X()),E==","&&X(),_.push(oe(E));return _}if(E=="{"){for(_={};E=W(),E!="}";w||(w=!0))w&&(E==","?(E=W(),E=="}"&&X()):X()),(E==","||typeof E!="string"||(P?E.charAt(0):E[0])!="@"||W()!=":")&&X(),_[E.slice(1)]=oe(W());return _}X()}return E},Ue=function(E,_,w){var D=Be(E,_,w);D===l?delete E[_]:E[_]=D},Be=function(E,_,w){var D,S=E[_];if(typeof S=="object"&&S)if(d.call(S)==v)for(D=S.length;D--;)Ue(S,D,w);else f(S,function(x){Ue(S,x,w)});return w.call(E,_,S)};u.parse=function(E,_){var w,D;return k=0,$=""+E,w=oe(W()),W()!="$"&&X(),k=$=null,_&&d.call(_)==r?Be((D={},D[""]=w,D),"",_):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 Ge=Object.assign({"./v1_3_7.js":Object.freeze(Object.defineProperty({__proto__:null,default:$e},Symbol.toStringTag,{value:"Module"}))}),ze=/v\d+_\d+_\d+/;function Je(a){return typeof a=="function"}const ue=Object.entries(Ge).reduce((a,t)=>{var o;const e=t[1].default,s=(o=t[0].match(ze))==null?void 0:o[0];return Je(e)&&s&&(a[s]=e()),a},{}),Ae=a=>{if(a in ue)return ue[a];throw new Error(`Socket version ${a} not found`)},We={...ue,getSocketVersion:Ae,makeSocketVersion:(a,...t)=>Ae(a)(...t)};var Ne=(a=>(a.RINGING="Ringing",a.TALKING="Talking",a.DIALING="Dialing",a.HOLD="Hold",a))(Ne||{}),Le=(a=>(a.INCOMING="Incoming",a.OUTGOING="Outgoing",a))(Le||{}),re=(a=>(a.CONNECTED="connected",a.DISCONNECTED="disconnected",a.TRYING_TO_CONNECT="tryingToConnect",a))(re||{}),_e=(a=>(a.AUTOMATIC="Automatic",a.IVR="IVR",a))(_e||{}),Oe=(a=>(a.INCOMINC="Incoming",a.OUTGOING="Outgoing",a.SPY="Spy",a.CLICK2CALL="Click2Call",a))(Oe||{}),Re=(a=>(a.RESPONSE_FROM_API_VALID="RESPONSE_FROM_API_VALID",a.RESPONSE_FROM_API_INVALID="RESPONSE_FROM_API_INVALID",a))(Re||{}),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||{}),pe=(a=>(a.NEWCALL="NEWCALL",a.ANSWER="ANSWER",a.HOLD="HOLD",a.UNHOLD="UNHOLD",a.HANGUP="HANGUP",a.USER_STATUS_UPDATE="userStatusUpdate",a))(pe||{}),Ie=(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))(Ie||{}),xe=(a=>(a.ANSWER="ANSWER",a.ABANDONED="ABANDONED",a.EXIT="EXIT",a.JOIN="JOIN",a))(xe||{});class ce{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===pe.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 fe=(a=>(a.UPDATE_MONITORED_EXTENSIONS="updateMonitoredExtensions",a.KEEP_ALIVE="keepalive",a))(fe||{});class He{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(ee.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(ee.NEXT)},5e3)}))}getSocketIoFunction(t){const e=t.split("v="),s="v".concat(e[e.length-1]).replaceAll(".","_");this.ioFunction=We.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:re.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(fe.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(),se.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,ce.mapQueueEvent(t))}onExtensionEvent(t,e){const s=ce.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,ce.mapLoginStatusEvent(t))}onAllExtensionStatus(t,e){const s=ce.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:re.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?re.TRYING_TO_CONNECT:re.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkDisconnect([t]),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>120&&(this.reconnectionTime=20),this.eventsSdkClass.connect(ee.NEXT)},this.reconnectionTime*1e3))}onConnectError(t){this.eventsSdkClass.eventEmitterClass.emit(j.ONLINE_STATUS_EVENT,{connectionStatus:this.doReconnect?re.TRYING_TO_CONNECT:re.DISCONNECTED}),this.eventsSdkClass.loggerClass.sdkAttemptToConnectError(t),this.keepReconnectTimeout=setTimeout(()=>{this.reconnectionTime=this.reconnectionTime+20,this.reconnectionTime>60&&(this.reconnectionTime=20),this.eventsSdkClass.connect(ee.NEXT)},this.reconnectionTime*1e3)}}class Ye{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 F({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 F.LevelEnum.INFO:this.storageLogger.log(t);break;case F.LevelEnum.DEBUG:this.storageLogger.debug(t);break;case F.LevelEnum.WARNING:this.storageLogger.warn(t);break;case F.LevelEnum.ERROR:this.storageLogger.error(t)}else t.Level===F.LevelEnum.INFO?console.log(t):t.Level===F.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:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection established",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.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:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection closed",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}sdkAttemptToConnect(t){this.log({Message:`${this.eventsSdkClass.options.loggerConfig.system} is trying to connect to WS server ${t}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Switching Protocols",StatusCode:101,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}sdkAttemptToConnectError(t){this.log({Message:`${t}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Connection error",StatusCode:500,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}loginError(t,e,s,o){this.log({Message:`External login request error with the login type ${t} ${t===Z.TOKEN?s:o}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"External login error",StatusCode:e||400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}getSettingsError(t,e){this.log({Message:`Get settings error with token ${t}, error: ${e}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}refreshTokenError(t,e,s){this.log({Message:`Refresh token error with old refresh token ${t}, url: ${e}, error: ${s}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Get settings error",StatusCode:400,Level:F.LevelEnum.ERROR,LogType:F.LogTypeEnum.ERROR})}keepAliveEmit(){this.log({Message:`Keep alive event emitted with this token: ${this.eventsSdkClass.authClass.token}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}keepAliveResponse(t){this.log({Message:`Keep alive response: ${JSON.stringify(t)}`,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",StatusCode:200,Level:F.LevelEnum.INFO,LogType:F.LogTypeEnum.INFO})}eventLog(t,e){const s={[ne.FULL]:[],[ne.BOOTSTRAP]:[j.LOGIN_STATUS,j.LOGIN_SUCCESS,j.ALL_EXTENSION_STATUS,j.ALL_DIALER_STATUS],[ne.DEBUG_EXTENSIONS]:[j.ALL_EXTENSION_STATUS,j.EXTENSION_EVENT,j.EXTENSIONS_UPDATED],[ne.DEBUG_DIALER]:[j.ALL_DIALER_STATUS,j.DIALER_EVENT],[ne.DEBUG_QUEUE]:[j.QUEUE_EVENT]};this.eventsSdkClass.options.debugOption&&(s[this.eventsSdkClass.options.debugOption].includes(t)||this.eventsSdkClass.options.debugOption===ne.FULL)&&this.log({Message:`Event name: ${t}`,Body:e,ActionName:F.ActionNameEnum.WSCONNECT,isShowClient:!1,Status:"Successful",Level:F.LevelEnum.DEBUG,LogType:F.LogTypeEnum.INFO})}}class Qe{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 Ze{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 Ve(this));V(this,"socketIoClass",new He(this));V(this,"loggerClass",new Ye(this));V(this,"eventEmitterClass",new Qe(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={...Ke,...t}}on(t,e){this.eventEmitterClass.on(t,e)}emit(t,...e){this.socketIoClass.io&&this.socketIoClass.io.emit(t,...e)}connect(t){t===ee.MAIN&&this.findMainServer(),t===ee.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}}K.CallStatusEnum=Ne,K.CallTypeEnum=Le,K.ConnectionStatusEnum=re,K.DebugOption=ne,K.DialerTypeEnum=_e,K.DirectionEnum=Oe,K.DoNotCallMeStatusCodeEnum=Re,K.EventsEnum=j,K.ExtensionEventReasonEnum=pe,K.ExtensionHangupCauseEnum=Ie,K.LoginType=Z,K.QueueEventReasonEnum=xe,K.ServerListenerEventsEnum=fe,K.ServerParameter=ee,K.default=Ze,Object.defineProperties(K,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
19
19
|
//# sourceMappingURL=voicenter-events-sdk.umd.js.map
|