podchat-browser 12.7.2-snapshot.5 → 12.7.2-snapshot.7

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/node/chat.js CHANGED
@@ -1,4 +1,5 @@
1
- 'use strict';var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _podasyncWsOnly=_interopRequireDefault(require("podasync-ws-only"));var _utility=_interopRequireDefault(require("./utility/utility"));var _dexie=_interopRequireDefault(require("dexie"));var _call=_interopRequireDefault(require("./call.module"));var _events=_interopRequireWildcard(require("./events.module"));var _messaging=_interopRequireDefault(require("./messaging.module"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof3(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}function Chat(params){/*******************************************************
1
+ 'use strict';var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _podasyncWsOnly=_interopRequireDefault(require("podasync-ws-only"));var _utility=_interopRequireDefault(require("./utility/utility"));var _dexie=_interopRequireDefault(require("dexie"));var _call=_interopRequireDefault(require("./call.module"));var _events=_interopRequireWildcard(require("./events.module"));var _messaging=_interopRequireDefault(require("./messaging.module"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof3(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}// import {externalLogger as externalLog, init as initExternalLogger} from "./lib/logger";
2
+ function Chat(params){/*******************************************************
2
3
  * P R I V A T E V A R I A B L E S *
3
4
  *******************************************************/var asyncClient,peerId,oldPeerId,token=params.token,generalTypeCode=params.typeCode||'default',mapApiKey=params.mapApiKey||'8b77db18704aa646ee5aaea13e7370f4f88b9e8c',deviceId,productEnv=typeof navigator!='undefined'?navigator.product:'undefined',db,queueDb,forceWaitQueueInMemory=params.forceWaitQueueInMemory&&typeof params.forceWaitQueueInMemory==='boolean'?params.forceWaitQueueInMemory:false,hasCache=productEnv!=='ReactNative'&&typeof _dexie["default"]!='undefined',cacheInMemory=forceWaitQueueInMemory?true:!hasCache,enableCache=params.enableCache&&typeof params.enableCache==='boolean'?params.enableCache:false,canUseCache=hasCache&&enableCache,isCacheReady=false,cacheDeletingInProgress=false,cacheExpireTime=params.cacheExpireTime||2*24*60*60*1000,cacheSecret='VjaaS9YxNdVVAd3cAsRPcU5FyxRcyyV6tG6bFGjjK5RV8JJjLrXNbS5zZxnqUT6Y',cacheSyncWorker,grantDeviceIdFromSSO=params.grantDeviceIdFromSSO&&typeof params.grantDeviceIdFromSSO==='boolean'?params.grantDeviceIdFromSSO:false,messagesDelivery={},messagesSeen={},deliveryInterval,deliveryIntervalPitch=params.deliveryIntervalPitch||2000,seenInterval,seenIntervalPitch=params.seenIntervalPitch||2000,getImageFromLinkObjects={},locationPingTypes={'CHAT':1,'THREAD':2,'CONTACTS':3},systemMessageIntervalPitch=params.systemMessageIntervalPitch||1000,isTypingInterval,protocol=params.protocol||'websocket',queueHost=params.queueHost,queuePort=params.queuePort,queueUsername=params.queueUsername,queuePassword=params.queuePassword,queueReceive=params.queueReceive,queueSend=params.queueSend,queueConnectionTimeout=params.queueConnectionTimeout,socketAddress=params.socketAddress,serverName=params.serverName||'',wsConnectionWaitTime=params.wsConnectionWaitTime,connectionRetryInterval=params.connectionRetryInterval,msgPriority=params.msgPriority||1,messageTtl=params.messageTtl||10000,reconnectOnClose=params.reconnectOnClose,asyncLogging=params.asyncLogging,chatPingMessageInterval=20000,getUserInfoTimeout,config={getHistoryCount:50},SERVICE_ADDRESSES={SSO_ADDRESS:params.ssoHost||'https://accounts.pod.ir',PLATFORM_ADDRESS:params.platformHost||'https://api.pod.ir/srv/core',FILESERVER_ADDRESS:params.fileServer||'https://core.pod.ir',PODSPACE_FILESERVER_ADDRESS:params.podSpaceFileServer||'https://podspace.pod.ir',MAP_ADDRESS:params.mapServer||'https://api.neshan.org/v2'},SERVICES_PATH={// Grant Devices
4
5
  SSO_DEVICES:'/oauth2/grants/devices',SSO_GENERATE_KEY:'/handshake/users/',SSO_GET_KEY:'/handshake/keys/',// Contacts
@@ -20,9 +21,19 @@ REVERSE:'/reverse',SEARCH:'/search',ROUTING:'/routing',STATIC_IMAGE:'/static'},C
20
21
  6300:'Error in uploading File!',6301:'Not an image!',6302:'No file has been selected!',6303:'File upload has been canceled!',6304:'User Group Hash is needed for file sharing!',// Cache Database Errors
21
22
  6600:'Your Environment doesn\'t have Databse compatibility',6601:'Database is not defined! (missing db)',6602:'Database Error',// Map Errors
22
23
  6700:'You should Enter a Center Location like {lat: " ", lng: " "}'},getUserInfoRetry=5,getUserInfoRetryCount=0,chatFullStateObject={},httpRequestObject={},connectionCheckTimeout=params.connectionCheckTimeout,connectionCheckTimeoutThreshold=params.connectionCheckTimeoutThreshold,httpRequestTimeout=params.httpRequestTimeout>=0?params.httpRequestTimeout:0,asyncRequestTimeout=typeof params.asyncRequestTimeout==='number'&&params.asyncRequestTimeout>=0?params.asyncRequestTimeout:0,//callRequestTimeout = (typeof params.callRequestTimeout === 'number' && params.callRequestTimeout >= 0) ? params.callRequestTimeout : 10000,
23
- httpUploadRequestTimeout=params.httpUploadRequestTimeout>=0?params.httpUploadRequestTimeout:0,actualTimingLog=params.asyncLogging.actualTiming&&typeof params.asyncLogging.actualTiming==='boolean'?params.asyncLogging.actualTiming:false,consoleLogging=params.asyncLogging.consoleLogging&&typeof params.asyncLogging.consoleLogging==='boolean'?params.asyncLogging.consoleLogging:false,minIntegerValue=Number.MAX_SAFE_INTEGER*-1,maxIntegerValue=Number.MAX_SAFE_INTEGER,chatSendQueue=[],chatWaitQueue=[],chatUploadQueue=[],fullResponseObject=params.fullResponseObject||false;if(!consoleLogging){/**
24
+ httpUploadRequestTimeout=params.httpUploadRequestTimeout>=0?params.httpUploadRequestTimeout:0,actualTimingLog=params.asyncLogging.actualTiming&&typeof params.asyncLogging.actualTiming==='boolean'?params.asyncLogging.actualTiming:false,consoleLogging=params.asyncLogging.consoleLogging&&typeof params.asyncLogging.consoleLogging==='boolean'?params.asyncLogging.consoleLogging:false,minIntegerValue=Number.MAX_SAFE_INTEGER*-1,maxIntegerValue=Number.MAX_SAFE_INTEGER,chatSendQueue=[],chatWaitQueue=[],chatUploadQueue=[],fullResponseObject=params.fullResponseObject||false,//,
25
+ // externalLogging = {
26
+ // enable: ( params.externalLogging && params.externalLogging.enable !== undefined ? params.externalLogging.enable : true),
27
+ // url: (params.externalLogging && params.externalLogging.url !== undefined ? params.externalLogging.url : null),
28
+ // username: (params.externalLogging && params.externalLogging.username !== undefined ? params.externalLogging.username : null),
29
+ // password: (params.externalLogging && params.externalLogging.password !== undefined ? params.externalLogging.password : null)
30
+ // };
31
+ isAsyncReconnecting=false;if(!consoleLogging){/**
24
32
  * Disable kurento-utils logs
25
- */window.Logger={error:function error(){},log:function log(){},debug:function debug(){}};}(0,_events.initEventHandler)(Object.assign(params,{consoleLogging:consoleLogging}));var/*chatEvents = new ChatEvents(Object.assign(params, {
33
+ */window.Logger={error:function error(){},log:function log(){},debug:function debug(){}};}// if(externalLogging.enabled) {
34
+ // initExternalLogger(externalLogging);
35
+ // }
36
+ (0,_events.initEventHandler)(Object.assign(params,{consoleLogging:consoleLogging}));var/*chatEvents = new ChatEvents(Object.assign(params, {
26
37
 
27
38
  //Utility: Utility,
28
39
  consoleLogging,
@@ -41,15 +52,16 @@ consoleLogging:consoleLogging,chatEvents:_events.chatEvents,asyncClient:asyncCli
41
52
  *
42
53
  * @return {undefined}
43
54
  * @return {undefined}
44
- */initAsync=function initAsync(){var asyncGetReadyTime=new Date().getTime();asyncClient=new _podasyncWsOnly["default"]({protocol:protocol,queueHost:queueHost,queuePort:queuePort,queueUsername:queueUsername,queuePassword:queuePassword,queueReceive:queueReceive,queueSend:queueSend,queueConnectionTimeout:queueConnectionTimeout,socketAddress:socketAddress,serverName:serverName,deviceId:deviceId,wsConnectionWaitTime:wsConnectionWaitTime,connectionRetryInterval:connectionRetryInterval,connectionCheckTimeout:connectionCheckTimeout,connectionCheckTimeoutThreshold:connectionCheckTimeoutThreshold,messageTtl:messageTtl,reconnectOnClose:reconnectOnClose,asyncLogging:asyncLogging,logLevel:consoleLogging?3:1});callModule.asyncInitialized(asyncClient);chatMessaging.asyncInitialized(asyncClient);asyncClient.on('asyncReady',function(){if(actualTimingLog){_utility["default"].chatStepLogger('Async Connection ',new Date().getTime()-asyncGetReadyTime);}peerId=asyncClient.getPeerId();if(!chatMessaging.userInfo){var getUserInfoTime=new Date().getTime();getUserInfo(function(userInfoResult){if(actualTimingLog){_utility["default"].chatStepLogger('Get User Info ',new Date().getTime()-getUserInfoTime);}if(!userInfoResult.hasError){chatMessaging.userInfo=userInfoResult.result.user;getAllThreads({summary:true,cache:false});/**
55
+ */initAsync=function initAsync(){var asyncGetReadyTime=new Date().getTime();asyncClient=new _podasyncWsOnly["default"]({protocol:protocol,queueHost:queueHost,queuePort:queuePort,queueUsername:queueUsername,queuePassword:queuePassword,queueReceive:queueReceive,queueSend:queueSend,queueConnectionTimeout:queueConnectionTimeout,socketAddress:socketAddress,serverName:serverName,deviceId:deviceId,wsConnectionWaitTime:wsConnectionWaitTime,connectionRetryInterval:connectionRetryInterval,connectionCheckTimeout:connectionCheckTimeout,connectionCheckTimeoutThreshold:connectionCheckTimeoutThreshold,messageTtl:messageTtl,reconnectOnClose:reconnectOnClose,asyncLogging:asyncLogging,logLevel:consoleLogging?3:1});callModule.asyncInitialized(asyncClient);chatMessaging.asyncInitialized(asyncClient);asyncClient.on('asyncReady',function(){chatMessaging.startChatPing();if(actualTimingLog){_utility["default"].chatStepLogger('Async Connection ',new Date().getTime()-asyncGetReadyTime);}peerId=asyncClient.getPeerId();if(!chatMessaging.userInfo){var getUserInfoTime=new Date().getTime();getUserInfo(function(userInfoResult){if(actualTimingLog){_utility["default"].chatStepLogger('Get User Info ',new Date().getTime()-getUserInfoTime);}if(!userInfoResult.hasError){chatMessaging.userInfo=userInfoResult.result.user;getAllThreads({summary:true,cache:false});/**
45
56
  * Check if user has KeyId stored in their cache or not?
46
57
  */if(canUseCache){if(db){db.users.where('id').equals(parseInt(chatMessaging.userInfo.id)).toArray().then(function(users){if(users.length>0&&typeof users[0].keyId!='undefined'){var user=users[0];getEncryptionKey({keyId:user.keyId},function(result){if(!result.hasError){cacheSecret=result.secretKey;chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}else{if(result.message!==''){try{var response=JSON.parse(result.message);if(response.error==='invalid_param'){generateEncryptionKey({keyAlgorithm:'AES',keySize:256},function(){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();});}}catch(e){consoleLogging&&console.log(e);}}}});}else{generateEncryptionKey({keyAlgorithm:'AES',keySize:256},function(){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();});}})["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}else{chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}}});}else if(chatMessaging.userInfo.id>0){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}deliveryInterval&&clearInterval(deliveryInterval);deliveryInterval=setInterval(function(){if(Object.keys(messagesDelivery).length){messagesDeliveryQueueHandler();}},deliveryIntervalPitch);seenInterval&&clearInterval(seenInterval);seenInterval=setInterval(function(){if(Object.keys(messagesSeen).length){messagesSeenQueueHandler();}},seenIntervalPitch);//shouldReconnectCall();
47
- });asyncClient.on('stateChange',function(state){_events.chatEvents.fireEvent('chatState',state);chatFullStateObject=state;switch(state.socketState){case 1:// CONNECTED
58
+ });asyncClient.on('stateChange',function(state){_events.chatEvents.fireEvent('chatState',state);chatFullStateObject=state;if(![0,2].includes(state.socketState)){isAsyncReconnecting=false;}else if([0,2].includes(state.socketState)){isAsyncReconnecting=true;}switch(state.socketState){case 1:// CONNECTED
48
59
  if(state.deviceRegister&&state.serverRegister){chatMessaging.chatState=true;chatMessaging.ping();}break;case 0:// CONNECTING
49
60
  case 2:// CLOSING
50
61
  case 3:// CLOSED
51
62
  chatMessaging.chatState=false;// TODO: Check if this is OK or not?!
52
- chatMessaging.sendPingTimeout&&clearTimeout(chatMessaging.sendPingTimeout);break;}});asyncClient.on('connect',function(newPeerId){asyncGetReadyTime=new Date().getTime();peerId=newPeerId;_events.chatEvents.fireEvent('connect');chatMessaging.ping();});asyncClient.on('disconnect',function(event){oldPeerId=peerId;peerId=undefined;_events.chatEvents.fireEvent('disconnect',event);_events.chatEvents.fireEvent('callEvents',{type:'CALL_ERROR',code:7000,message:'Call Socket is closed!',error:event});});asyncClient.on('reconnect',function(newPeerId){peerId=newPeerId;_events.chatEvents.fireEvent('reconnect');});asyncClient.on('message',function(params,ack){receivedAsyncMessageHandler(params);ack&&ack();});asyncClient.on('error',function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error.errorEvent});});},/**
63
+ //chatMessaging.sendPingTimeout && clearTimeout(chatMessaging.sendPingTimeout);
64
+ break;}});asyncClient.on('connect',function(newPeerId){asyncGetReadyTime=new Date().getTime();peerId=newPeerId;_events.chatEvents.fireEvent('connect');chatMessaging.ping();});asyncClient.on('disconnect',function(event){oldPeerId=peerId;peerId=undefined;_events.chatEvents.fireEvent('disconnect',event);_events.chatEvents.fireEvent('callEvents',{type:'CALL_ERROR',code:7000,message:'Call Socket is closed!',error:event});});asyncClient.on('reconnect',function(newPeerId){peerId=newPeerId;_events.chatEvents.fireEvent('reconnect');});asyncClient.on('message',function(params,ack){receivedAsyncMessageHandler(params);ack&&ack();});asyncClient.on('error',function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error.errorEvent});});},/**
53
65
  * Get Device Id With Token
54
66
  *
55
67
  * If ssoGrantDevicesAddress set as TRUE, chat agent gets Device ID
@@ -2117,7 +2129,7 @@ content:{},pushMsgType:3,token:token};if(params){if(typeof params.contactType===
2117
2129
  content:{},pushMsgType:3,token:token};if(params){if(typeof params.contactType==='string'&&params.contactType.length){sendData.content.contactType=params.contactType;}else{_events.chatEvents.fireEvent('error',{code:999,message:'Enter a ContactType to get all Blocked Assistants!'});return;}sendData.content.count=!!params.count?+params.count:50;sendData.content.offset=!!params.offset?+params.offset:0;}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to get Blocked Assistants list!'});return;}return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.getAssistantsHistory=function(params,callback){var sendData={chatMessageVOType:_constants.chatMessageVOTypes.ASSISTANT_HISTORY,typeCode:generalTypeCode,//params.typeCode,
2118
2130
  content:{offset:+params.offset>0?+params.offset:0,count:+params.count>0?+params.count:config.getHistoryCount}};if(+params.fromTime>0&&+params.fromTime<9999999999999){sendData.content.fromTime=+params.fromTime;}if(+params.toTime>0&&+params.toTime<9999999999999){sendData.content.toTime=+params.toTime;}if(!!params.actionType&&_constants.assistantActionTypes.hasOwnProperty(params.actionType.toUpperCase())){sendData.content.actionType=_constants.assistantActionTypes[params.actionType.toUpperCase()];}return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode};if(!returnData.hasError){var messageContent=result.result,messageLength=messageContent.length,resultData={participants:formatDataToMakeAssistantHistoryList(messageContent),contentCount:result.contentCount,hasNext:sendData.content.offset+sendData.content.count<result.contentCount&&messageLength>0,nextOffset:sendData.content.offset*1+messageLength*1};returnData.result=resultData;}callback&&callback(returnData);callback=undefined;}});};publicized.mapReverse=mapReverse;publicized.mapSearch=mapSearch;publicized.mapRouting=mapRouting;publicized.mapStaticImage=mapStaticImage;publicized.setAdmin=function(params,callback){setRoleToUser(params,callback);};publicized.removeAdmin=function(params,callback){removeRoleFromUser(params,callback);};publicized.setAuditor=function(params,callback){setRoleToUser(params,callback);};publicized.removeAuditor=function(params,callback){removeRoleFromUser(params,callback);};function requestExportChat(stackArr,wantedCount,stepCount,offset,sendData){sendData.content.offset=offset;sendData.content.count=stepCount;return new Promise(function(resolve,reject){return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode};if(!returnData.hasError){/* for(var i in result.result) {
2119
2131
  stackArr.push(result.result[i]);
2120
- } */stackArr=[].concat((0,_toConsumableArray2["default"])(stackArr),(0,_toConsumableArray2["default"])(result.result));consoleLogging&&console.log("[SDK][exportChat] a step passed...");// wantedCount = wantedCount > result.contentCount ? result.contentCount : wantedCount;
2132
+ } */stackArr.push.apply(stackArr,(0,_toConsumableArray2["default"])(result.result));consoleLogging&&console.log("[SDK][exportChat] a step passed...");// wantedCount = wantedCount > result.contentCount ? result.contentCount : wantedCount;
2121
2133
  if(result.result.length<stepCount){wantedCount=stackArr.length;}setTimeout(function(){_events.chatEvents.fireEvent('threadEvents',{type:'EXPORT_CHAT',subType:'IN_PROGRESS',threadId:sendData.subjectId,percent:Math.floor(stackArr.length/wantedCount*100)});if(stackArr.length<wantedCount){stepCount=wantedCount-stackArr.length<stepCount?wantedCount-stackArr.length:stepCount;//setTimeout(function () {
2122
2134
  resolve(requestExportChat(stackArr,wantedCount,stepCount,stackArr.length,sendData));//}, 1000)
2123
2135
  }else{resolve(stackArr);}});}else{if(result.errorCode!==21){consoleLogging&&console.log("[SDK][exportChat] Problem in one step... . Rerunning the request.",wantedCount,stepCount,stackArr.length,sendData,result);setTimeout(function(){resolve(requestExportChat(stackArr,wantedCount,stepCount,stackArr.length,sendData));},2000);}else{reject(result);}}}});});}publicized.exportChat=function(params,callback){var stackArr=[],wantedCount=10000,stepCount=500,offset=0;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.EXPORT_CHAT,typeCode:generalTypeCode,//params.typeCode,
@@ -2154,7 +2166,7 @@ content:{count:count,offset:offset}};if(params){if((0,_typeof2["default"])(param
2154
2166
  * + locationPingRequest {object}
2155
2167
  * + content {list} A map of { location: string, locationId: int }
2156
2168
  */var locationPingData={chatMessageVOType:_constants.chatMessageVOTypes.LOCATION_PING,typeCode:generalTypeCode,//params.typeCode,
2157
- pushMsgType:3,token:token},content={};if(params){if(typeof params.location==='string'&&locationPingTypes.hasOwnProperty(params.location.toUpperCase())){content.location=locationPingTypes[params.location.toUpperCase()];if(params.location.toUpperCase()==='THREAD'){if(typeof params.threadId==='number'&&params.threadId>0){content.locationId=+params.threadId;}else{_events.chatEvents.fireEvent('error',{code:999,message:'You set the location to be a thread, you have to send a valid ThreadId'});return;}}}else{_events.chatEvents.fireEvent('error',{code:999,message:'Send a valid location type (CHAT / THREAD / CONTACTS)'});return;}locationPingData.content=JSON.stringify(content);}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to LocationPing!'});return;}return chatMessaging.sendMessage(locationPingData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.clearChatServerCaches=clearChatServerCaches;publicized.deleteCacheDatabases=deleteCacheDatabases;publicized.clearCacheDatabasesOfUser=clearCacheDatabasesOfUser;publicized.getChatState=function(){return chatFullStateObject;};publicized.reconnect=function(){asyncClient.reconnectSocket();};publicized.setToken=function(newToken){if(typeof newToken!=='undefined'){token=newToken;callModule.updateToken(token);chatMessaging.updateToken(token);_events.chatEvents.updateToken(token);}};publicized.generateUUID=_utility["default"].generateUUID;publicized.logout=function(){clearChatServerCaches();_events.chatEvents.clearEventCallbacks();chatMessaging.messagesCallbacks={};chatMessaging.sendMessageCallbacks={};chatMessaging.threadCallbacks={};asyncClient.logout();};publicized.inviteeIdTypes=_constants.inviteeVOidTypes;/**
2169
+ pushMsgType:3,token:token},content={};if(params){if(typeof params.location==='string'&&locationPingTypes.hasOwnProperty(params.location.toUpperCase())){content.location=locationPingTypes[params.location.toUpperCase()];if(params.location.toUpperCase()==='THREAD'){if(typeof params.threadId==='number'&&params.threadId>0){content.locationId=+params.threadId;}else{_events.chatEvents.fireEvent('error',{code:999,message:'You set the location to be a thread, you have to send a valid ThreadId'});return;}}}else{_events.chatEvents.fireEvent('error',{code:999,message:'Send a valid location type (CHAT / THREAD / CONTACTS)'});return;}locationPingData.content=JSON.stringify(content);}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to LocationPing!'});return;}return chatMessaging.sendMessage(locationPingData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.clearChatServerCaches=clearChatServerCaches;publicized.deleteCacheDatabases=deleteCacheDatabases;publicized.clearCacheDatabasesOfUser=clearCacheDatabasesOfUser;publicized.getChatState=function(){return chatFullStateObject;};publicized.reconnect=function(callback){if(!isAsyncReconnecting){asyncClient.reconnectSocket();isAsyncReconnecting=true;callback&&callback({hasError:false,message:"Reconnecting..."});}else{callback&&callback({hasError:true,message:"Socket state is not suitable for reconnecting."});consoleLogging&&console.log("[SDK] Socket state is not suitable for reconnecting.");}};publicized.setToken=function(newToken){if(typeof newToken!=='undefined'){token=newToken;callModule.updateToken(token);chatMessaging.updateToken(token);_events.chatEvents.updateToken(token);}};publicized.generateUUID=_utility["default"].generateUUID;publicized.logout=function(){clearChatServerCaches();_events.chatEvents.clearEventCallbacks();chatMessaging.messagesCallbacks={};chatMessaging.sendMessageCallbacks={};chatMessaging.threadCallbacks={};chatMessaging.stopChatPing();asyncClient.logout();};publicized.inviteeIdTypes=_constants.inviteeVOidTypes;/**
2158
2170
  * Check a turn server availability
2159
2171
  *
2160
2172
  * @param turnIp
@@ -10,6 +10,8 @@ exports.initEventHandler = initEventHandler;
10
10
 
11
11
  var _utility = _interopRequireDefault(require("./utility/utility"));
12
12
 
13
+ var _logger = require("./lib/logger");
14
+
13
15
  // import Sentry from "./lib/sentry.js"
14
16
  var chatEvents = null;
15
17
  exports.chatEvents = chatEvents;
@@ -76,8 +78,8 @@ function ChatEvents(params) {
76
78
  if (eventName === "error" || eventName === "callEvents" && param.type === "CALL_ERROR") {
77
79
  try {
78
80
  throw new PodChatErrorException(param);
79
- } catch (err) {
80
- console.error(err);
81
+ } catch (err) {//externalLogger(err);
82
+ // console.error(err);
81
83
  }
82
84
  }
83
85
 
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.externalLogger = externalLogger;
7
+ exports.init = init;
8
+ var config = {
9
+ url: 'http://10.56.34.61:8080/twitter/tweet/1',
10
+ username: 'chat',
11
+ password: 'chat123'
12
+ };
13
+
14
+ function externalLogger(message) {
15
+ var msg;
16
+ if (typeof message !== "string") msg = JSON.stringify(message);
17
+ fetch(config.url, {
18
+ method: 'POST',
19
+ headers: {
20
+ 'Authorization': 'Basic ' + btoa("".concat(config.username, ":").concat(config.password)),
21
+ 'Content-Type': 'application/x-www-form-urlencoded'
22
+ },
23
+ body: new URLSearchParams({
24
+ 'js-browser': msg
25
+ })
26
+ })["catch"](function (error) {
27
+ console.error("[SDK][ExternalLogger] Error while putting log, details: ", error);
28
+ });
29
+ }
30
+
31
+ function init(externalLogging) {
32
+ if (externalLogging.url) config.url = externalLogging.url;
33
+ if (externalLogging.username) config.username = externalLogging.username;
34
+ if (externalLogging.password) config.password = externalLogging.password;
35
+ }
@@ -40,10 +40,25 @@ function ChatMessaging(params) {
40
40
  this.threadCallbacks = {};
41
41
  this.sendMessageCallbacks = {};
42
42
  this.messagesCallbacks = {};
43
- this.asyncRequestTimeouts = {};
44
- this.sendPingTimeout = null;
43
+ this.asyncRequestTimeouts = {}; // this.sendPingTimeout = null;
44
+
45
45
  this.chatState = false;
46
46
  this.userInfo = null;
47
+ /**
48
+ * sendPingTimeout removed,
49
+ *
50
+ * TODO: remove the interval when socket statet changes to closed
51
+ */
52
+
53
+ this.startChatPing = function () {
54
+ chatPingMessageInterval = setInterval(function () {
55
+ currentModuleInstance.ping();
56
+ }, 20000); //TODO: chatPingMessageInterval
57
+ };
58
+
59
+ this.stopChatPing = function () {
60
+ clearInterval(chatPingMessageInterval);
61
+ };
47
62
 
48
63
  this.asyncInitialized = function (client) {
49
64
  asyncClient = client;
@@ -280,11 +295,12 @@ function ChatMessaging(params) {
280
295
  }
281
296
  }, asyncRequestTimeout);
282
297
  }
298
+ /* currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
299
+ currentModuleInstance.sendPingTimeout = setTimeout(function () {
300
+ currentModuleInstance.ping();
301
+ }, chatPingMessageInterval); */
302
+
283
303
 
284
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
285
- currentModuleInstance.sendPingTimeout = setTimeout(function () {
286
- currentModuleInstance.ping();
287
- }, chatPingMessageInterval);
288
304
  recursiveCallback && recursiveCallback();
289
305
  return {
290
306
  uniqueId: uniqueId,
@@ -316,9 +332,11 @@ function ChatMessaging(params) {
316
332
  chatMessageVOType: _constants.chatMessageVOTypes.PING,
317
333
  pushMsgType: 3
318
334
  });
319
- } else {
320
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
321
335
  }
336
+ /*else {
337
+ currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
338
+ }*/
339
+
322
340
  };
323
341
  } // if (typeof module !== 'undefined' && typeof module.exports != 'undefined') {
324
342
  // module.exports = ChatMessaging;
@@ -39199,15 +39199,15 @@ module.exports = function (thing, encoding, name) {
39199
39199
  isDeviceRegister = false;
39200
39200
  oldPeerId = peerId;
39201
39201
 
39202
- socketState = socketStateType.CLOSED;
39203
-
39204
- fireEvent('stateChange', {
39205
- socketState: socketState,
39206
- timeUntilReconnect: 0,
39207
- deviceRegister: isDeviceRegister,
39208
- serverRegister: isServerRegister,
39209
- peerId: peerId
39210
- });
39202
+ // socketState = socketStateType.CLOSED;
39203
+ //
39204
+ // fireEvent('stateChange', {
39205
+ // socketState: socketState,
39206
+ // timeUntilReconnect: 0,
39207
+ // deviceRegister: isDeviceRegister,
39208
+ // serverRegister: isServerRegister,
39209
+ // peerId: peerId
39210
+ // });
39211
39211
 
39212
39212
  fireEvent('disconnect', event);
39213
39213
 
@@ -39237,7 +39237,7 @@ module.exports = function (thing, encoding, name) {
39237
39237
  }, 1000 * retryStep);
39238
39238
 
39239
39239
  if (retryStep < 64) {
39240
- retryStep *= 2;
39240
+ retryStep += 8;
39241
39241
  }
39242
39242
 
39243
39243
  // socketReconnectCheck && clearTimeout(socketReconnectCheck);
@@ -39775,7 +39775,8 @@ module.exports = function (thing, encoding, name) {
39775
39775
  waitForSocketToConnectTimeoutId,
39776
39776
  socketRealTimeStatusInterval,
39777
39777
  logLevel = params.logLevel,
39778
- pingController = new PingManager({waitTime: connectionCheckTimeout});
39778
+ pingController = new PingManager({waitTime: connectionCheckTimeout}),
39779
+ socketWatchTimeout;
39779
39780
 
39780
39781
 
39781
39782
  function PingManager(params) {
@@ -39834,17 +39835,26 @@ module.exports = function (thing, encoding, name) {
39834
39835
 
39835
39836
  socket = new WebSocket(address, []);
39836
39837
 
39837
- socketRealTimeStatusInterval && clearInterval(socketRealTimeStatusInterval);
39838
- socketRealTimeStatusInterval = setInterval(function() {
39839
- switch (socket.readyState) {
39840
- case 2:
39841
- onCloseHandler(null);
39842
- break;
39843
- case 3:
39844
- socketRealTimeStatusInterval && clearInterval(socketRealTimeStatusInterval);
39845
- break;
39846
- }
39847
- }, 5000);
39838
+ // socketRealTimeStatusInterval && clearInterval(socketRealTimeStatusInterval);
39839
+ // socketRealTimeStatusInterval = setInterval(function() {
39840
+ // switch (socket.readyState) {
39841
+ // case 2:
39842
+ // onCloseHandler(null);
39843
+ // socketRealTimeStatusInterval && clearInterval(socketRealTimeStatusInterval);
39844
+ // break;
39845
+ // case 3:
39846
+ //
39847
+ // break;
39848
+ // }
39849
+ // }, 5000);
39850
+
39851
+ // socketWatchTimeout && clearTimeout(socketWatchTimeout);
39852
+ // socketWatchTimeout = setTimeout(() => {
39853
+ // if(socket.readyState !== 1) {
39854
+ // onCloseHandler(null);
39855
+ // socket.close();
39856
+ // }
39857
+ // }, 5000);
39848
39858
 
39849
39859
  socket.onopen = function(event) {
39850
39860
  waitForSocketToConnect(function() {
@@ -45890,8 +45900,9 @@ invitees.forEach(function(item){item.idType=_constants.inviteeVOidTypes[item.idT
45890
45900
  }
45891
45901
  }*/return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};this.deviceManager=_deviceManager["default"];this.resetCallStream=function(_ref6,callback){var userId=_ref6.userId,_ref6$streamType=_ref6.streamType,streamType=_ref6$streamType===void 0?'audio':_ref6$streamType;return new Promise(function(resolve,reject){if(userId==='screenShare'||streamType==='video'){if(callUsers[userId]){callUsers[userId].videoTopicManager.recreateTopic().then(function(){resolve();callback&&callback({hasError:false});})["catch"](function(){reject();callback&&callback({hasError:true});});}}else{callUsers[userId].audioTopicManager.recreateTopic().then(function(){resolve();callback&&callback({hasError:false});})["catch"](function(){reject();callback&&callback({hasError:true});});}});};this.callStop=callStop;this.restartMedia=restartMedia;}var _default=ChatCall;exports["default"]=_default;
45892
45902
 
45893
- },{"./events.module.js":268,"./lib/call/deviceManager.js":269,"./lib/constants":270,"./lib/errorHandler":271,"./utility/utility":273,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"kurento-utils":190}],267:[function(require,module,exports){
45894
- 'use strict';var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _podasyncWsOnly=_interopRequireDefault(require("podasync-ws-only"));var _utility=_interopRequireDefault(require("./utility/utility"));var _dexie=_interopRequireDefault(require("dexie"));var _call=_interopRequireDefault(require("./call.module"));var _events=_interopRequireWildcard(require("./events.module"));var _messaging=_interopRequireDefault(require("./messaging.module"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof3(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}function Chat(params){/*******************************************************
45903
+ },{"./events.module.js":268,"./lib/call/deviceManager.js":269,"./lib/constants":270,"./lib/errorHandler":271,"./utility/utility":274,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"kurento-utils":190}],267:[function(require,module,exports){
45904
+ 'use strict';var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _podasyncWsOnly=_interopRequireDefault(require("podasync-ws-only"));var _utility=_interopRequireDefault(require("./utility/utility"));var _dexie=_interopRequireDefault(require("dexie"));var _call=_interopRequireDefault(require("./call.module"));var _events=_interopRequireWildcard(require("./events.module"));var _messaging=_interopRequireDefault(require("./messaging.module"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof3(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}// import {externalLogger as externalLog, init as initExternalLogger} from "./lib/logger";
45905
+ function Chat(params){/*******************************************************
45895
45906
  * P R I V A T E V A R I A B L E S *
45896
45907
  *******************************************************/var asyncClient,peerId,oldPeerId,token=params.token,generalTypeCode=params.typeCode||'default',mapApiKey=params.mapApiKey||'8b77db18704aa646ee5aaea13e7370f4f88b9e8c',deviceId,productEnv=typeof navigator!='undefined'?navigator.product:'undefined',db,queueDb,forceWaitQueueInMemory=params.forceWaitQueueInMemory&&typeof params.forceWaitQueueInMemory==='boolean'?params.forceWaitQueueInMemory:false,hasCache=productEnv!=='ReactNative'&&typeof _dexie["default"]!='undefined',cacheInMemory=forceWaitQueueInMemory?true:!hasCache,enableCache=params.enableCache&&typeof params.enableCache==='boolean'?params.enableCache:false,canUseCache=hasCache&&enableCache,isCacheReady=false,cacheDeletingInProgress=false,cacheExpireTime=params.cacheExpireTime||2*24*60*60*1000,cacheSecret='VjaaS9YxNdVVAd3cAsRPcU5FyxRcyyV6tG6bFGjjK5RV8JJjLrXNbS5zZxnqUT6Y',cacheSyncWorker,grantDeviceIdFromSSO=params.grantDeviceIdFromSSO&&typeof params.grantDeviceIdFromSSO==='boolean'?params.grantDeviceIdFromSSO:false,messagesDelivery={},messagesSeen={},deliveryInterval,deliveryIntervalPitch=params.deliveryIntervalPitch||2000,seenInterval,seenIntervalPitch=params.seenIntervalPitch||2000,getImageFromLinkObjects={},locationPingTypes={'CHAT':1,'THREAD':2,'CONTACTS':3},systemMessageIntervalPitch=params.systemMessageIntervalPitch||1000,isTypingInterval,protocol=params.protocol||'websocket',queueHost=params.queueHost,queuePort=params.queuePort,queueUsername=params.queueUsername,queuePassword=params.queuePassword,queueReceive=params.queueReceive,queueSend=params.queueSend,queueConnectionTimeout=params.queueConnectionTimeout,socketAddress=params.socketAddress,serverName=params.serverName||'',wsConnectionWaitTime=params.wsConnectionWaitTime,connectionRetryInterval=params.connectionRetryInterval,msgPriority=params.msgPriority||1,messageTtl=params.messageTtl||10000,reconnectOnClose=params.reconnectOnClose,asyncLogging=params.asyncLogging,chatPingMessageInterval=20000,getUserInfoTimeout,config={getHistoryCount:50},SERVICE_ADDRESSES={SSO_ADDRESS:params.ssoHost||'https://accounts.pod.ir',PLATFORM_ADDRESS:params.platformHost||'https://api.pod.ir/srv/core',FILESERVER_ADDRESS:params.fileServer||'https://core.pod.ir',PODSPACE_FILESERVER_ADDRESS:params.podSpaceFileServer||'https://podspace.pod.ir',MAP_ADDRESS:params.mapServer||'https://api.neshan.org/v2'},SERVICES_PATH={// Grant Devices
45897
45908
  SSO_DEVICES:'/oauth2/grants/devices',SSO_GENERATE_KEY:'/handshake/users/',SSO_GET_KEY:'/handshake/keys/',// Contacts
@@ -45913,9 +45924,19 @@ REVERSE:'/reverse',SEARCH:'/search',ROUTING:'/routing',STATIC_IMAGE:'/static'},C
45913
45924
  6300:'Error in uploading File!',6301:'Not an image!',6302:'No file has been selected!',6303:'File upload has been canceled!',6304:'User Group Hash is needed for file sharing!',// Cache Database Errors
45914
45925
  6600:'Your Environment doesn\'t have Databse compatibility',6601:'Database is not defined! (missing db)',6602:'Database Error',// Map Errors
45915
45926
  6700:'You should Enter a Center Location like {lat: " ", lng: " "}'},getUserInfoRetry=5,getUserInfoRetryCount=0,chatFullStateObject={},httpRequestObject={},connectionCheckTimeout=params.connectionCheckTimeout,connectionCheckTimeoutThreshold=params.connectionCheckTimeoutThreshold,httpRequestTimeout=params.httpRequestTimeout>=0?params.httpRequestTimeout:0,asyncRequestTimeout=typeof params.asyncRequestTimeout==='number'&&params.asyncRequestTimeout>=0?params.asyncRequestTimeout:0,//callRequestTimeout = (typeof params.callRequestTimeout === 'number' && params.callRequestTimeout >= 0) ? params.callRequestTimeout : 10000,
45916
- httpUploadRequestTimeout=params.httpUploadRequestTimeout>=0?params.httpUploadRequestTimeout:0,actualTimingLog=params.asyncLogging.actualTiming&&typeof params.asyncLogging.actualTiming==='boolean'?params.asyncLogging.actualTiming:false,consoleLogging=params.asyncLogging.consoleLogging&&typeof params.asyncLogging.consoleLogging==='boolean'?params.asyncLogging.consoleLogging:false,minIntegerValue=Number.MAX_SAFE_INTEGER*-1,maxIntegerValue=Number.MAX_SAFE_INTEGER,chatSendQueue=[],chatWaitQueue=[],chatUploadQueue=[],fullResponseObject=params.fullResponseObject||false;if(!consoleLogging){/**
45927
+ httpUploadRequestTimeout=params.httpUploadRequestTimeout>=0?params.httpUploadRequestTimeout:0,actualTimingLog=params.asyncLogging.actualTiming&&typeof params.asyncLogging.actualTiming==='boolean'?params.asyncLogging.actualTiming:false,consoleLogging=params.asyncLogging.consoleLogging&&typeof params.asyncLogging.consoleLogging==='boolean'?params.asyncLogging.consoleLogging:false,minIntegerValue=Number.MAX_SAFE_INTEGER*-1,maxIntegerValue=Number.MAX_SAFE_INTEGER,chatSendQueue=[],chatWaitQueue=[],chatUploadQueue=[],fullResponseObject=params.fullResponseObject||false,//,
45928
+ // externalLogging = {
45929
+ // enable: ( params.externalLogging && params.externalLogging.enable !== undefined ? params.externalLogging.enable : true),
45930
+ // url: (params.externalLogging && params.externalLogging.url !== undefined ? params.externalLogging.url : null),
45931
+ // username: (params.externalLogging && params.externalLogging.username !== undefined ? params.externalLogging.username : null),
45932
+ // password: (params.externalLogging && params.externalLogging.password !== undefined ? params.externalLogging.password : null)
45933
+ // };
45934
+ isAsyncReconnecting=false;if(!consoleLogging){/**
45917
45935
  * Disable kurento-utils logs
45918
- */window.Logger={error:function error(){},log:function log(){},debug:function debug(){}};}(0,_events.initEventHandler)(Object.assign(params,{consoleLogging:consoleLogging}));var/*chatEvents = new ChatEvents(Object.assign(params, {
45936
+ */window.Logger={error:function error(){},log:function log(){},debug:function debug(){}};}// if(externalLogging.enabled) {
45937
+ // initExternalLogger(externalLogging);
45938
+ // }
45939
+ (0,_events.initEventHandler)(Object.assign(params,{consoleLogging:consoleLogging}));var/*chatEvents = new ChatEvents(Object.assign(params, {
45919
45940
 
45920
45941
  //Utility: Utility,
45921
45942
  consoleLogging,
@@ -45934,15 +45955,16 @@ consoleLogging:consoleLogging,chatEvents:_events.chatEvents,asyncClient:asyncCli
45934
45955
  *
45935
45956
  * @return {undefined}
45936
45957
  * @return {undefined}
45937
- */initAsync=function initAsync(){var asyncGetReadyTime=new Date().getTime();asyncClient=new _podasyncWsOnly["default"]({protocol:protocol,queueHost:queueHost,queuePort:queuePort,queueUsername:queueUsername,queuePassword:queuePassword,queueReceive:queueReceive,queueSend:queueSend,queueConnectionTimeout:queueConnectionTimeout,socketAddress:socketAddress,serverName:serverName,deviceId:deviceId,wsConnectionWaitTime:wsConnectionWaitTime,connectionRetryInterval:connectionRetryInterval,connectionCheckTimeout:connectionCheckTimeout,connectionCheckTimeoutThreshold:connectionCheckTimeoutThreshold,messageTtl:messageTtl,reconnectOnClose:reconnectOnClose,asyncLogging:asyncLogging,logLevel:consoleLogging?3:1});callModule.asyncInitialized(asyncClient);chatMessaging.asyncInitialized(asyncClient);asyncClient.on('asyncReady',function(){if(actualTimingLog){_utility["default"].chatStepLogger('Async Connection ',new Date().getTime()-asyncGetReadyTime);}peerId=asyncClient.getPeerId();if(!chatMessaging.userInfo){var getUserInfoTime=new Date().getTime();getUserInfo(function(userInfoResult){if(actualTimingLog){_utility["default"].chatStepLogger('Get User Info ',new Date().getTime()-getUserInfoTime);}if(!userInfoResult.hasError){chatMessaging.userInfo=userInfoResult.result.user;getAllThreads({summary:true,cache:false});/**
45958
+ */initAsync=function initAsync(){var asyncGetReadyTime=new Date().getTime();asyncClient=new _podasyncWsOnly["default"]({protocol:protocol,queueHost:queueHost,queuePort:queuePort,queueUsername:queueUsername,queuePassword:queuePassword,queueReceive:queueReceive,queueSend:queueSend,queueConnectionTimeout:queueConnectionTimeout,socketAddress:socketAddress,serverName:serverName,deviceId:deviceId,wsConnectionWaitTime:wsConnectionWaitTime,connectionRetryInterval:connectionRetryInterval,connectionCheckTimeout:connectionCheckTimeout,connectionCheckTimeoutThreshold:connectionCheckTimeoutThreshold,messageTtl:messageTtl,reconnectOnClose:reconnectOnClose,asyncLogging:asyncLogging,logLevel:consoleLogging?3:1});callModule.asyncInitialized(asyncClient);chatMessaging.asyncInitialized(asyncClient);asyncClient.on('asyncReady',function(){chatMessaging.startChatPing();if(actualTimingLog){_utility["default"].chatStepLogger('Async Connection ',new Date().getTime()-asyncGetReadyTime);}peerId=asyncClient.getPeerId();if(!chatMessaging.userInfo){var getUserInfoTime=new Date().getTime();getUserInfo(function(userInfoResult){if(actualTimingLog){_utility["default"].chatStepLogger('Get User Info ',new Date().getTime()-getUserInfoTime);}if(!userInfoResult.hasError){chatMessaging.userInfo=userInfoResult.result.user;getAllThreads({summary:true,cache:false});/**
45938
45959
  * Check if user has KeyId stored in their cache or not?
45939
45960
  */if(canUseCache){if(db){db.users.where('id').equals(parseInt(chatMessaging.userInfo.id)).toArray().then(function(users){if(users.length>0&&typeof users[0].keyId!='undefined'){var user=users[0];getEncryptionKey({keyId:user.keyId},function(result){if(!result.hasError){cacheSecret=result.secretKey;chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}else{if(result.message!==''){try{var response=JSON.parse(result.message);if(response.error==='invalid_param'){generateEncryptionKey({keyAlgorithm:'AES',keySize:256},function(){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();});}}catch(e){consoleLogging&&console.log(e);}}}});}else{generateEncryptionKey({keyAlgorithm:'AES',keySize:256},function(){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();});}})["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}else{chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}}});}else if(chatMessaging.userInfo.id>0){chatMessaging.chatState=true;_events.chatEvents.fireEvent('chatReady');chatSendQueueHandler();}deliveryInterval&&clearInterval(deliveryInterval);deliveryInterval=setInterval(function(){if(Object.keys(messagesDelivery).length){messagesDeliveryQueueHandler();}},deliveryIntervalPitch);seenInterval&&clearInterval(seenInterval);seenInterval=setInterval(function(){if(Object.keys(messagesSeen).length){messagesSeenQueueHandler();}},seenIntervalPitch);//shouldReconnectCall();
45940
- });asyncClient.on('stateChange',function(state){_events.chatEvents.fireEvent('chatState',state);chatFullStateObject=state;switch(state.socketState){case 1:// CONNECTED
45961
+ });asyncClient.on('stateChange',function(state){_events.chatEvents.fireEvent('chatState',state);chatFullStateObject=state;if(![0,2].includes(state.socketState)){isAsyncReconnecting=false;}else if([0,2].includes(state.socketState)){isAsyncReconnecting=true;}switch(state.socketState){case 1:// CONNECTED
45941
45962
  if(state.deviceRegister&&state.serverRegister){chatMessaging.chatState=true;chatMessaging.ping();}break;case 0:// CONNECTING
45942
45963
  case 2:// CLOSING
45943
45964
  case 3:// CLOSED
45944
45965
  chatMessaging.chatState=false;// TODO: Check if this is OK or not?!
45945
- chatMessaging.sendPingTimeout&&clearTimeout(chatMessaging.sendPingTimeout);break;}});asyncClient.on('connect',function(newPeerId){asyncGetReadyTime=new Date().getTime();peerId=newPeerId;_events.chatEvents.fireEvent('connect');chatMessaging.ping();});asyncClient.on('disconnect',function(event){oldPeerId=peerId;peerId=undefined;_events.chatEvents.fireEvent('disconnect',event);_events.chatEvents.fireEvent('callEvents',{type:'CALL_ERROR',code:7000,message:'Call Socket is closed!',error:event});});asyncClient.on('reconnect',function(newPeerId){peerId=newPeerId;_events.chatEvents.fireEvent('reconnect');});asyncClient.on('message',function(params,ack){receivedAsyncMessageHandler(params);ack&&ack();});asyncClient.on('error',function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error.errorEvent});});},/**
45966
+ //chatMessaging.sendPingTimeout && clearTimeout(chatMessaging.sendPingTimeout);
45967
+ break;}});asyncClient.on('connect',function(newPeerId){asyncGetReadyTime=new Date().getTime();peerId=newPeerId;_events.chatEvents.fireEvent('connect');chatMessaging.ping();});asyncClient.on('disconnect',function(event){oldPeerId=peerId;peerId=undefined;_events.chatEvents.fireEvent('disconnect',event);_events.chatEvents.fireEvent('callEvents',{type:'CALL_ERROR',code:7000,message:'Call Socket is closed!',error:event});});asyncClient.on('reconnect',function(newPeerId){peerId=newPeerId;_events.chatEvents.fireEvent('reconnect');});asyncClient.on('message',function(params,ack){receivedAsyncMessageHandler(params);ack&&ack();});asyncClient.on('error',function(error){_events.chatEvents.fireEvent('error',{code:error.errorCode,message:error.errorMessage,error:error.errorEvent});});},/**
45946
45968
  * Get Device Id With Token
45947
45969
  *
45948
45970
  * If ssoGrantDevicesAddress set as TRUE, chat agent gets Device ID
@@ -48010,7 +48032,7 @@ content:{},pushMsgType:3,token:token};if(params){if(typeof params.contactType===
48010
48032
  content:{},pushMsgType:3,token:token};if(params){if(typeof params.contactType==='string'&&params.contactType.length){sendData.content.contactType=params.contactType;}else{_events.chatEvents.fireEvent('error',{code:999,message:'Enter a ContactType to get all Blocked Assistants!'});return;}sendData.content.count=!!params.count?+params.count:50;sendData.content.offset=!!params.offset?+params.offset:0;}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to get Blocked Assistants list!'});return;}return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.getAssistantsHistory=function(params,callback){var sendData={chatMessageVOType:_constants.chatMessageVOTypes.ASSISTANT_HISTORY,typeCode:generalTypeCode,//params.typeCode,
48011
48033
  content:{offset:+params.offset>0?+params.offset:0,count:+params.count>0?+params.count:config.getHistoryCount}};if(+params.fromTime>0&&+params.fromTime<9999999999999){sendData.content.fromTime=+params.fromTime;}if(+params.toTime>0&&+params.toTime<9999999999999){sendData.content.toTime=+params.toTime;}if(!!params.actionType&&_constants.assistantActionTypes.hasOwnProperty(params.actionType.toUpperCase())){sendData.content.actionType=_constants.assistantActionTypes[params.actionType.toUpperCase()];}return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode};if(!returnData.hasError){var messageContent=result.result,messageLength=messageContent.length,resultData={participants:formatDataToMakeAssistantHistoryList(messageContent),contentCount:result.contentCount,hasNext:sendData.content.offset+sendData.content.count<result.contentCount&&messageLength>0,nextOffset:sendData.content.offset*1+messageLength*1};returnData.result=resultData;}callback&&callback(returnData);callback=undefined;}});};publicized.mapReverse=mapReverse;publicized.mapSearch=mapSearch;publicized.mapRouting=mapRouting;publicized.mapStaticImage=mapStaticImage;publicized.setAdmin=function(params,callback){setRoleToUser(params,callback);};publicized.removeAdmin=function(params,callback){removeRoleFromUser(params,callback);};publicized.setAuditor=function(params,callback){setRoleToUser(params,callback);};publicized.removeAuditor=function(params,callback){removeRoleFromUser(params,callback);};function requestExportChat(stackArr,wantedCount,stepCount,offset,sendData){sendData.content.offset=offset;sendData.content.count=stepCount;return new Promise(function(resolve,reject){return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode};if(!returnData.hasError){/* for(var i in result.result) {
48012
48034
  stackArr.push(result.result[i]);
48013
- } */stackArr=[].concat((0,_toConsumableArray2["default"])(stackArr),(0,_toConsumableArray2["default"])(result.result));consoleLogging&&console.log("[SDK][exportChat] a step passed...");// wantedCount = wantedCount > result.contentCount ? result.contentCount : wantedCount;
48035
+ } */stackArr.push.apply(stackArr,(0,_toConsumableArray2["default"])(result.result));consoleLogging&&console.log("[SDK][exportChat] a step passed...");// wantedCount = wantedCount > result.contentCount ? result.contentCount : wantedCount;
48014
48036
  if(result.result.length<stepCount){wantedCount=stackArr.length;}setTimeout(function(){_events.chatEvents.fireEvent('threadEvents',{type:'EXPORT_CHAT',subType:'IN_PROGRESS',threadId:sendData.subjectId,percent:Math.floor(stackArr.length/wantedCount*100)});if(stackArr.length<wantedCount){stepCount=wantedCount-stackArr.length<stepCount?wantedCount-stackArr.length:stepCount;//setTimeout(function () {
48015
48037
  resolve(requestExportChat(stackArr,wantedCount,stepCount,stackArr.length,sendData));//}, 1000)
48016
48038
  }else{resolve(stackArr);}});}else{if(result.errorCode!==21){consoleLogging&&console.log("[SDK][exportChat] Problem in one step... . Rerunning the request.",wantedCount,stepCount,stackArr.length,sendData,result);setTimeout(function(){resolve(requestExportChat(stackArr,wantedCount,stepCount,stackArr.length,sendData));},2000);}else{reject(result);}}}});});}publicized.exportChat=function(params,callback){var stackArr=[],wantedCount=10000,stepCount=500,offset=0;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.EXPORT_CHAT,typeCode:generalTypeCode,//params.typeCode,
@@ -48047,7 +48069,7 @@ content:{count:count,offset:offset}};if(params){if((0,_typeof2["default"])(param
48047
48069
  * + locationPingRequest {object}
48048
48070
  * + content {list} A map of { location: string, locationId: int }
48049
48071
  */var locationPingData={chatMessageVOType:_constants.chatMessageVOTypes.LOCATION_PING,typeCode:generalTypeCode,//params.typeCode,
48050
- pushMsgType:3,token:token},content={};if(params){if(typeof params.location==='string'&&locationPingTypes.hasOwnProperty(params.location.toUpperCase())){content.location=locationPingTypes[params.location.toUpperCase()];if(params.location.toUpperCase()==='THREAD'){if(typeof params.threadId==='number'&&params.threadId>0){content.locationId=+params.threadId;}else{_events.chatEvents.fireEvent('error',{code:999,message:'You set the location to be a thread, you have to send a valid ThreadId'});return;}}}else{_events.chatEvents.fireEvent('error',{code:999,message:'Send a valid location type (CHAT / THREAD / CONTACTS)'});return;}locationPingData.content=JSON.stringify(content);}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to LocationPing!'});return;}return chatMessaging.sendMessage(locationPingData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.clearChatServerCaches=clearChatServerCaches;publicized.deleteCacheDatabases=deleteCacheDatabases;publicized.clearCacheDatabasesOfUser=clearCacheDatabasesOfUser;publicized.getChatState=function(){return chatFullStateObject;};publicized.reconnect=function(){asyncClient.reconnectSocket();};publicized.setToken=function(newToken){if(typeof newToken!=='undefined'){token=newToken;callModule.updateToken(token);chatMessaging.updateToken(token);_events.chatEvents.updateToken(token);}};publicized.generateUUID=_utility["default"].generateUUID;publicized.logout=function(){clearChatServerCaches();_events.chatEvents.clearEventCallbacks();chatMessaging.messagesCallbacks={};chatMessaging.sendMessageCallbacks={};chatMessaging.threadCallbacks={};asyncClient.logout();};publicized.inviteeIdTypes=_constants.inviteeVOidTypes;/**
48072
+ pushMsgType:3,token:token},content={};if(params){if(typeof params.location==='string'&&locationPingTypes.hasOwnProperty(params.location.toUpperCase())){content.location=locationPingTypes[params.location.toUpperCase()];if(params.location.toUpperCase()==='THREAD'){if(typeof params.threadId==='number'&&params.threadId>0){content.locationId=+params.threadId;}else{_events.chatEvents.fireEvent('error',{code:999,message:'You set the location to be a thread, you have to send a valid ThreadId'});return;}}}else{_events.chatEvents.fireEvent('error',{code:999,message:'Send a valid location type (CHAT / THREAD / CONTACTS)'});return;}locationPingData.content=JSON.stringify(content);}else{_events.chatEvents.fireEvent('error',{code:999,message:'No params have been sent to LocationPing!'});return;}return chatMessaging.sendMessage(locationPingData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.clearChatServerCaches=clearChatServerCaches;publicized.deleteCacheDatabases=deleteCacheDatabases;publicized.clearCacheDatabasesOfUser=clearCacheDatabasesOfUser;publicized.getChatState=function(){return chatFullStateObject;};publicized.reconnect=function(callback){if(!isAsyncReconnecting){asyncClient.reconnectSocket();isAsyncReconnecting=true;callback&&callback({hasError:false,message:"Reconnecting..."});}else{callback&&callback({hasError:true,message:"Socket state is not suitable for reconnecting."});consoleLogging&&console.log("[SDK] Socket state is not suitable for reconnecting.");}};publicized.setToken=function(newToken){if(typeof newToken!=='undefined'){token=newToken;callModule.updateToken(token);chatMessaging.updateToken(token);_events.chatEvents.updateToken(token);}};publicized.generateUUID=_utility["default"].generateUUID;publicized.logout=function(){clearChatServerCaches();_events.chatEvents.clearEventCallbacks();chatMessaging.messagesCallbacks={};chatMessaging.sendMessageCallbacks={};chatMessaging.threadCallbacks={};chatMessaging.stopChatPing();asyncClient.logout();};publicized.inviteeIdTypes=_constants.inviteeVOidTypes;/**
48051
48073
  * Check a turn server availability
48052
48074
  *
48053
48075
  * @param turnIp
@@ -48069,7 +48091,7 @@ token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onRes
48069
48091
  window.PodChat=Chat;}var _default=Chat;// })();
48070
48092
  exports["default"]=_default;
48071
48093
 
48072
- },{"./call.module":266,"./events.module":268,"./lib/call/deviceManager.js":269,"./lib/constants":270,"./messaging.module":272,"./utility/utility":273,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"dexie":125,"podasync-ws-only":209}],268:[function(require,module,exports){
48094
+ },{"./call.module":266,"./events.module":268,"./lib/call/deviceManager.js":269,"./lib/constants":270,"./messaging.module":273,"./utility/utility":274,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"dexie":125,"podasync-ws-only":209}],268:[function(require,module,exports){
48073
48095
  "use strict";
48074
48096
 
48075
48097
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -48080,7 +48102,9 @@ Object.defineProperty(exports, "__esModule", {
48080
48102
  exports["default"] = exports.chatEvents = void 0;
48081
48103
  exports.initEventHandler = initEventHandler;
48082
48104
 
48083
- var _utility = _interopRequireDefault(require("./utility/utility")); // import Sentry from "./lib/sentry.js"
48105
+ var _utility = _interopRequireDefault(require("./utility/utility"));
48106
+
48107
+ var _logger = require("./lib/logger"); // import Sentry from "./lib/sentry.js"
48084
48108
 
48085
48109
 
48086
48110
  var chatEvents = null;
@@ -48148,8 +48172,8 @@ function ChatEvents(params) {
48148
48172
  if (eventName === "error" || eventName === "callEvents" && param.type === "CALL_ERROR") {
48149
48173
  try {
48150
48174
  throw new PodChatErrorException(param);
48151
- } catch (err) {
48152
- console.error(err);
48175
+ } catch (err) {//externalLogger(err);
48176
+ // console.error(err);
48153
48177
  }
48154
48178
  }
48155
48179
 
@@ -48195,7 +48219,7 @@ function initEventHandler(params) {
48195
48219
  var _default = ChatEvents;
48196
48220
  exports["default"] = _default;
48197
48221
 
48198
- },{"./utility/utility":273,"@babel/runtime/helpers/interopRequireDefault":5}],269:[function(require,module,exports){
48222
+ },{"./lib/logger":272,"./utility/utility":274,"@babel/runtime/helpers/interopRequireDefault":5}],269:[function(require,module,exports){
48199
48223
  "use strict";
48200
48224
 
48201
48225
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -48944,6 +48968,43 @@ exports["default"] = _default;
48944
48968
  },{"../events.module":268,"@babel/runtime/helpers/defineProperty":4,"@babel/runtime/helpers/interopRequireDefault":5}],272:[function(require,module,exports){
48945
48969
  "use strict";
48946
48970
 
48971
+ Object.defineProperty(exports, "__esModule", {
48972
+ value: true
48973
+ });
48974
+ exports.externalLogger = externalLogger;
48975
+ exports.init = init;
48976
+ var config = {
48977
+ url: 'http://10.56.34.61:8080/twitter/tweet/1',
48978
+ username: 'chat',
48979
+ password: 'chat123'
48980
+ };
48981
+
48982
+ function externalLogger(message) {
48983
+ var msg;
48984
+ if (typeof message !== "string") msg = JSON.stringify(message);
48985
+ fetch(config.url, {
48986
+ method: 'POST',
48987
+ headers: {
48988
+ 'Authorization': 'Basic ' + btoa("".concat(config.username, ":").concat(config.password)),
48989
+ 'Content-Type': 'application/x-www-form-urlencoded'
48990
+ },
48991
+ body: new URLSearchParams({
48992
+ 'js-browser': msg
48993
+ })
48994
+ })["catch"](function (error) {
48995
+ console.error("[SDK][ExternalLogger] Error while putting log, details: ", error);
48996
+ });
48997
+ }
48998
+
48999
+ function init(externalLogging) {
49000
+ if (externalLogging.url) config.url = externalLogging.url;
49001
+ if (externalLogging.username) config.username = externalLogging.username;
49002
+ if (externalLogging.password) config.password = externalLogging.password;
49003
+ }
49004
+
49005
+ },{}],273:[function(require,module,exports){
49006
+ "use strict";
49007
+
48947
49008
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
48948
49009
 
48949
49010
  Object.defineProperty(exports, "__esModule", {
@@ -48984,10 +49045,25 @@ function ChatMessaging(params) {
48984
49045
  this.threadCallbacks = {};
48985
49046
  this.sendMessageCallbacks = {};
48986
49047
  this.messagesCallbacks = {};
48987
- this.asyncRequestTimeouts = {};
48988
- this.sendPingTimeout = null;
49048
+ this.asyncRequestTimeouts = {}; // this.sendPingTimeout = null;
49049
+
48989
49050
  this.chatState = false;
48990
49051
  this.userInfo = null;
49052
+ /**
49053
+ * sendPingTimeout removed,
49054
+ *
49055
+ * TODO: remove the interval when socket statet changes to closed
49056
+ */
49057
+
49058
+ this.startChatPing = function () {
49059
+ chatPingMessageInterval = setInterval(function () {
49060
+ currentModuleInstance.ping();
49061
+ }, 20000); //TODO: chatPingMessageInterval
49062
+ };
49063
+
49064
+ this.stopChatPing = function () {
49065
+ clearInterval(chatPingMessageInterval);
49066
+ };
48991
49067
 
48992
49068
  this.asyncInitialized = function (client) {
48993
49069
  asyncClient = client;
@@ -49224,11 +49300,12 @@ function ChatMessaging(params) {
49224
49300
  }
49225
49301
  }, asyncRequestTimeout);
49226
49302
  }
49303
+ /* currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
49304
+ currentModuleInstance.sendPingTimeout = setTimeout(function () {
49305
+ currentModuleInstance.ping();
49306
+ }, chatPingMessageInterval); */
49307
+
49227
49308
 
49228
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
49229
- currentModuleInstance.sendPingTimeout = setTimeout(function () {
49230
- currentModuleInstance.ping();
49231
- }, chatPingMessageInterval);
49232
49309
  recursiveCallback && recursiveCallback();
49233
49310
  return {
49234
49311
  uniqueId: uniqueId,
@@ -49260,9 +49337,11 @@ function ChatMessaging(params) {
49260
49337
  chatMessageVOType: _constants.chatMessageVOTypes.PING,
49261
49338
  pushMsgType: 3
49262
49339
  });
49263
- } else {
49264
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
49265
49340
  }
49341
+ /*else {
49342
+ currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
49343
+ }*/
49344
+
49266
49345
  };
49267
49346
  } // if (typeof module !== 'undefined' && typeof module.exports != 'undefined') {
49268
49347
  // module.exports = ChatMessaging;
@@ -49278,7 +49357,7 @@ function ChatMessaging(params) {
49278
49357
  var _default = ChatMessaging;
49279
49358
  exports["default"] = _default;
49280
49359
 
49281
- },{"./lib/constants":270,"./lib/errorHandler":271,"./utility/utility":273,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/typeof":10,"dompurify":131}],273:[function(require,module,exports){
49360
+ },{"./lib/constants":270,"./lib/errorHandler":271,"./utility/utility":274,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/typeof":10,"dompurify":131}],274:[function(require,module,exports){
49282
49361
  (function (global){(function (){
49283
49362
  "use strict";
49284
49363
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podchat-browser",
3
- "version": "12.7.2-snapshot.5",
3
+ "version": "12.7.2-snapshot.7",
4
4
  "description": "Javascript SDK to use POD's Chat Service - Browser Only",
5
5
  "main": "./dist/node/chat.js",
6
6
  "scripts": {
@@ -51,7 +51,7 @@
51
51
  "faker": "^5.5.3",
52
52
  "kurento-utils": "^6.16.0",
53
53
  "node-rsa": "^1.1.1",
54
- "podasync-ws-only": "^2.7.10-snapshot.3",
54
+ "podasync-ws-only": "^2.7.10-snapshot.6",
55
55
  "query-string": "^6.8.1",
56
56
  "webrtc-adapter": "^8.0.0"
57
57
  },
package/src/chat.js CHANGED
@@ -6,6 +6,7 @@ import Dexie from "dexie"
6
6
  import ChatCall from "./call.module"
7
7
  import ChatEvents, { initEventHandler, chatEvents } from "./events.module"
8
8
  import ChatMessaging from "./messaging.module"
9
+ // import {externalLogger as externalLog, init as initExternalLogger} from "./lib/logger";
9
10
 
10
11
  import {
11
12
  chatMessageVOTypes,
@@ -20,6 +21,7 @@ import {
20
21
  } from "./lib/constants";
21
22
 
22
23
  import deviceManager from "./lib/call/deviceManager.js";
24
+ import messagingModule from "./messaging.module";
23
25
 
24
26
  function Chat(params) {
25
27
  /*******************************************************
@@ -174,7 +176,14 @@ function Chat(params) {
174
176
  chatSendQueue = [],
175
177
  chatWaitQueue = [],
176
178
  chatUploadQueue = [],
177
- fullResponseObject = params.fullResponseObject || false;
179
+ fullResponseObject = params.fullResponseObject || false,//,
180
+ // externalLogging = {
181
+ // enable: ( params.externalLogging && params.externalLogging.enable !== undefined ? params.externalLogging.enable : true),
182
+ // url: (params.externalLogging && params.externalLogging.url !== undefined ? params.externalLogging.url : null),
183
+ // username: (params.externalLogging && params.externalLogging.username !== undefined ? params.externalLogging.username : null),
184
+ // password: (params.externalLogging && params.externalLogging.password !== undefined ? params.externalLogging.password : null)
185
+ // };
186
+ isAsyncReconnecting = false;
178
187
 
179
188
  if(!consoleLogging) {
180
189
  /**
@@ -187,6 +196,10 @@ function Chat(params) {
187
196
  };
188
197
  }
189
198
 
199
+ // if(externalLogging.enabled) {
200
+ // initExternalLogger(externalLogging);
201
+ // }
202
+
190
203
  initEventHandler(Object.assign(params, {
191
204
  consoleLogging,
192
205
  }));
@@ -279,6 +292,7 @@ function Chat(params) {
279
292
  chatMessaging.asyncInitialized(asyncClient);
280
293
 
281
294
  asyncClient.on('asyncReady', function () {
295
+ chatMessaging.startChatPing();
282
296
  if (actualTimingLog) {
283
297
  Utility.chatStepLogger('Async Connection ', new Date().getTime() - asyncGetReadyTime);
284
298
  }
@@ -403,6 +417,12 @@ function Chat(params) {
403
417
  chatEvents.fireEvent('chatState', state);
404
418
  chatFullStateObject = state;
405
419
 
420
+ if(![0,2].includes(state.socketState)) {
421
+ isAsyncReconnecting = false;
422
+ } else if([0,2].includes(state.socketState)) {
423
+ isAsyncReconnecting = true;
424
+ }
425
+
406
426
  switch (state.socketState) {
407
427
  case 1: // CONNECTED
408
428
  if (state.deviceRegister && state.serverRegister) {
@@ -416,7 +436,7 @@ function Chat(params) {
416
436
  chatMessaging.chatState = false;
417
437
 
418
438
  // TODO: Check if this is OK or not?!
419
- chatMessaging.sendPingTimeout && clearTimeout(chatMessaging.sendPingTimeout);
439
+ //chatMessaging.sendPingTimeout && clearTimeout(chatMessaging.sendPingTimeout);
420
440
  break;
421
441
  }
422
442
  });
@@ -13732,7 +13752,7 @@ function Chat(params) {
13732
13752
  stackArr.push(result.result[i]);
13733
13753
  } */
13734
13754
 
13735
- stackArr = [...stackArr, ...result.result];
13755
+ stackArr.push(...result.result);
13736
13756
 
13737
13757
  consoleLogging && console.log("[SDK][exportChat] a step passed...");
13738
13758
  // wantedCount = wantedCount > result.contentCount ? result.contentCount : wantedCount;
@@ -14126,8 +14146,15 @@ function Chat(params) {
14126
14146
  return chatFullStateObject;
14127
14147
  };
14128
14148
 
14129
- publicized.reconnect = function () {
14130
- asyncClient.reconnectSocket();
14149
+ publicized.reconnect = function (callback) {
14150
+ if(!isAsyncReconnecting) {
14151
+ asyncClient.reconnectSocket();
14152
+ isAsyncReconnecting = true;
14153
+ callback && callback({hasError: false, message: "Reconnecting..."});
14154
+ } else {
14155
+ callback && callback({hasError: true, message: "Socket state is not suitable for reconnecting."});
14156
+ consoleLogging && console.log("[SDK] Socket state is not suitable for reconnecting.")
14157
+ }
14131
14158
  };
14132
14159
 
14133
14160
  publicized.setToken = function (newToken) {
@@ -14149,6 +14176,7 @@ function Chat(params) {
14149
14176
  chatMessaging.messagesCallbacks = {};
14150
14177
  chatMessaging.sendMessageCallbacks = {};
14151
14178
  chatMessaging.threadCallbacks = {};
14179
+ chatMessaging.stopChatPing();
14152
14180
 
14153
14181
  asyncClient.logout();
14154
14182
  };
@@ -1,4 +1,5 @@
1
1
  import Utility from "./utility/utility"
2
+ import {externalLogger} from "./lib/logger";
2
3
  // import Sentry from "./lib/sentry.js"
3
4
 
4
5
  let chatEvents = null;
@@ -65,7 +66,8 @@ function ChatEvents(params) {
65
66
  try {
66
67
  throw new PodChatErrorException(param);
67
68
  } catch (err) {
68
- console.error(err);
69
+ //externalLogger(err);
70
+ // console.error(err);
69
71
  }
70
72
  }
71
73
 
@@ -0,0 +1,34 @@
1
+ let config = {
2
+ url: 'http://10.56.34.61:8080/twitter/tweet/1',
3
+ username: 'chat',
4
+ password: 'chat123'
5
+ };
6
+
7
+ function externalLogger(message) {
8
+ let msg;
9
+ if(typeof message !== "string")
10
+ msg = JSON.stringify(message);
11
+ fetch(config.url, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Authorization': 'Basic ' + btoa(`${config.username}:${config.password}`),
15
+ 'Content-Type': 'application/x-www-form-urlencoded'
16
+ },
17
+ body: new URLSearchParams({
18
+ 'js-browser': msg
19
+ })
20
+ }).catch(error => {
21
+ console.error("[SDK][ExternalLogger] Error while putting log, details: ", error);
22
+ });
23
+ }
24
+
25
+ function init(externalLogging) {
26
+ if(externalLogging.url)
27
+ config.url = externalLogging.url;
28
+ if(externalLogging.username)
29
+ config.username = externalLogging.username;
30
+ if(externalLogging.password)
31
+ config.password = externalLogging.password;
32
+ }
33
+
34
+ export {init, externalLogger};
@@ -27,10 +27,24 @@ import {errorList, raiseError} from "./lib/errorHandler";
27
27
  this.sendMessageCallbacks = {};
28
28
  this.messagesCallbacks = {};
29
29
  this.asyncRequestTimeouts = {};
30
- this.sendPingTimeout = null;
30
+ // this.sendPingTimeout = null;
31
31
  this.chatState = false;
32
32
  this.userInfo = null;
33
33
 
34
+ /**
35
+ * sendPingTimeout removed,
36
+ *
37
+ * TODO: remove the interval when socket statet changes to closed
38
+ */
39
+ this.startChatPing = function () {
40
+ chatPingMessageInterval = setInterval(() => {
41
+ currentModuleInstance.ping();
42
+ }, 20000) ;//TODO: chatPingMessageInterval
43
+ }
44
+ this.stopChatPing = function() {
45
+ clearInterval(chatPingMessageInterval);
46
+ }
47
+
34
48
  this.asyncInitialized = function (client) {
35
49
  asyncClient = client
36
50
  }
@@ -270,10 +284,10 @@ import {errorList, raiseError} from "./lib/errorHandler";
270
284
  }, asyncRequestTimeout);
271
285
  }
272
286
 
273
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
287
+ /* currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
274
288
  currentModuleInstance.sendPingTimeout = setTimeout(function () {
275
289
  currentModuleInstance.ping();
276
- }, chatPingMessageInterval);
290
+ }, chatPingMessageInterval); */
277
291
 
278
292
  recursiveCallback && recursiveCallback();
279
293
 
@@ -306,9 +320,10 @@ import {errorList, raiseError} from "./lib/errorHandler";
306
320
  chatMessageVOType: chatMessageVOTypes.PING,
307
321
  pushMsgType: 3
308
322
  });
309
- } else {
310
- currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
311
323
  }
324
+ /*else {
325
+ currentModuleInstance.sendPingTimeout && clearTimeout(currentModuleInstance.sendPingTimeout);
326
+ }*/
312
327
  };
313
328
 
314
329
  }