podchat-browser 12.7.2-snapshot.30 → 12.7.2-snapshot.32

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/changelog.md CHANGED
@@ -5,6 +5,28 @@ to see complete list of changelog please visit [ChangeLog](http://gp.fanapsoft.i
5
5
 
6
6
  ##[Unreleased]
7
7
 
8
+ ## [12.7.2-snapshot.30]
9
+ - Updated package podasync-ws-only to version 2.9.0-snapshot.4 to fix retryStep
10
+
11
+ ## [12.7.2-snapshot.29]
12
+ - Rollback get user on each socket reconnect to previous functionality
13
+ - Updated package podasync-ws-only to fix retryStep
14
+
15
+ ## [12.7.2-snapshot.28]
16
+ - Changes to not prevent get user info requests when chat is not ready (but async is ready) Which causes faster get user on reconnects
17
+
18
+ ## [12.7.2-snapshot.27]
19
+ - Changed functionality to get user on each socket reconnect (Temporarily)
20
+ - Fixed functionality of method enableParticipantsVideoReceive (Was fixed in other versions and merged here)
21
+
22
+ ## [12.7.2-snapshot.26]
23
+ - Added additional check to make sure SDK does well even if chat server sends participant instead of participantVO in new messages or history
24
+
25
+ ## [12.7.2-snapshot.24]
26
+ - Fixed screenShare problem
27
+ - Consider the call as started when SDK receives 74:START_CALL event instead of waiting for response of CREATE_SESSION
28
+
29
+
8
30
  ## [12.7.2-snapshot.0] - 2022-11-01
9
31
  ### Added
10
32
  - Added possibility to accept incoming call while user is in an existing call
@@ -1 +1 @@
1
- {"version":"12.7.2-snapshot.30","date":"۱۴۰۲/۲/۳۱","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.7.2-snapshot.32","date":"۱۴۰۲/۳/۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
package/dist/node/chat.js CHANGED
@@ -1,4 +1,4 @@
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 _buildConfig=_interopRequireDefault(require("./buildConfig.json"));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 _buildConfig=_interopRequireDefault(require("./buildConfig.json"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));var _store=require("./lib/store");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){/*******************************************************
2
2
  * P R I V A T E V A R I A B L E S *
3
3
  *******************************************************/var asyncClient,peerId,oldPeerId,token=params.token||"111",generalTypeCode=params.typeCode||'default',typeCodeOwnerId=params.typeCodeOwnerId||null,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
4
  SSO_DEVICES:'/oauth2/grants/devices',SSO_GENERATE_KEY:'/handshake/users/',SSO_GET_KEY:'/handshake/keys/',// Contacts
@@ -317,7 +317,7 @@ sendMessageCallbacksHandler(_constants.chatMessageVOTypes.DELIVERY,threadId,uniq
317
317
  * Type 28 Edit Message
318
318
  */case _constants.chatMessageVOTypes.EDIT_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}chatEditMessageHandler(threadId,messageContent);break;/**
319
319
  * Type 29 Delete Message
320
- */case _constants.chatMessageVOTypes.DELETE_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}if(messageContent.pinned){unPinMessage({messageId:messageContent.id,notifyAll:true});}/**
320
+ */case _constants.chatMessageVOTypes.DELETE_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}var msgTime=parseInt(parseInt(messageContent.time)/1000)*1000000000+parseInt(messageContent.timeNanos);_store.store.threads.get(threadId).unreadCount.decrease(msgTime);if(messageContent.pinned){unPinMessage({messageId:messageContent.id,notifyAll:true});}/**
321
321
  * Remove Message from cache
322
322
  */if(canUseCache&&cacheSecret.length>0){if(db){db.messages.where('id').equals(messageContent).and(function(message){return message.owner===chatMessaging.userInfo.id;})["delete"]()["catch"](function(error){_events.chatEvents.fireEvent('error',{code:6602,message:CHAT_ERRORS[6602],error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}if(fullResponseObject){var time,timeMiliSeconds;if(messageContent.time.toString().length>14){time=messageContent.time;timeMiliSeconds=parseInt(messageContent.time/1000000);}else{time=messageContent.timeNanos?parseInt(parseInt(messageContent.time)/1000)*1000000000+parseInt(messageContent.timeNanos):parseInt(pushMessageVO.time);timeMiliSeconds=parseInt(messageContent.time);}getThreads({threadIds:[threadId]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_DELETE',result:{message:{id:messageContent.id,pinned:messageContent.pinned,threadId:threadId,time:time,timeMiliSeconds:timeMiliSeconds,timeNanos:messageContent.timeNanos}}});if(messageContent.pinned){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threads[0]}});}}});}else{_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_DELETE',result:{message:{id:messageContent.id,pinned:messageContent.pinned,threadId:threadId,time:time,timeMiliSeconds:timeMiliSeconds,timeNanos:messageContent.timeNanos}}});if(messageContent.pinned){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadId}});}}break;/**
323
323
  * Type 30 Thread Info Updated
@@ -370,7 +370,7 @@ var thread=formatDataToMakeConversation(messageContent);/**
370
370
  // }
371
371
  _events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});break;/**
372
372
  * Type 31 Thread Last Seen Updated
373
- */case _constants.chatMessageVOTypes.LAST_SEEN_UPDATED:var threadObject=messageContent;threadObject.unreadCount=messageContent.unreadCount?messageContent.unreadCount:0;_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_SEEN_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});// if (fullResponseObject) {
373
+ */case _constants.chatMessageVOTypes.LAST_SEEN_UPDATED:var threadObject=messageContent;threadObject.unreadCount=messageContent.unreadCount?messageContent.unreadCount:0;var localThreadLastSeenUpdated=JSON.parse(JSON.stringify(messageContent));_store.store.threads.save(localThreadLastSeenUpdated);_store.store.threads.get(threadId).unreadCount.set(localThreadLastSeenUpdated.unreadCount);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_SEEN_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});// if (fullResponseObject) {
374
374
  // getThreads({
375
375
  // threadIds: [messageContent.id]
376
376
  // }, function (threadsResult) {
@@ -459,7 +459,7 @@ break;/**
459
459
  * Type 65 Stop Bot
460
460
  */case _constants.chatMessageVOTypes.STOP_BOT:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}break;/**
461
461
  * Type 66 Last Message Deleted
462
- */case _constants.chatMessageVOTypes.LAST_MESSAGE_DELETED:new Promise(function(resolve,reject){if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){resolve(threads[0]);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);resolve(thread);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}}).then(function(thread){if(typeof messageContent.unreadCount!=="undefined"){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:thread,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});}});break;/**
462
+ */case _constants.chatMessageVOTypes.LAST_MESSAGE_DELETED:delete messageContent.unreadCount;var threadOfDeletedMessage=formatDataToMakeConversation(messageContent);_store.store.threads.save(threadOfDeletedMessage);new Promise(function(resolve,reject){if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){resolve(threads[0]);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);resolve(thread);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}}).then(function(thread){if(typeof messageContent.unreadCount!=="undefined"){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:thread,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});}});break;/**
463
463
  * Type 67 Last Message Edited
464
464
  */case _constants.chatMessageVOTypes.LAST_MESSAGE_EDITED:if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}break;/**
465
465
  * Type 68 Get Bot Commands List
@@ -567,7 +567,7 @@ break;/**
567
567
  */if(canUseCache&&cacheSecret.length>0){if(db){/**
568
568
  * Insert new messages into cache database
569
569
  * after deleting old messages from cache
570
- */var tempData={};try{var salt=_utility["default"].generateUUID();tempData.id=parseInt(message.id);tempData.owner=parseInt(chatMessaging.userInfo.id);tempData.threadId=parseInt(message.threadId);tempData.time=message.time;tempData.message=_utility["default"].crypt(message.message,cacheSecret,salt);tempData.data=_utility["default"].crypt(JSON.stringify(unsetNotSeenDuration(message)),cacheSecret,salt);tempData.salt=salt;tempData.sendStatus='sent';}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}db.messages.put(tempData)["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_NEW',cache:false,result:{message:message}});var threadObject=message.conversation;var lastMessageVoCopy=Object.assign({},message);lastMessageVoCopy.conversation&&delete lastMessageVoCopy.conversation;threadObject.lastParticipantImage=!!message.participant&&message.participant.hasOwnProperty('image')?message.participant.image:'';threadObject.lastMessageVO=lastMessageVoCopy;threadObject.lastParticipantName=!!message.participant&&message.participant.hasOwnProperty('name')?message.participant.name:'';threadObject.lastMessage=message.hasOwnProperty('message')?message.message:'';_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:threadObject.unreadCount?threadObject.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
570
+ */var tempData={};try{var salt=_utility["default"].generateUUID();tempData.id=parseInt(message.id);tempData.owner=parseInt(chatMessaging.userInfo.id);tempData.threadId=parseInt(message.threadId);tempData.time=message.time;tempData.message=_utility["default"].crypt(message.message,cacheSecret,salt);tempData.data=_utility["default"].crypt(JSON.stringify(unsetNotSeenDuration(message)),cacheSecret,salt);tempData.salt=salt;tempData.sendStatus='sent';}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}db.messages.put(tempData)["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_NEW',cache:false,result:{message:message}});var threadObject=message.conversation;var lastMessageVoCopy=Object.assign({},message);lastMessageVoCopy.conversation&&delete lastMessageVoCopy.conversation;threadObject.lastParticipantImage=!!message.participant&&message.participant.hasOwnProperty('image')?message.participant.image:'';threadObject.lastMessageVO=lastMessageVoCopy;threadObject.lastParticipantName=!!message.participant&&message.participant.hasOwnProperty('name')?message.participant.name:'';threadObject.lastMessage=message.hasOwnProperty('message')?message.message:'';_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:threadObject.unreadCount?threadObject.unreadCount:0}});var storeThread=_store.store.threads.get(threadObject.id);if(!storeThread){_store.store.threads.save(threadObject);storeThread=_store.store.threads.get(threadObject.id);}_store.store.threads.get(threadObject.id).unreadCount.set(threadObject.unreadCount?threadObject.unreadCount:0);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
571
571
  // getThreads({
572
572
  // threadIds: [threadId]
573
573
  // }, function (threadsResult) {
@@ -1002,7 +1002,7 @@ content:content};/**
1002
1002
  */if(functionLevelCache&&canUseCache&&cacheSecret.length>0){if(db){var thenAble;if(Object.keys(whereClause).length===0){thenAble=db.threads.where('[owner+time]').between([chatMessaging.userInfo.id,minIntegerValue],[chatMessaging.userInfo.id,maxIntegerValue*1000]).reverse();}else{if(whereClause.hasOwnProperty('threadIds')){thenAble=db.threads.where('id').anyOf(whereClause.threadIds).and(function(thread){return thread.owner===chatMessaging.userInfo.id;});}if(whereClause.hasOwnProperty('name')){thenAble=db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).filter(function(thread){var reg=new RegExp(whereClause.name);return reg.test(chatDecrypt(thread.title,cacheSecret,thread.salt));});}if(whereClause.hasOwnProperty('creatorCoreUserId')){thenAble=db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).filter(function(thread){var threadObject=JSON.parse(chatDecrypt(thread.data,cacheSecret,thread.salt),false);return parseInt(threadObject.inviter.coreUserId)===parseInt(whereClause.creatorCoreUserId);});}}thenAble.offset(offset).limit(count).toArray().then(function(threads){db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).count().then(function(threadsCount){var cacheData=[];for(var i=0;i<threads.length;i++){try{cacheData.push(createThread(JSON.parse(chatDecrypt(threads[i].data,cacheSecret,threads[i].salt)),false));}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}}var returnData={hasError:false,cache:true,errorCode:0,errorMessage:'',result:{threads:cacheData,contentCount:threadsCount,hasNext:!(threads.length<count),nextOffset:offset*1+threads.length}};if(cacheData.length>0){callback&&callback(returnData);callback=undefined;returnCache=true;}});})["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}/**
1003
1003
  * Retrive get threads response from server
1004
1004
  */return chatMessaging.sendMessage(sendMessageParams,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode,uniqueId:result.uniqueId};if(!returnData.hasError){var messageContent=result.result,messageLength=messageContent.length,resultData={threads:[],contentCount:result.contentCount,hasNext:messageContent&&!(messageLength<count),//(offset + count < result.contentCount && messageLength > 0),
1005
- nextOffset:offset*1+messageLength*1},threadData;for(var i=0;i<messageLength;i++){threadData=createThread(messageContent[i],false);if(threadData){resultData.threads.push(threadData);}}returnData.result=resultData;/**
1005
+ nextOffset:offset*1+messageLength*1},threadData;for(var i=0;i<messageLength;i++){threadData=createThread(messageContent[i],false);if(threadData){resultData.threads.push(threadData);}}_store.store.threads.saveMany(resultData.threads);returnData.result=resultData;/**
1006
1006
  * Updating cache on separated worker to find and
1007
1007
  * delete all messages that have been deleted from
1008
1008
  * thread's last section
@@ -2177,6 +2177,6 @@ pc.onicecandidate=function(ice){//listen for candidate events
2177
2177
  if(promiseResolved||!ice||!ice.candidate||!ice.candidate.candidate||!(ice.candidate.candidate.indexOf('typ relay')>-1))return;promiseResolved=true;resolve(true);};});};publicized.getCustomerInfo=function(params,callback){var userId=params.userId||chatMessaging.userInfo.id,sendData={chatMessageVOType:_constants.chatMessageVOTypes.CUSTOMER_INFO,typeCode:generalTypeCode,//params.typeCode,
2178
2178
  content:[userId],token:token};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.archiveThread=function(_ref,callback){var threadId=_ref.threadId;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.ARCHIVE_THREAD,typeCode:generalTypeCode,//params.typeCode,
2179
2179
  token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.unArchiveThread=function(_ref2,callback){var threadId=_ref2.threadId;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.UNARCHIVE_THREAD,typeCode:generalTypeCode,//params.typeCode,
2180
- token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.version=function(){console.log("%c[SDK] Version: podchat-browser@"+_buildConfig["default"].version,"color:green; font-size:13px");console.log("%c[SDK] Build date:"+_buildConfig["default"].date,"color:green;font-size:13px");console.log("%c[SDK] Additional info: "+_buildConfig["default"].VersionInfo,"color:green;font-size:13px");return _buildConfig["default"];};publicized.changeProtocol=function(){var proto=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"websocket";if(["webrtc","websocket"].includes(proto)){if(proto!=protocol){protocol=proto.toLowerCase();asyncClient.logout();initAsync();}else{console.warn("SDK is currently using the ".concat(proto," protocol. Nothing to do."));}}else{console.error("Protocol ".concat(proto," is not supported in SDK. Valid protocols: \"webrtc\", \"websocket\""));}};init();return publicized;}if(window){if(!window.POD){window.POD={};}window.POD.Chat=Chat;//For backward compatibility
2180
+ token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.version=function(){console.log("%c[SDK] Version: podchat-browser@"+_buildConfig["default"].version,"color:green; font-size:13px");console.log("%c[SDK] Build date:"+_buildConfig["default"].date,"color:green;font-size:13px");console.log("%c[SDK] Additional info: "+_buildConfig["default"].VersionInfo,"color:green;font-size:13px");return _buildConfig["default"];};publicized.changeProtocol=function(){var proto=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"websocket";if(["webrtc","websocket"].includes(proto)){if(proto!=protocol){protocol=proto.toLowerCase();asyncClient.logout();initAsync();}else{console.warn("SDK is currently using the ".concat(proto," protocol. Nothing to do."));}}else{console.error("Protocol ".concat(proto," is not supported in SDK. Valid protocols: \"webrtc\", \"websocket\""));}};_store.store.events.on(_store.store.threads.eventsList.UNREAD_COUNT_UPDATED,function(thread){_events.chatEvents.fireEvent('threadEvents',{type:'UNREAD_COUNT_UPDATED',result:{threadId:thread.id,unreadCount:thread.unreadCount||0}});});init();return publicized;}if(window){if(!window.POD){window.POD={};}window.POD.Chat=Chat;//For backward compatibility
2181
2181
  window.PodChat=Chat;}var _default=Chat;// })();
2182
2182
  exports["default"]=_default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.storeEvents = void 0;
9
+
10
+ var _events = _interopRequireDefault(require("events"));
11
+
12
+ var Emitter = new _events["default"]();
13
+ var storeEvents = {
14
+ on: function on(eventName, callback) {
15
+ Emitter.on(eventName, callback);
16
+ },
17
+ off: function off(eventName) {
18
+ Emitter.off(eventName);
19
+ },
20
+ emit: function emit(eventName, data) {
21
+ Emitter.emit(eventName, data);
22
+ }
23
+ };
24
+ exports.storeEvents = storeEvents;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.store = void 0;
7
+
8
+ var _threads = require("./threads");
9
+
10
+ var _eventEmitter = require("./eventEmitter");
11
+
12
+ var store = {
13
+ threads: _threads.threadsList,
14
+ events: _eventEmitter.storeEvents
15
+ };
16
+ exports.store = store;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.threadsList = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _eventEmitter = require("./eventEmitter");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ var list = [];
19
+ var eventsList = {
20
+ SINGLE_THREAD_UPDATE: "singleThreadUpdate",
21
+ UNREAD_COUNT_UPDATED: 'unreadCountUpdated',
22
+ LAST_SEEN_MESSAGE_TIME_UPDATED: 'lastSeenMessageTimeUpdated'
23
+ };
24
+ var threadsList = {
25
+ eventsList: eventsList,
26
+ get: function get(id) {
27
+ return list[threadsList.findIndex(id)];
28
+ },
29
+ getAll: function getAll() {
30
+ return list;
31
+ },
32
+ findIndex: function findIndex(threadId) {
33
+ return list.findIndex(function (item) {
34
+ return (item === null || item === void 0 ? void 0 : item.get().id) == threadId;
35
+ });
36
+ },
37
+ save: function save(thread) {
38
+ var localThread;
39
+ var localThreadIndex = threadsList.findIndex(thread.id);
40
+
41
+ if (localThreadIndex > -1) {
42
+ list[localThreadIndex].set(thread);
43
+ localThread = list[localThreadIndex];
44
+ } else {
45
+ localThread = new ThreadObject(thread);
46
+ list = [localThread].concat(list);
47
+ }
48
+
49
+ _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, localThread.get());
50
+ },
51
+ saveMany: function saveMany(newThreads) {
52
+ if (Array.isArray(newThreads)) {
53
+ var nonExistingThreads = [];
54
+
55
+ for (var item in newThreads) {
56
+ var localThreadIndex = threadsList.findIndex(newThreads[item].id);
57
+
58
+ if (localThreadIndex > -1) {
59
+ list[localThreadIndex].set(newThreads[item]);
60
+ } else {
61
+ nonExistingThreads.push(new ThreadObject(newThreads[item]));
62
+ }
63
+ }
64
+
65
+ if (nonExistingThreads.length) {
66
+ list = nonExistingThreads.concat(list);
67
+ }
68
+ }
69
+ },
70
+ remove: function remove(id) {
71
+ var localThreadIndex = threadsList.findIndex(id);
72
+
73
+ if (localThreadIndex > -1) {
74
+ delete list[localThreadIndex];
75
+ }
76
+ }
77
+ };
78
+ exports.threadsList = threadsList;
79
+
80
+ function ThreadObject(thread) {
81
+ var config = {
82
+ thread: thread,
83
+ latestReceivedMessage: null
84
+ };
85
+
86
+ function makeSureUnreadCountExists(thread) {
87
+ if (!thread.unreadCount) {
88
+ if (config.thread.unreadCount) thread.unreadCount = config.thread.unreadCount;else thread.unreadCount = 0;
89
+ }
90
+ }
91
+
92
+ makeSureUnreadCountExists(config.thread);
93
+ return {
94
+ set: function set(thread) {
95
+ makeSureUnreadCountExists(thread);
96
+ config.thread = _objectSpread(_objectSpread({}, config.thread), thread);
97
+ },
98
+ get: function get() {
99
+ return config.thread;
100
+ },
101
+ update: function update(field, newValue) {
102
+ config.thread[field] = newValue;
103
+
104
+ _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, config.thread);
105
+ },
106
+ unreadCount: {
107
+ set: function set(count) {
108
+ config.thread.unreadCount = count;
109
+
110
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
111
+ },
112
+ get: function get() {
113
+ return config.thread.unreadCount;
114
+ },
115
+ increase: function increase() {
116
+ config.thread.unreadCount++;
117
+
118
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
119
+ },
120
+ decrease: function decrease(time) {
121
+ if (time > config.thread.lastSeenMessageTime && config.thread.unreadCount > 0) {
122
+ config.thread.unreadCount--;
123
+
124
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
125
+ }
126
+ }
127
+ },
128
+ lastSeenMessageTime: {
129
+ set: function set(number) {
130
+ if (number > config.thread.lastSeenMessageTime) {
131
+ config.thread.lastSeenMessageTime = number;
132
+ }
133
+ },
134
+ get: function get() {
135
+ return config.thread.lastSeenMessageTime;
136
+ }
137
+ },
138
+
139
+ /**
140
+ * local helper to detect and always replace the correct lastMessageVO in thread
141
+ */
142
+ latestReceivedMessage: {
143
+ getTime: function getTime() {
144
+ return config.latestReceivedMessage ? config.latestReceivedMessage.time : 0;
145
+ },
146
+ get: function get() {
147
+ return config.latestReceivedMessage;
148
+ },
149
+ set: function set(message) {
150
+ config.latestReceivedMessage = message;
151
+ }
152
+ }
153
+ };
154
+ }
@@ -39899,7 +39899,7 @@ module.exports = function (thing, encoding, name) {
39899
39899
  config.timeoutIds.third = setTimeout(() => {
39900
39900
  logLevel.debug && console.debug("[Async][Socket.js] Force closing socket.");
39901
39901
  onCloseHandler(null);
39902
- if (socket) socket.close();
39902
+ socket && socket.close();
39903
39903
  }, 2000);
39904
39904
  }, 2000);
39905
39905
  }, 8000);
@@ -39948,7 +39948,7 @@ module.exports = function (thing, encoding, name) {
39948
39948
  // if(socket.readyState !== 1) {
39949
39949
  logLevel.debug && console.debug("[Async][Socket.js] socketWatchTimeout triggered.");
39950
39950
  onCloseHandler(null);
39951
- socket.close();
39951
+ socket && socket.close();
39952
39952
  // }
39953
39953
  }, 5000);
39954
39954
  socket.onopen = function (event) {
@@ -40049,7 +40049,7 @@ module.exports = function (thing, encoding, name) {
40049
40049
  };
40050
40050
  this.close = function () {
40051
40051
  logLevel.debug && console.debug("[Async][Socket.js] Closing socket by call to this.close");
40052
- if (socket) socket.close();
40052
+ socket && socket.close();
40053
40053
  onCloseHandler(null);
40054
40054
  socketWatchTimeout && clearTimeout(socketWatchTimeout);
40055
40055
  };
@@ -45793,7 +45793,7 @@ WildEmitter.mixin = function (constructor) {
45793
45793
  WildEmitter.mixin(WildEmitter);
45794
45794
 
45795
45795
  },{}],267:[function(require,module,exports){
45796
- module.exports={"version":"12.7.2-snapshot.30","date":"۱۴۰۲/۲/۳۱","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
45796
+ module.exports={"version":"12.7.2-snapshot.32","date":"۱۴۰۲/۳/۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
45797
45797
  },{}],268:[function(require,module,exports){
45798
45798
  "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 _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _constants=require("./lib/constants");var _kurentoUtils=_interopRequireDefault(require("kurento-utils"));var _utility=_interopRequireDefault(require("./utility/utility"));var _eventsModule=require("./events.module.js");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));var _errorHandler=_interopRequireWildcard(require("./lib/errorHandler"));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 ChatCall(params){var _params$asyncLogging,_params$asyncLogging2,_params$asyncLogging3,_params$callOptions,_params$callOptions2;var//Utility = params.Utility,
45799
45799
  currentModuleInstance=this,asyncClient=params.asyncClient,//chatEvents = params.chatEvents,
@@ -46535,8 +46535,8 @@ invitees.forEach(function(item){item.idType=_constants.inviteeVOidTypes[item.idT
46535
46535
  }
46536
46536
  }*/return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};this.deviceManager=_deviceManager["default"];this.resetCallStream=function(_ref9,callback){var userId=_ref9.userId,_ref9$streamType=_ref9.streamType,streamType=_ref9$streamType===void 0?'audio':_ref9$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;
46537
46537
 
46538
- },{"./events.module.js":270,"./lib/call/deviceManager.js":271,"./lib/constants":272,"./lib/errorHandler":273,"./utility/utility":275,"@babel/runtime/helpers/asyncToGenerator":3,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"@babel/runtime/regenerator":12,"kurento-utils":190}],269:[function(require,module,exports){
46539
- '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 _buildConfig=_interopRequireDefault(require("./buildConfig.json"));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){/*******************************************************
46538
+ },{"./events.module.js":270,"./lib/call/deviceManager.js":271,"./lib/constants":272,"./lib/errorHandler":273,"./utility/utility":278,"@babel/runtime/helpers/asyncToGenerator":3,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"@babel/runtime/regenerator":12,"kurento-utils":190}],269:[function(require,module,exports){
46539
+ '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 _buildConfig=_interopRequireDefault(require("./buildConfig.json"));var _constants=require("./lib/constants");var _deviceManager=_interopRequireDefault(require("./lib/call/deviceManager.js"));var _store=require("./lib/store");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){/*******************************************************
46540
46540
  * P R I V A T E V A R I A B L E S *
46541
46541
  *******************************************************/var asyncClient,peerId,oldPeerId,token=params.token||"111",generalTypeCode=params.typeCode||'default',typeCodeOwnerId=params.typeCodeOwnerId||null,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
46542
46542
  SSO_DEVICES:'/oauth2/grants/devices',SSO_GENERATE_KEY:'/handshake/users/',SSO_GET_KEY:'/handshake/keys/',// Contacts
@@ -46855,7 +46855,7 @@ sendMessageCallbacksHandler(_constants.chatMessageVOTypes.DELIVERY,threadId,uniq
46855
46855
  * Type 28 Edit Message
46856
46856
  */case _constants.chatMessageVOTypes.EDIT_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}chatEditMessageHandler(threadId,messageContent);break;/**
46857
46857
  * Type 29 Delete Message
46858
- */case _constants.chatMessageVOTypes.DELETE_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}if(messageContent.pinned){unPinMessage({messageId:messageContent.id,notifyAll:true});}/**
46858
+ */case _constants.chatMessageVOTypes.DELETE_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}var msgTime=parseInt(parseInt(messageContent.time)/1000)*1000000000+parseInt(messageContent.timeNanos);_store.store.threads.get(threadId).unreadCount.decrease(msgTime);if(messageContent.pinned){unPinMessage({messageId:messageContent.id,notifyAll:true});}/**
46859
46859
  * Remove Message from cache
46860
46860
  */if(canUseCache&&cacheSecret.length>0){if(db){db.messages.where('id').equals(messageContent).and(function(message){return message.owner===chatMessaging.userInfo.id;})["delete"]()["catch"](function(error){_events.chatEvents.fireEvent('error',{code:6602,message:CHAT_ERRORS[6602],error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}if(fullResponseObject){var time,timeMiliSeconds;if(messageContent.time.toString().length>14){time=messageContent.time;timeMiliSeconds=parseInt(messageContent.time/1000000);}else{time=messageContent.timeNanos?parseInt(parseInt(messageContent.time)/1000)*1000000000+parseInt(messageContent.timeNanos):parseInt(pushMessageVO.time);timeMiliSeconds=parseInt(messageContent.time);}getThreads({threadIds:[threadId]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_DELETE',result:{message:{id:messageContent.id,pinned:messageContent.pinned,threadId:threadId,time:time,timeMiliSeconds:timeMiliSeconds,timeNanos:messageContent.timeNanos}}});if(messageContent.pinned){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threads[0]}});}}});}else{_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_DELETE',result:{message:{id:messageContent.id,pinned:messageContent.pinned,threadId:threadId,time:time,timeMiliSeconds:timeMiliSeconds,timeNanos:messageContent.timeNanos}}});if(messageContent.pinned){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadId}});}}break;/**
46861
46861
  * Type 30 Thread Info Updated
@@ -46908,7 +46908,7 @@ var thread=formatDataToMakeConversation(messageContent);/**
46908
46908
  // }
46909
46909
  _events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});break;/**
46910
46910
  * Type 31 Thread Last Seen Updated
46911
- */case _constants.chatMessageVOTypes.LAST_SEEN_UPDATED:var threadObject=messageContent;threadObject.unreadCount=messageContent.unreadCount?messageContent.unreadCount:0;_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_SEEN_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});// if (fullResponseObject) {
46911
+ */case _constants.chatMessageVOTypes.LAST_SEEN_UPDATED:var threadObject=messageContent;threadObject.unreadCount=messageContent.unreadCount?messageContent.unreadCount:0;var localThreadLastSeenUpdated=JSON.parse(JSON.stringify(messageContent));_store.store.threads.save(localThreadLastSeenUpdated);_store.store.threads.get(threadId).unreadCount.set(localThreadLastSeenUpdated.unreadCount);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_SEEN_UPDATED',result:{thread:threadObject,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});// if (fullResponseObject) {
46912
46912
  // getThreads({
46913
46913
  // threadIds: [messageContent.id]
46914
46914
  // }, function (threadsResult) {
@@ -46997,7 +46997,7 @@ break;/**
46997
46997
  * Type 65 Stop Bot
46998
46998
  */case _constants.chatMessageVOTypes.STOP_BOT:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}break;/**
46999
46999
  * Type 66 Last Message Deleted
47000
- */case _constants.chatMessageVOTypes.LAST_MESSAGE_DELETED:new Promise(function(resolve,reject){if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){resolve(threads[0]);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);resolve(thread);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}}).then(function(thread){if(typeof messageContent.unreadCount!=="undefined"){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:thread,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});}});break;/**
47000
+ */case _constants.chatMessageVOTypes.LAST_MESSAGE_DELETED:delete messageContent.unreadCount;var threadOfDeletedMessage=formatDataToMakeConversation(messageContent);_store.store.threads.save(threadOfDeletedMessage);new Promise(function(resolve,reject){if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){resolve(threads[0]);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);resolve(thread);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}}).then(function(thread){if(typeof messageContent.unreadCount!=="undefined"){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:thread,unreadCount:messageContent.unreadCount?messageContent.unreadCount:0}});}});break;/**
47001
47001
  * Type 67 Last Message Edited
47002
47002
  */case _constants.chatMessageVOTypes.LAST_MESSAGE_EDITED:if(fullResponseObject){getThreads({threadIds:[messageContent.id]},function(threadsResult){var threads=threadsResult.result.threads;if(!threadsResult.cache){_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:threads[0]}});}});}else{var thread=formatDataToMakeConversation(messageContent);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});}break;/**
47003
47003
  * Type 68 Get Bot Commands List
@@ -47105,7 +47105,7 @@ break;/**
47105
47105
  */if(canUseCache&&cacheSecret.length>0){if(db){/**
47106
47106
  * Insert new messages into cache database
47107
47107
  * after deleting old messages from cache
47108
- */var tempData={};try{var salt=_utility["default"].generateUUID();tempData.id=parseInt(message.id);tempData.owner=parseInt(chatMessaging.userInfo.id);tempData.threadId=parseInt(message.threadId);tempData.time=message.time;tempData.message=_utility["default"].crypt(message.message,cacheSecret,salt);tempData.data=_utility["default"].crypt(JSON.stringify(unsetNotSeenDuration(message)),cacheSecret,salt);tempData.salt=salt;tempData.sendStatus='sent';}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}db.messages.put(tempData)["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_NEW',cache:false,result:{message:message}});var threadObject=message.conversation;var lastMessageVoCopy=Object.assign({},message);lastMessageVoCopy.conversation&&delete lastMessageVoCopy.conversation;threadObject.lastParticipantImage=!!message.participant&&message.participant.hasOwnProperty('image')?message.participant.image:'';threadObject.lastMessageVO=lastMessageVoCopy;threadObject.lastParticipantName=!!message.participant&&message.participant.hasOwnProperty('name')?message.participant.name:'';threadObject.lastMessage=message.hasOwnProperty('message')?message.message:'';_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:threadObject.unreadCount?threadObject.unreadCount:0}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
47108
+ */var tempData={};try{var salt=_utility["default"].generateUUID();tempData.id=parseInt(message.id);tempData.owner=parseInt(chatMessaging.userInfo.id);tempData.threadId=parseInt(message.threadId);tempData.time=message.time;tempData.message=_utility["default"].crypt(message.message,cacheSecret,salt);tempData.data=_utility["default"].crypt(JSON.stringify(unsetNotSeenDuration(message)),cacheSecret,salt);tempData.salt=salt;tempData.sendStatus='sent';}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}db.messages.put(tempData)["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}_events.chatEvents.fireEvent('messageEvents',{type:'MESSAGE_NEW',cache:false,result:{message:message}});var threadObject=message.conversation;var lastMessageVoCopy=Object.assign({},message);lastMessageVoCopy.conversation&&delete lastMessageVoCopy.conversation;threadObject.lastParticipantImage=!!message.participant&&message.participant.hasOwnProperty('image')?message.participant.image:'';threadObject.lastMessageVO=lastMessageVoCopy;threadObject.lastParticipantName=!!message.participant&&message.participant.hasOwnProperty('name')?message.participant.name:'';threadObject.lastMessage=message.hasOwnProperty('message')?message.message:'';_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_UNREAD_COUNT_UPDATED',result:{thread:threadObject,unreadCount:threadObject.unreadCount?threadObject.unreadCount:0}});var storeThread=_store.store.threads.get(threadObject.id);if(!storeThread){_store.store.threads.save(threadObject);storeThread=_store.store.threads.get(threadObject.id);}_store.store.threads.get(threadObject.id).unreadCount.set(threadObject.unreadCount?threadObject.unreadCount:0);_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
47109
47109
  // getThreads({
47110
47110
  // threadIds: [threadId]
47111
47111
  // }, function (threadsResult) {
@@ -47540,7 +47540,7 @@ content:content};/**
47540
47540
  */if(functionLevelCache&&canUseCache&&cacheSecret.length>0){if(db){var thenAble;if(Object.keys(whereClause).length===0){thenAble=db.threads.where('[owner+time]').between([chatMessaging.userInfo.id,minIntegerValue],[chatMessaging.userInfo.id,maxIntegerValue*1000]).reverse();}else{if(whereClause.hasOwnProperty('threadIds')){thenAble=db.threads.where('id').anyOf(whereClause.threadIds).and(function(thread){return thread.owner===chatMessaging.userInfo.id;});}if(whereClause.hasOwnProperty('name')){thenAble=db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).filter(function(thread){var reg=new RegExp(whereClause.name);return reg.test(chatDecrypt(thread.title,cacheSecret,thread.salt));});}if(whereClause.hasOwnProperty('creatorCoreUserId')){thenAble=db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).filter(function(thread){var threadObject=JSON.parse(chatDecrypt(thread.data,cacheSecret,thread.salt),false);return parseInt(threadObject.inviter.coreUserId)===parseInt(whereClause.creatorCoreUserId);});}}thenAble.offset(offset).limit(count).toArray().then(function(threads){db.threads.where('owner').equals(parseInt(chatMessaging.userInfo.id)).count().then(function(threadsCount){var cacheData=[];for(var i=0;i<threads.length;i++){try{cacheData.push(createThread(JSON.parse(chatDecrypt(threads[i].data,cacheSecret,threads[i].salt)),false));}catch(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});}}var returnData={hasError:false,cache:true,errorCode:0,errorMessage:'',result:{threads:cacheData,contentCount:threadsCount,hasNext:!(threads.length<count),nextOffset:offset*1+threads.length}};if(cacheData.length>0){callback&&callback(returnData);callback=undefined;returnCache=true;}});})["catch"](function(error){_events.chatEvents.fireEvent('error',{code:error.code,message:error.message,error:error});});}else{_events.chatEvents.fireEvent('error',{code:6601,message:CHAT_ERRORS[6601],error:null});}}/**
47541
47541
  * Retrive get threads response from server
47542
47542
  */return chatMessaging.sendMessage(sendMessageParams,{onResult:function onResult(result){var returnData={hasError:result.hasError,cache:false,errorMessage:result.errorMessage,errorCode:result.errorCode,uniqueId:result.uniqueId};if(!returnData.hasError){var messageContent=result.result,messageLength=messageContent.length,resultData={threads:[],contentCount:result.contentCount,hasNext:messageContent&&!(messageLength<count),//(offset + count < result.contentCount && messageLength > 0),
47543
- nextOffset:offset*1+messageLength*1},threadData;for(var i=0;i<messageLength;i++){threadData=createThread(messageContent[i],false);if(threadData){resultData.threads.push(threadData);}}returnData.result=resultData;/**
47543
+ nextOffset:offset*1+messageLength*1},threadData;for(var i=0;i<messageLength;i++){threadData=createThread(messageContent[i],false);if(threadData){resultData.threads.push(threadData);}}_store.store.threads.saveMany(resultData.threads);returnData.result=resultData;/**
47544
47544
  * Updating cache on separated worker to find and
47545
47545
  * delete all messages that have been deleted from
47546
47546
  * thread's last section
@@ -48715,11 +48715,11 @@ pc.onicecandidate=function(ice){//listen for candidate events
48715
48715
  if(promiseResolved||!ice||!ice.candidate||!ice.candidate.candidate||!(ice.candidate.candidate.indexOf('typ relay')>-1))return;promiseResolved=true;resolve(true);};});};publicized.getCustomerInfo=function(params,callback){var userId=params.userId||chatMessaging.userInfo.id,sendData={chatMessageVOType:_constants.chatMessageVOTypes.CUSTOMER_INFO,typeCode:generalTypeCode,//params.typeCode,
48716
48716
  content:[userId],token:token};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.archiveThread=function(_ref,callback){var threadId=_ref.threadId;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.ARCHIVE_THREAD,typeCode:generalTypeCode,//params.typeCode,
48717
48717
  token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.unArchiveThread=function(_ref2,callback){var threadId=_ref2.threadId;var sendData={chatMessageVOType:_constants.chatMessageVOTypes.UNARCHIVE_THREAD,typeCode:generalTypeCode,//params.typeCode,
48718
- token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.version=function(){console.log("%c[SDK] Version: podchat-browser@"+_buildConfig["default"].version,"color:green; font-size:13px");console.log("%c[SDK] Build date:"+_buildConfig["default"].date,"color:green;font-size:13px");console.log("%c[SDK] Additional info: "+_buildConfig["default"].VersionInfo,"color:green;font-size:13px");return _buildConfig["default"];};publicized.changeProtocol=function(){var proto=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"websocket";if(["webrtc","websocket"].includes(proto)){if(proto!=protocol){protocol=proto.toLowerCase();asyncClient.logout();initAsync();}else{console.warn("SDK is currently using the ".concat(proto," protocol. Nothing to do."));}}else{console.error("Protocol ".concat(proto," is not supported in SDK. Valid protocols: \"webrtc\", \"websocket\""));}};init();return publicized;}if(window){if(!window.POD){window.POD={};}window.POD.Chat=Chat;//For backward compatibility
48718
+ token:token,subjectId:threadId};return chatMessaging.sendMessage(sendData,{onResult:function onResult(result){callback&&callback(result);}});};publicized.version=function(){console.log("%c[SDK] Version: podchat-browser@"+_buildConfig["default"].version,"color:green; font-size:13px");console.log("%c[SDK] Build date:"+_buildConfig["default"].date,"color:green;font-size:13px");console.log("%c[SDK] Additional info: "+_buildConfig["default"].VersionInfo,"color:green;font-size:13px");return _buildConfig["default"];};publicized.changeProtocol=function(){var proto=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"websocket";if(["webrtc","websocket"].includes(proto)){if(proto!=protocol){protocol=proto.toLowerCase();asyncClient.logout();initAsync();}else{console.warn("SDK is currently using the ".concat(proto," protocol. Nothing to do."));}}else{console.error("Protocol ".concat(proto," is not supported in SDK. Valid protocols: \"webrtc\", \"websocket\""));}};_store.store.events.on(_store.store.threads.eventsList.UNREAD_COUNT_UPDATED,function(thread){_events.chatEvents.fireEvent('threadEvents',{type:'UNREAD_COUNT_UPDATED',result:{threadId:thread.id,unreadCount:thread.unreadCount||0}});});init();return publicized;}if(window){if(!window.POD){window.POD={};}window.POD.Chat=Chat;//For backward compatibility
48719
48719
  window.PodChat=Chat;}var _default=Chat;// })();
48720
48720
  exports["default"]=_default;
48721
48721
 
48722
- },{"./buildConfig.json":267,"./call.module":268,"./events.module":270,"./lib/call/deviceManager.js":271,"./lib/constants":272,"./messaging.module":274,"./utility/utility":275,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"dexie":125,"podasync-ws-only":209}],270:[function(require,module,exports){
48722
+ },{"./buildConfig.json":267,"./call.module":268,"./events.module":270,"./lib/call/deviceManager.js":271,"./lib/constants":272,"./lib/store":275,"./messaging.module":277,"./utility/utility":278,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/toConsumableArray":9,"@babel/runtime/helpers/typeof":10,"dexie":125,"podasync-ws-only":209}],270:[function(require,module,exports){
48723
48723
  "use strict";
48724
48724
 
48725
48725
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -48845,7 +48845,7 @@ function initEventHandler(params) {
48845
48845
  var _default = ChatEvents;
48846
48846
  exports["default"] = _default;
48847
48847
 
48848
- },{"./utility/utility":275,"@babel/runtime/helpers/interopRequireDefault":5}],271:[function(require,module,exports){
48848
+ },{"./utility/utility":278,"@babel/runtime/helpers/interopRequireDefault":5}],271:[function(require,module,exports){
48849
48849
  "use strict";
48850
48850
 
48851
48851
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -49596,6 +49596,228 @@ exports["default"] = _default;
49596
49596
 
49597
49597
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49598
49598
 
49599
+ Object.defineProperty(exports, "__esModule", {
49600
+ value: true
49601
+ });
49602
+ exports.storeEvents = void 0;
49603
+
49604
+ var _events = _interopRequireDefault(require("events"));
49605
+
49606
+ var Emitter = new _events["default"]();
49607
+ var storeEvents = {
49608
+ on: function on(eventName, callback) {
49609
+ Emitter.on(eventName, callback);
49610
+ },
49611
+ off: function off(eventName) {
49612
+ Emitter.off(eventName);
49613
+ },
49614
+ emit: function emit(eventName, data) {
49615
+ Emitter.emit(eventName, data);
49616
+ }
49617
+ };
49618
+ exports.storeEvents = storeEvents;
49619
+
49620
+ },{"@babel/runtime/helpers/interopRequireDefault":5,"events":149}],275:[function(require,module,exports){
49621
+ "use strict";
49622
+
49623
+ Object.defineProperty(exports, "__esModule", {
49624
+ value: true
49625
+ });
49626
+ exports.store = void 0;
49627
+
49628
+ var _threads = require("./threads");
49629
+
49630
+ var _eventEmitter = require("./eventEmitter");
49631
+
49632
+ var store = {
49633
+ threads: _threads.threadsList,
49634
+ events: _eventEmitter.storeEvents
49635
+ };
49636
+ exports.store = store;
49637
+
49638
+ },{"./eventEmitter":274,"./threads":276}],276:[function(require,module,exports){
49639
+ "use strict";
49640
+
49641
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49642
+
49643
+ Object.defineProperty(exports, "__esModule", {
49644
+ value: true
49645
+ });
49646
+ exports.threadsList = void 0;
49647
+
49648
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
49649
+
49650
+ var _eventEmitter = require("./eventEmitter");
49651
+
49652
+ function ownKeys(object, enumerableOnly) {
49653
+ var keys = Object.keys(object);
49654
+
49655
+ if (Object.getOwnPropertySymbols) {
49656
+ var symbols = Object.getOwnPropertySymbols(object);
49657
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
49658
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
49659
+ })), keys.push.apply(keys, symbols);
49660
+ }
49661
+
49662
+ return keys;
49663
+ }
49664
+
49665
+ function _objectSpread(target) {
49666
+ for (var i = 1; i < arguments.length; i++) {
49667
+ var source = null != arguments[i] ? arguments[i] : {};
49668
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
49669
+ (0, _defineProperty2["default"])(target, key, source[key]);
49670
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
49671
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49672
+ });
49673
+ }
49674
+
49675
+ return target;
49676
+ }
49677
+
49678
+ var list = [];
49679
+ var eventsList = {
49680
+ SINGLE_THREAD_UPDATE: "singleThreadUpdate",
49681
+ UNREAD_COUNT_UPDATED: 'unreadCountUpdated',
49682
+ LAST_SEEN_MESSAGE_TIME_UPDATED: 'lastSeenMessageTimeUpdated'
49683
+ };
49684
+ var threadsList = {
49685
+ eventsList: eventsList,
49686
+ get: function get(id) {
49687
+ return list[threadsList.findIndex(id)];
49688
+ },
49689
+ getAll: function getAll() {
49690
+ return list;
49691
+ },
49692
+ findIndex: function findIndex(threadId) {
49693
+ return list.findIndex(function (item) {
49694
+ return (item === null || item === void 0 ? void 0 : item.get().id) == threadId;
49695
+ });
49696
+ },
49697
+ save: function save(thread) {
49698
+ var localThread;
49699
+ var localThreadIndex = threadsList.findIndex(thread.id);
49700
+
49701
+ if (localThreadIndex > -1) {
49702
+ list[localThreadIndex].set(thread);
49703
+ localThread = list[localThreadIndex];
49704
+ } else {
49705
+ localThread = new ThreadObject(thread);
49706
+ list = [localThread].concat(list);
49707
+ }
49708
+
49709
+ _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, localThread.get());
49710
+ },
49711
+ saveMany: function saveMany(newThreads) {
49712
+ if (Array.isArray(newThreads)) {
49713
+ var nonExistingThreads = [];
49714
+
49715
+ for (var item in newThreads) {
49716
+ var localThreadIndex = threadsList.findIndex(newThreads[item].id);
49717
+
49718
+ if (localThreadIndex > -1) {
49719
+ list[localThreadIndex].set(newThreads[item]);
49720
+ } else {
49721
+ nonExistingThreads.push(new ThreadObject(newThreads[item]));
49722
+ }
49723
+ }
49724
+
49725
+ if (nonExistingThreads.length) {
49726
+ list = nonExistingThreads.concat(list);
49727
+ }
49728
+ }
49729
+ },
49730
+ remove: function remove(id) {
49731
+ var localThreadIndex = threadsList.findIndex(id);
49732
+
49733
+ if (localThreadIndex > -1) {
49734
+ delete list[localThreadIndex];
49735
+ }
49736
+ }
49737
+ };
49738
+ exports.threadsList = threadsList;
49739
+
49740
+ function ThreadObject(thread) {
49741
+ var config = {
49742
+ thread: thread,
49743
+ latestReceivedMessage: null
49744
+ };
49745
+
49746
+ function makeSureUnreadCountExists(thread) {
49747
+ if (!thread.unreadCount) {
49748
+ if (config.thread.unreadCount) thread.unreadCount = config.thread.unreadCount;else thread.unreadCount = 0;
49749
+ }
49750
+ }
49751
+
49752
+ makeSureUnreadCountExists(config.thread);
49753
+ return {
49754
+ set: function set(thread) {
49755
+ makeSureUnreadCountExists(thread);
49756
+ config.thread = _objectSpread(_objectSpread({}, config.thread), thread);
49757
+ },
49758
+ get: function get() {
49759
+ return config.thread;
49760
+ },
49761
+ update: function update(field, newValue) {
49762
+ config.thread[field] = newValue;
49763
+
49764
+ _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, config.thread);
49765
+ },
49766
+ unreadCount: {
49767
+ set: function set(count) {
49768
+ config.thread.unreadCount = count;
49769
+
49770
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49771
+ },
49772
+ get: function get() {
49773
+ return config.thread.unreadCount;
49774
+ },
49775
+ increase: function increase() {
49776
+ config.thread.unreadCount++;
49777
+
49778
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49779
+ },
49780
+ decrease: function decrease(time) {
49781
+ if (time > config.thread.lastSeenMessageTime && config.thread.unreadCount > 0) {
49782
+ config.thread.unreadCount--;
49783
+
49784
+ _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49785
+ }
49786
+ }
49787
+ },
49788
+ lastSeenMessageTime: {
49789
+ set: function set(number) {
49790
+ if (number > config.thread.lastSeenMessageTime) {
49791
+ config.thread.lastSeenMessageTime = number;
49792
+ }
49793
+ },
49794
+ get: function get() {
49795
+ return config.thread.lastSeenMessageTime;
49796
+ }
49797
+ },
49798
+
49799
+ /**
49800
+ * local helper to detect and always replace the correct lastMessageVO in thread
49801
+ */
49802
+ latestReceivedMessage: {
49803
+ getTime: function getTime() {
49804
+ return config.latestReceivedMessage ? config.latestReceivedMessage.time : 0;
49805
+ },
49806
+ get: function get() {
49807
+ return config.latestReceivedMessage;
49808
+ },
49809
+ set: function set(message) {
49810
+ config.latestReceivedMessage = message;
49811
+ }
49812
+ }
49813
+ };
49814
+ }
49815
+
49816
+ },{"./eventEmitter":274,"@babel/runtime/helpers/defineProperty":4,"@babel/runtime/helpers/interopRequireDefault":5}],277:[function(require,module,exports){
49817
+ "use strict";
49818
+
49819
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49820
+
49599
49821
  Object.defineProperty(exports, "__esModule", {
49600
49822
  value: true
49601
49823
  });
@@ -49947,7 +50169,7 @@ function ChatMessaging(params) {
49947
50169
  var _default = ChatMessaging;
49948
50170
  exports["default"] = _default;
49949
50171
 
49950
- },{"./lib/constants":272,"./lib/errorHandler":273,"./utility/utility":275,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/typeof":10,"dompurify":131}],275:[function(require,module,exports){
50172
+ },{"./lib/constants":272,"./lib/errorHandler":273,"./utility/utility":278,"@babel/runtime/helpers/interopRequireDefault":5,"@babel/runtime/helpers/typeof":10,"dompurify":131}],278:[function(require,module,exports){
49951
50173
  (function (global){(function (){
49952
50174
  "use strict";
49953
50175
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podchat-browser",
3
- "version": "12.7.2-snapshot.30",
3
+ "version": "12.7.2-snapshot.32",
4
4
  "description": "Javascript SDK to use POD's Chat Service - Browser Only",
5
5
  "main": "./dist/node/chat.js",
6
6
  "scripts": {
@@ -45,14 +45,14 @@
45
45
  },
46
46
  "homepage": "https://github.com/FanapSoft/pod-chat-browser-js-sdk#readme",
47
47
  "dependencies": {
48
- "crypto-js": "^4.0.0",
48
+ "crypto-js": "4.0.0",
49
49
  "dexie": "^2.0.4",
50
50
  "dompurify": "^2.3.3",
51
51
  "faker": "^5.5.3",
52
52
  "kurento-utils": "^6.16.0",
53
53
  "node-rsa": "^1.1.1",
54
54
  "webrtc-adapter": "^8.0.0",
55
- "podasync-ws-only": "^2.9.0-snapshot.4"
55
+ "podasync-ws-only": "2.9.0-snapshot.6"
56
56
  },
57
57
  "devDependencies": {
58
58
  "mocha": "^8.1.1",
@@ -1 +1 @@
1
- {"version":"12.7.2-snapshot.30","date":"۱۴۰۲/۲/۳۱","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.7.2-snapshot.32","date":"۱۴۰۲/۳/۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
package/src/chat.js CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  } from "./lib/constants";
22
22
 
23
23
  import deviceManager from "./lib/call/deviceManager.js";
24
+ import {store} from "./lib/store";
24
25
 
25
26
  function Chat(params) {
26
27
  /*******************************************************
@@ -2001,6 +2002,9 @@ function Chat(params) {
2001
2002
  chatMessaging.messagesCallbacks[uniqueId](Utility.createReturnData(false, '', 0, messageContent, contentCount));
2002
2003
  }
2003
2004
 
2005
+ let msgTime = (parseInt(parseInt(messageContent.time) / 1000) * 1000000000) + parseInt(messageContent.timeNanos);
2006
+ store.threads.get(threadId).unreadCount.decrease(msgTime);
2007
+
2004
2008
  if (messageContent.pinned) {
2005
2009
  unPinMessage({
2006
2010
  messageId: messageContent.id,
@@ -2169,6 +2173,10 @@ function Chat(params) {
2169
2173
  var threadObject = messageContent;
2170
2174
  threadObject.unreadCount = (messageContent.unreadCount) ? messageContent.unreadCount : 0;
2171
2175
 
2176
+ let localThreadLastSeenUpdated = JSON.parse(JSON.stringify(messageContent));
2177
+ store.threads.save(localThreadLastSeenUpdated);
2178
+ store.threads.get(threadId).unreadCount.set(localThreadLastSeenUpdated.unreadCount)
2179
+
2172
2180
  chatEvents.fireEvent('threadEvents', {
2173
2181
  type: 'THREAD_UNREAD_COUNT_UPDATED',
2174
2182
  result: {
@@ -2627,7 +2635,9 @@ function Chat(params) {
2627
2635
  * Type 66 Last Message Deleted
2628
2636
  */
2629
2637
  case chatMessageVOTypes.LAST_MESSAGE_DELETED:
2630
-
2638
+ delete messageContent.unreadCount;
2639
+ let threadOfDeletedMessage = formatDataToMakeConversation(messageContent);
2640
+ store.threads.save(threadOfDeletedMessage);
2631
2641
  new Promise((resolve, reject)=> {
2632
2642
  if (fullResponseObject) {
2633
2643
  getThreads({
@@ -3351,6 +3361,13 @@ function Chat(params) {
3351
3361
  }
3352
3362
  });
3353
3363
 
3364
+ let storeThread = store.threads.get(threadObject.id)
3365
+ if(!storeThread) {
3366
+ store.threads.save(threadObject);
3367
+ storeThread = store.threads.get(threadObject.id);
3368
+ }
3369
+ store.threads.get(threadObject.id).unreadCount.set((threadObject.unreadCount) ? threadObject.unreadCount : 0)
3370
+
3354
3371
  chatEvents.fireEvent('threadEvents', {
3355
3372
  type: 'THREAD_LAST_ACTIVITY_TIME',
3356
3373
  result: {
@@ -4592,6 +4609,7 @@ function Chat(params) {
4592
4609
  }
4593
4610
  }
4594
4611
 
4612
+ store.threads.saveMany(resultData.threads);
4595
4613
  returnData.result = resultData;
4596
4614
 
4597
4615
  /**
@@ -14255,6 +14273,16 @@ function Chat(params) {
14255
14273
  }
14256
14274
  }
14257
14275
 
14276
+ store.events.on(store.threads.eventsList.UNREAD_COUNT_UPDATED, (thread) => {
14277
+ chatEvents.fireEvent('threadEvents', {
14278
+ type: 'UNREAD_COUNT_UPDATED',
14279
+ result: {
14280
+ threadId: thread.id,
14281
+ unreadCount: thread.unreadCount || 0
14282
+ }
14283
+ });
14284
+ });
14285
+
14258
14286
  init();
14259
14287
 
14260
14288
  return publicized;
@@ -0,0 +1,16 @@
1
+ import EventEmitter from "events";
2
+ const Emitter = new EventEmitter();
3
+
4
+ const storeEvents = {
5
+ on(eventName, callback) {
6
+ Emitter.on(eventName, callback)
7
+ },
8
+ off(eventName) {
9
+ Emitter.off(eventName);
10
+ },
11
+ emit(eventName, data) {
12
+ Emitter.emit(eventName, data);
13
+ }
14
+ }
15
+
16
+ export {storeEvents}
@@ -0,0 +1,9 @@
1
+ import {threadsList} from "./threads";
2
+ import {storeEvents} from "./eventEmitter";
3
+
4
+ let store = {
5
+ threads: threadsList,
6
+ events: storeEvents
7
+ };
8
+
9
+ export {store}
@@ -0,0 +1,134 @@
1
+ import {storeEvents} from "./eventEmitter";
2
+
3
+ let list = [];
4
+ const eventsList = {
5
+ SINGLE_THREAD_UPDATE: "singleThreadUpdate",
6
+ UNREAD_COUNT_UPDATED: 'unreadCountUpdated',
7
+ LAST_SEEN_MESSAGE_TIME_UPDATED: 'lastSeenMessageTimeUpdated',
8
+ }
9
+
10
+ const threadsList = {
11
+ eventsList,
12
+ get(id) {
13
+ return list[threadsList.findIndex(id)];
14
+ },
15
+ getAll() {
16
+ return list;
17
+ },
18
+ findIndex(threadId) {
19
+ return list.findIndex(item => item?.get().id == threadId);
20
+ },
21
+ save(thread) {
22
+ let localThread;
23
+ let localThreadIndex = threadsList.findIndex(thread.id);
24
+ if (localThreadIndex > -1) {
25
+ list[localThreadIndex].set(thread)
26
+ localThread = list[localThreadIndex];
27
+ } else {
28
+ localThread = new ThreadObject(thread);
29
+ list = [localThread].concat(list);
30
+
31
+ }
32
+ storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, localThread.get());
33
+ },
34
+ saveMany(newThreads) {
35
+ if (Array.isArray(newThreads)) {
36
+ let nonExistingThreads = [];
37
+ for (let item in newThreads) {
38
+ let localThreadIndex = threadsList.findIndex(newThreads[item].id);
39
+ if (localThreadIndex > -1) {
40
+ list[localThreadIndex].set(newThreads[item]);
41
+ } else {
42
+ nonExistingThreads.push(new ThreadObject(newThreads[item]));
43
+ }
44
+ }
45
+ if (nonExistingThreads.length) {
46
+ list = nonExistingThreads.concat(list);
47
+ }
48
+ }
49
+ },
50
+ remove(id) {
51
+ let localThreadIndex = threadsList.findIndex(id);
52
+ if(localThreadIndex > -1) {
53
+ delete list[localThreadIndex];
54
+ }
55
+ }
56
+ }
57
+
58
+ function ThreadObject(thread) {
59
+ let config = {
60
+ thread,
61
+ latestReceivedMessage: null
62
+ };
63
+
64
+
65
+ function makeSureUnreadCountExists(thread){
66
+ if(!thread.unreadCount){
67
+ if(config.thread.unreadCount)
68
+ thread.unreadCount = config.thread.unreadCount;
69
+ else
70
+ thread.unreadCount = 0;
71
+ }
72
+ }
73
+
74
+ makeSureUnreadCountExists(config.thread);
75
+
76
+ return {
77
+ set(thread) {
78
+ makeSureUnreadCountExists(thread)
79
+ config.thread = {...config.thread, ...thread}
80
+ },
81
+ get() {
82
+ return config.thread;
83
+ },
84
+ update(field, newValue) {
85
+ config.thread[field] = newValue;
86
+ storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, config.thread)
87
+ },
88
+ unreadCount: {
89
+ set(count) {
90
+ config.thread.unreadCount = count;
91
+ storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
92
+ },
93
+ get() {
94
+ return config.thread.unreadCount;
95
+ },
96
+ increase() {
97
+ config.thread.unreadCount++;
98
+ storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
99
+ },
100
+ decrease(time) {
101
+ if (time > config.thread.lastSeenMessageTime && config.thread.unreadCount > 0) {
102
+ config.thread.unreadCount--;
103
+ storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
104
+ }
105
+ }
106
+ },
107
+ lastSeenMessageTime: {
108
+ set(number) {
109
+ if(number > config.thread.lastSeenMessageTime) {
110
+ config.thread.lastSeenMessageTime = number;
111
+ }
112
+ },
113
+ get() {
114
+ return config.thread.lastSeenMessageTime
115
+ }
116
+ },
117
+ /**
118
+ * local helper to detect and always replace the correct lastMessageVO in thread
119
+ */
120
+ latestReceivedMessage: {
121
+ getTime() {
122
+ return (config.latestReceivedMessage ? config.latestReceivedMessage.time : 0)
123
+ },
124
+ get(){
125
+ return config.latestReceivedMessage
126
+ },
127
+ set(message) {
128
+ config.latestReceivedMessage = message
129
+ }
130
+ }
131
+ };
132
+ }
133
+
134
+ export {threadsList}