podchat-browser 12.7.2-snapshot.34 → 12.7.2-snapshot.35

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,28 +5,6 @@ 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
-
30
8
  ## [12.7.2-snapshot.0] - 2022-11-01
31
9
  ### Added
32
10
  - Added possibility to accept incoming call while user is in an existing call
@@ -1 +1 @@
1
- {"version":"12.7.2-snapshot.34","date":"۱۴۰۲/۳/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.7.2-snapshot.35","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"));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){/*******************************************************
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){/*******************************************************
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));}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});}/**
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});}/**
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;var localThreadLastSeenUpdated=JSON.parse(JSON.stringify(messageContent));_store.store.threads.save(localThreadLastSeenUpdated);_store.store.threads.get(threadId).unreadCount.set(messageContent.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) {
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) {
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: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;/**
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;/**
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,8 +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}});var storeThread=_store.store.threads.get(threadObject.id);if(!storeThread){_store.store.threads.save(threadObject);storeThread=_store.store.threads.get(threadObject.id);}var unreadCount=message.conversation.unreadCount;// store.threads.get(threadObject.id).unreadCount.set();
571
- if(message.ownerId!=chatMessaging.userInfo.id){if(unreadCount){storeThread.unreadCount.set(unreadCount);}else{if(!storeThread.unreadCount.get())storeThread.unreadCount.set(1);else storeThread.unreadCount.increase();}}else{storeThread.unreadCount.set(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}});_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
572
571
  // getThreads({
573
572
  // threadIds: [threadId]
574
573
  // }, function (threadsResult) {
@@ -931,7 +930,7 @@ return JSON.parse(JSON.stringify(message));},/**
931
930
  * - sender {int}
932
931
  * - text {string}
933
932
  * - notifyAll {boolean}
934
- */var pinMessage={threadId:threadId,time:pushMessageVO.time,sender:pushMessageVO.sender,messageId:pushMessageVO.messageId,text:pushMessageVO.text,metadata:pushMessageVO.metadata,systemMetadata:pushMessageVO.systemMetadata};if(typeof pushMessageVO.notifyAll==='boolean'){pinMessage.notifyAll=pushMessageVO.notifyAll;}// return pinMessage;
933
+ */var pinMessage={threadId:threadId,time:pushMessageVO.time,sender:pushMessageVO.sender,messageId:pushMessageVO.messageId,text:pushMessageVO.text};if(typeof pushMessageVO.notifyAll==='boolean'){pinMessage.notifyAll=pushMessageVO.notifyAll;}// return pinMessage;
935
934
  return JSON.parse(JSON.stringify(pinMessage));},/**
936
935
  * Reformat Thread History
937
936
  *
@@ -1003,7 +1002,7 @@ content:content};/**
1003
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});}}/**
1004
1003
  * Retrive get threads response from server
1005
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),
1006
- 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;/**
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;/**
1007
1006
  * Updating cache on separated worker to find and
1008
1007
  * delete all messages that have been deleted from
1009
1008
  * thread's last section
@@ -2178,6 +2177,6 @@ pc.onicecandidate=function(ice){//listen for candidate events
2178
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,
2179
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,
2180
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,
2181
- 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
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
2182
2181
  window.PodChat=Chat;}var _default=Chat;// })();
2183
2182
  exports["default"]=_default;
@@ -39064,7 +39064,8 @@ module.exports = function (thing, encoding, name) {
39064
39064
  message: {},
39065
39065
  asyncReady: {},
39066
39066
  stateChange: {},
39067
- error: {}
39067
+ error: {},
39068
+ msgLogs: {}
39068
39069
  },
39069
39070
  ackCallback = {},
39070
39071
  socket,
@@ -39419,6 +39420,11 @@ module.exports = function (thing, encoding, name) {
39419
39420
  });
39420
39421
  },
39421
39422
  handleSocketMessage = function (msg) {
39423
+ fireEvent("msgLogs", {
39424
+ msg,
39425
+ direction: "receive",
39426
+ time: new Date().getTime()
39427
+ });
39422
39428
  var ack;
39423
39429
  if (msg.type === asyncMessageType.MESSAGE_ACK_NEEDED || msg.type === asyncMessageType.MESSAGE_SENDER_ACK_NEEDED) {
39424
39430
  ack = function () {
@@ -39613,6 +39619,11 @@ module.exports = function (thing, encoding, name) {
39613
39619
  }
39614
39620
  },
39615
39621
  pushSendData = function (msg) {
39622
+ fireEvent("msgLogs", {
39623
+ msg,
39624
+ direction: "send",
39625
+ time: new Date().getTime()
39626
+ });
39616
39627
  if (onSendLogging) {
39617
39628
  asyncLogger('Send', msg);
39618
39629
  }
@@ -39735,7 +39746,7 @@ module.exports = function (thing, encoding, name) {
39735
39746
  peerId: peerId
39736
39747
  });
39737
39748
  socketReconnectRetryInterval && clearTimeout(socketReconnectRetryInterval);
39738
- socket.close();
39749
+ socket && socket.close();
39739
39750
  break;
39740
39751
  case 'webrtc':
39741
39752
  socketState = socketStateType.CLOSED;
@@ -39747,7 +39758,7 @@ module.exports = function (thing, encoding, name) {
39747
39758
  peerId: peerId
39748
39759
  });
39749
39760
  socketReconnectRetryInterval && clearTimeout(socketReconnectRetryInterval);
39750
- webRTCClass.close();
39761
+ webRTCClass && webRTCClass.close();
39751
39762
  break;
39752
39763
  }
39753
39764
  };
@@ -39774,7 +39785,7 @@ module.exports = function (thing, encoding, name) {
39774
39785
  reconnOnClose.set(false);
39775
39786
  // reconnectOnClose = false;
39776
39787
 
39777
- socket.close();
39788
+ socket && socket.close();
39778
39789
  break;
39779
39790
  case 'webrtc':
39780
39791
  socketState = socketStateType.CLOSED;
@@ -39787,7 +39798,7 @@ module.exports = function (thing, encoding, name) {
39787
39798
  });
39788
39799
  reconnOnClose.set(false);
39789
39800
  // reconnectOnClose = false;
39790
- webRTCClass.close();
39801
+ webRTCClass && webRTCClass.close();
39791
39802
  break;
39792
39803
  }
39793
39804
  };
@@ -39806,7 +39817,7 @@ module.exports = function (thing, encoding, name) {
39806
39817
  peerId: peerId
39807
39818
  });
39808
39819
  socketReconnectRetryInterval && clearTimeout(socketReconnectRetryInterval);
39809
- if (protocol === "websocket") socket.close();else if (protocol == "webrtc") webRTCClass.close();
39820
+ if (protocol === "websocket") socket && socket.close();else if (protocol == "webrtc") webRTCClass && webRTCClass.close();
39810
39821
 
39811
39822
  // let tmpReconnectOnClose = reconnectOnClose;
39812
39823
  // reconnectOnClose = false;
@@ -40306,12 +40317,14 @@ let dataChannelCallbacks = {
40306
40317
  },
40307
40318
  onmessage: function (event) {
40308
40319
  variables.pingController.resetPingLoop();
40309
- var messageData = JSON.parse(event.data);
40310
- console.log("[Async][WebRTC] Receive ", event.data);
40311
- eventCallback["message"](messageData);
40320
+ decompressResponse(event.data).then(result => {
40321
+ var messageData = JSON.parse(result);
40322
+ console.log("[Async][WebRTC] Receive ", result);
40323
+ eventCallback["message"](messageData);
40324
+ });
40312
40325
  },
40313
40326
  onerror: function (error) {
40314
- logLevel.debug && console.debug("[Async][Socket.js] dataChannel.onerror happened. EventData:", event);
40327
+ defaultConfig.logLevel.debug && console.debug("[Async][Socket.js] dataChannel.onerror happened. EventData:", event);
40315
40328
  eventCallback["error"](event);
40316
40329
  },
40317
40330
  onclose: function (event) {
@@ -40442,9 +40455,9 @@ function resetVariables() {
40442
40455
  console.log("resetVariables");
40443
40456
  eventCallback["close"]();
40444
40457
  variables.pingController.stopPingLoop();
40445
- variables.dataChannel.close();
40458
+ variables.dataChannel && variables.dataChannel.close();
40446
40459
  variables.dataChannel = null;
40447
- variables.peerConnection.close();
40460
+ variables.peerConnection && variables.peerConnection.close();
40448
40461
  variables.peerConnection = null;
40449
40462
  variables.candidatesQueue = [];
40450
40463
  variables.clientId = null;
@@ -40492,6 +40505,59 @@ let publicized = {
40492
40505
  resetVariables();
40493
40506
  }
40494
40507
  };
40508
+
40509
+ /**
40510
+ * Decompress results
40511
+ */
40512
+ function decompress(byteArray, encoding) {
40513
+ const cs = new DecompressionStream(encoding);
40514
+ const writer = cs.writable.getWriter();
40515
+ writer.write(byteArray);
40516
+ writer.close();
40517
+ return new Response(cs.readable).arrayBuffer().then(function (arrayBuffer) {
40518
+ return new TextDecoder().decode(arrayBuffer);
40519
+ });
40520
+ }
40521
+ async function decompressResponse(compressedData) {
40522
+ return await decompress(_base64UrlToArrayBuffer(compressedData), 'gzip');
40523
+ }
40524
+
40525
+ //utility
40526
+
40527
+ /**
40528
+ * Array buffer to base64Url string
40529
+ * - arrBuff->byte[]->biStr->b64->b64u
40530
+ * @param arrayBuffer
40531
+ * @returns {string}
40532
+ * @private
40533
+ */
40534
+ function _arrayBufferToBase64Url(arrayBuffer) {
40535
+ console.log('base64Url from array buffer:', arrayBuffer);
40536
+ let base64Url = window.btoa(String.fromCodePoint(...new Uint8Array(arrayBuffer)));
40537
+ base64Url = base64Url.replaceAll('+', '-');
40538
+ base64Url = base64Url.replaceAll('/', '_');
40539
+ console.log('base64Url:', base64Url);
40540
+ return base64Url;
40541
+ }
40542
+
40543
+ /**
40544
+ * Base64Url string to array buffer
40545
+ * - b64u->b64->biStr->byte[]->arrBuff
40546
+ * @param base64Url
40547
+ * @returns {ArrayBufferLike}
40548
+ * @private
40549
+ */
40550
+ function _base64UrlToArrayBuffer(base64) {
40551
+ console.log('array buffer from base64Url:', base64);
40552
+ const binaryString = window.atob(base64);
40553
+ const length = binaryString.length;
40554
+ const bytes = new Uint8Array(length);
40555
+ for (let i = 0; i < length; i++) {
40556
+ bytes[i] = binaryString.charCodeAt(i);
40557
+ }
40558
+ console.log('array buffer:', bytes.buffer);
40559
+ return bytes.buffer;
40560
+ }
40495
40561
  module.exports = WebRTCClass;
40496
40562
  },{}],212:[function(require,module,exports){
40497
40563
  function LogLevel(logLevel) {
@@ -45793,7 +45859,7 @@ WildEmitter.mixin = function (constructor) {
45793
45859
  WildEmitter.mixin(WildEmitter);
45794
45860
 
45795
45861
  },{}],267:[function(require,module,exports){
45796
- module.exports={"version":"12.7.2-snapshot.34","date":"۱۴۰۲/۳/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
45862
+ module.exports={"version":"12.7.2-snapshot.35","date":"۱۴۰۲/۳/۲۰","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
45797
45863
  },{}],268:[function(require,module,exports){
45798
45864
  "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
45865
  currentModuleInstance=this,asyncClient=params.asyncClient,//chatEvents = params.chatEvents,
@@ -46535,8 +46601,8 @@ invitees.forEach(function(item){item.idType=_constants.inviteeVOidTypes[item.idT
46535
46601
  }
46536
46602
  }*/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
46603
 
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){/*******************************************************
46604
+ },{"./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){
46605
+ '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){/*******************************************************
46540
46606
  * P R I V A T E V A R I A B L E S *
46541
46607
  *******************************************************/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
46608
  SSO_DEVICES:'/oauth2/grants/devices',SSO_GENERATE_KEY:'/handshake/users/',SSO_GET_KEY:'/handshake/keys/',// Contacts
@@ -46855,7 +46921,7 @@ sendMessageCallbacksHandler(_constants.chatMessageVOTypes.DELIVERY,threadId,uniq
46855
46921
  * Type 28 Edit Message
46856
46922
  */case _constants.chatMessageVOTypes.EDIT_MESSAGE:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}chatEditMessageHandler(threadId,messageContent);break;/**
46857
46923
  * Type 29 Delete Message
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});}/**
46924
+ */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});}/**
46859
46925
  * Remove Message from cache
46860
46926
  */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
46927
  * Type 30 Thread Info Updated
@@ -46908,7 +46974,7 @@ var thread=formatDataToMakeConversation(messageContent);/**
46908
46974
  // }
46909
46975
  _events.chatEvents.fireEvent('threadEvents',{type:'THREAD_INFO_UPDATED',result:{thread:thread}});break;/**
46910
46976
  * Type 31 Thread Last Seen Updated
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(messageContent.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) {
46977
+ */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) {
46912
46978
  // getThreads({
46913
46979
  // threadIds: [messageContent.id]
46914
46980
  // }, function (threadsResult) {
@@ -46997,7 +47063,7 @@ break;/**
46997
47063
  * Type 65 Stop Bot
46998
47064
  */case _constants.chatMessageVOTypes.STOP_BOT:if(chatMessaging.messagesCallbacks[uniqueId]){chatMessaging.messagesCallbacks[uniqueId](_utility["default"].createReturnData(false,'',0,messageContent,contentCount));}break;/**
46999
47065
  * Type 66 Last Message Deleted
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;/**
47066
+ */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;/**
47001
47067
  * Type 67 Last Message Edited
47002
47068
  */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
47069
  * Type 68 Get Bot Commands List
@@ -47105,8 +47171,7 @@ break;/**
47105
47171
  */if(canUseCache&&cacheSecret.length>0){if(db){/**
47106
47172
  * Insert new messages into cache database
47107
47173
  * 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}});var storeThread=_store.store.threads.get(threadObject.id);if(!storeThread){_store.store.threads.save(threadObject);storeThread=_store.store.threads.get(threadObject.id);}var unreadCount=message.conversation.unreadCount;// store.threads.get(threadObject.id).unreadCount.set();
47109
- if(message.ownerId!=chatMessaging.userInfo.id){if(unreadCount){storeThread.unreadCount.set(unreadCount);}else{if(!storeThread.unreadCount.get())storeThread.unreadCount.set(1);else storeThread.unreadCount.increase();}}else{storeThread.unreadCount.set(0);}_events.chatEvents.fireEvent('threadEvents',{type:'THREAD_LAST_ACTIVITY_TIME',result:{thread:threadObject}});// if (fullResponseObject) {
47174
+ */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) {
47110
47175
  // getThreads({
47111
47176
  // threadIds: [threadId]
47112
47177
  // }, function (threadsResult) {
@@ -47469,7 +47534,7 @@ return JSON.parse(JSON.stringify(message));},/**
47469
47534
  * - sender {int}
47470
47535
  * - text {string}
47471
47536
  * - notifyAll {boolean}
47472
- */var pinMessage={threadId:threadId,time:pushMessageVO.time,sender:pushMessageVO.sender,messageId:pushMessageVO.messageId,text:pushMessageVO.text,metadata:pushMessageVO.metadata,systemMetadata:pushMessageVO.systemMetadata};if(typeof pushMessageVO.notifyAll==='boolean'){pinMessage.notifyAll=pushMessageVO.notifyAll;}// return pinMessage;
47537
+ */var pinMessage={threadId:threadId,time:pushMessageVO.time,sender:pushMessageVO.sender,messageId:pushMessageVO.messageId,text:pushMessageVO.text};if(typeof pushMessageVO.notifyAll==='boolean'){pinMessage.notifyAll=pushMessageVO.notifyAll;}// return pinMessage;
47473
47538
  return JSON.parse(JSON.stringify(pinMessage));},/**
47474
47539
  * Reformat Thread History
47475
47540
  *
@@ -47541,7 +47606,7 @@ content:content};/**
47541
47606
  */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});}}/**
47542
47607
  * Retrive get threads response from server
47543
47608
  */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),
47544
- 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;/**
47609
+ 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;/**
47545
47610
  * Updating cache on separated worker to find and
47546
47611
  * delete all messages that have been deleted from
47547
47612
  * thread's last section
@@ -48716,11 +48781,11 @@ pc.onicecandidate=function(ice){//listen for candidate events
48716
48781
  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,
48717
48782
  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,
48718
48783
  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,
48719
- 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
48784
+ 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
48720
48785
  window.PodChat=Chat;}var _default=Chat;// })();
48721
48786
  exports["default"]=_default;
48722
48787
 
48723
- },{"./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){
48788
+ },{"./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){
48724
48789
  "use strict";
48725
48790
 
48726
48791
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -48846,7 +48911,7 @@ function initEventHandler(params) {
48846
48911
  var _default = ChatEvents;
48847
48912
  exports["default"] = _default;
48848
48913
 
48849
- },{"./utility/utility":278,"@babel/runtime/helpers/interopRequireDefault":5}],271:[function(require,module,exports){
48914
+ },{"./utility/utility":275,"@babel/runtime/helpers/interopRequireDefault":5}],271:[function(require,module,exports){
48850
48915
  "use strict";
48851
48916
 
48852
48917
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -49597,228 +49662,6 @@ exports["default"] = _default;
49597
49662
 
49598
49663
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49599
49664
 
49600
- Object.defineProperty(exports, "__esModule", {
49601
- value: true
49602
- });
49603
- exports.storeEvents = void 0;
49604
-
49605
- var _events = _interopRequireDefault(require("events"));
49606
-
49607
- var Emitter = new _events["default"]();
49608
- var storeEvents = {
49609
- on: function on(eventName, callback) {
49610
- Emitter.on(eventName, callback);
49611
- },
49612
- off: function off(eventName) {
49613
- Emitter.off(eventName);
49614
- },
49615
- emit: function emit(eventName, data) {
49616
- Emitter.emit(eventName, data);
49617
- }
49618
- };
49619
- exports.storeEvents = storeEvents;
49620
-
49621
- },{"@babel/runtime/helpers/interopRequireDefault":5,"events":149}],275:[function(require,module,exports){
49622
- "use strict";
49623
-
49624
- Object.defineProperty(exports, "__esModule", {
49625
- value: true
49626
- });
49627
- exports.store = void 0;
49628
-
49629
- var _threads = require("./threads");
49630
-
49631
- var _eventEmitter = require("./eventEmitter");
49632
-
49633
- var store = {
49634
- threads: _threads.threadsList,
49635
- events: _eventEmitter.storeEvents
49636
- };
49637
- exports.store = store;
49638
-
49639
- },{"./eventEmitter":274,"./threads":276}],276:[function(require,module,exports){
49640
- "use strict";
49641
-
49642
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49643
-
49644
- Object.defineProperty(exports, "__esModule", {
49645
- value: true
49646
- });
49647
- exports.threadsList = void 0;
49648
-
49649
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
49650
-
49651
- var _eventEmitter = require("./eventEmitter");
49652
-
49653
- function ownKeys(object, enumerableOnly) {
49654
- var keys = Object.keys(object);
49655
-
49656
- if (Object.getOwnPropertySymbols) {
49657
- var symbols = Object.getOwnPropertySymbols(object);
49658
- enumerableOnly && (symbols = symbols.filter(function (sym) {
49659
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
49660
- })), keys.push.apply(keys, symbols);
49661
- }
49662
-
49663
- return keys;
49664
- }
49665
-
49666
- function _objectSpread(target) {
49667
- for (var i = 1; i < arguments.length; i++) {
49668
- var source = null != arguments[i] ? arguments[i] : {};
49669
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
49670
- (0, _defineProperty2["default"])(target, key, source[key]);
49671
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
49672
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49673
- });
49674
- }
49675
-
49676
- return target;
49677
- }
49678
-
49679
- var list = [];
49680
- var eventsList = {
49681
- SINGLE_THREAD_UPDATE: "singleThreadUpdate",
49682
- UNREAD_COUNT_UPDATED: 'unreadCountUpdated',
49683
- LAST_SEEN_MESSAGE_TIME_UPDATED: 'lastSeenMessageTimeUpdated'
49684
- };
49685
- var threadsList = {
49686
- eventsList: eventsList,
49687
- get: function get(id) {
49688
- return list[threadsList.findIndex(id)];
49689
- },
49690
- getAll: function getAll() {
49691
- return list;
49692
- },
49693
- findIndex: function findIndex(threadId) {
49694
- return list.findIndex(function (item) {
49695
- return (item === null || item === void 0 ? void 0 : item.get().id) == threadId;
49696
- });
49697
- },
49698
- save: function save(thread) {
49699
- var localThread;
49700
- var localThreadIndex = threadsList.findIndex(thread.id);
49701
-
49702
- if (localThreadIndex > -1) {
49703
- list[localThreadIndex].set(thread);
49704
- localThread = list[localThreadIndex];
49705
- } else {
49706
- localThread = new ThreadObject(thread);
49707
- list = [localThread].concat(list);
49708
- }
49709
-
49710
- _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, localThread.get());
49711
- },
49712
- saveMany: function saveMany(newThreads) {
49713
- if (Array.isArray(newThreads)) {
49714
- var nonExistingThreads = [];
49715
-
49716
- for (var item in newThreads) {
49717
- var localThreadIndex = threadsList.findIndex(newThreads[item].id);
49718
-
49719
- if (localThreadIndex > -1) {
49720
- list[localThreadIndex].set(newThreads[item]);
49721
- } else {
49722
- nonExistingThreads.push(new ThreadObject(newThreads[item]));
49723
- }
49724
- }
49725
-
49726
- if (nonExistingThreads.length) {
49727
- list = nonExistingThreads.concat(list);
49728
- }
49729
- }
49730
- },
49731
- remove: function remove(id) {
49732
- var localThreadIndex = threadsList.findIndex(id);
49733
-
49734
- if (localThreadIndex > -1) {
49735
- delete list[localThreadIndex];
49736
- }
49737
- }
49738
- };
49739
- exports.threadsList = threadsList;
49740
-
49741
- function ThreadObject(thread) {
49742
- var config = {
49743
- thread: thread,
49744
- latestReceivedMessage: null
49745
- };
49746
-
49747
- function makeSureUnreadCountExists(thread) {
49748
- if (!thread.unreadCount) {
49749
- if (config.thread.unreadCount) thread.unreadCount = config.thread.unreadCount;else thread.unreadCount = 0;
49750
- }
49751
- }
49752
-
49753
- makeSureUnreadCountExists(config.thread);
49754
- return {
49755
- set: function set(thread) {
49756
- makeSureUnreadCountExists(thread);
49757
- config.thread = _objectSpread(_objectSpread({}, config.thread), thread);
49758
- },
49759
- get: function get() {
49760
- return config.thread;
49761
- },
49762
- update: function update(field, newValue) {
49763
- config.thread[field] = newValue;
49764
-
49765
- _eventEmitter.storeEvents.emit(eventsList.SINGLE_THREAD_UPDATE, config.thread);
49766
- },
49767
- unreadCount: {
49768
- set: function set(count) {
49769
- config.thread.unreadCount = count;
49770
-
49771
- _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49772
- },
49773
- get: function get() {
49774
- return config.thread.unreadCount;
49775
- },
49776
- increase: function increase() {
49777
- config.thread.unreadCount++;
49778
-
49779
- _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49780
- },
49781
- decrease: function decrease(time) {
49782
- if (time > config.thread.lastSeenMessageTime && config.thread.unreadCount > 0) {
49783
- config.thread.unreadCount--;
49784
-
49785
- _eventEmitter.storeEvents.emit(eventsList.UNREAD_COUNT_UPDATED, config.thread);
49786
- }
49787
- }
49788
- },
49789
- lastSeenMessageTime: {
49790
- set: function set(number) {
49791
- if (number > config.thread.lastSeenMessageTime) {
49792
- config.thread.lastSeenMessageTime = number;
49793
- }
49794
- },
49795
- get: function get() {
49796
- return config.thread.lastSeenMessageTime;
49797
- }
49798
- },
49799
-
49800
- /**
49801
- * local helper to detect and always replace the correct lastMessageVO in thread
49802
- */
49803
- latestReceivedMessage: {
49804
- getTime: function getTime() {
49805
- return config.latestReceivedMessage ? config.latestReceivedMessage.time : 0;
49806
- },
49807
- get: function get() {
49808
- return config.latestReceivedMessage;
49809
- },
49810
- set: function set(message) {
49811
- config.latestReceivedMessage = message;
49812
- }
49813
- }
49814
- };
49815
- }
49816
-
49817
- },{"./eventEmitter":274,"@babel/runtime/helpers/defineProperty":4,"@babel/runtime/helpers/interopRequireDefault":5}],277:[function(require,module,exports){
49818
- "use strict";
49819
-
49820
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
49821
-
49822
49665
  Object.defineProperty(exports, "__esModule", {
49823
49666
  value: true
49824
49667
  });
@@ -50170,7 +50013,7 @@ function ChatMessaging(params) {
50170
50013
  var _default = ChatMessaging;
50171
50014
  exports["default"] = _default;
50172
50015
 
50173
- },{"./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){
50016
+ },{"./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){
50174
50017
  (function (global){(function (){
50175
50018
  "use strict";
50176
50019
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podchat-browser",
3
- "version": "12.7.2-snapshot.34",
3
+ "version": "12.7.2-snapshot.35",
4
4
  "description": "Javascript SDK to use POD's Chat Service - Browser Only",
5
5
  "main": "./dist/node/chat.js",
6
6
  "scripts": {
@@ -45,24 +45,24 @@
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
- "webrtc-adapter": "^8.0.0",
55
- "podasync-ws-only": "2.9.0-snapshot.6"
54
+ "podasync-ws-only": "2.9.0-snapshot.7",
55
+ "webrtc-adapter": "^8.0.0"
56
56
  },
57
57
  "devDependencies": {
58
- "mocha": "^8.1.1",
59
58
  "@babel/cli": "^7.17.6",
60
59
  "@babel/core": "^7.17.9",
61
60
  "@babel/plugin-transform-runtime": "^7.17.10",
62
61
  "@babel/preset-env": "^7.16.11",
63
62
  "babelify": "^10.0.0",
64
- "watchify": "^4.0.0",
65
- "npm-watch": "^0.11.0"
63
+ "mocha": "^8.1.1",
64
+ "npm-watch": "^0.11.0",
65
+ "watchify": "^4.0.0"
66
66
  },
67
67
  "directories": {
68
68
  "example": "examples",
@@ -1 +1 @@
1
- {"version":"12.7.2-snapshot.34","date":"۱۴۰۲/۳/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.7.2-snapshot.35","date":"۱۴۰۲/۳/۲۰","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
package/src/chat.js CHANGED
@@ -21,7 +21,6 @@ import {
21
21
  } from "./lib/constants";
22
22
 
23
23
  import deviceManager from "./lib/call/deviceManager.js";
24
- import {store} from "./lib/store";
25
24
 
26
25
  function Chat(params) {
27
26
  /*******************************************************
@@ -2002,9 +2001,6 @@ function Chat(params) {
2002
2001
  chatMessaging.messagesCallbacks[uniqueId](Utility.createReturnData(false, '', 0, messageContent, contentCount));
2003
2002
  }
2004
2003
 
2005
- let msgTime = (parseInt(parseInt(messageContent.time) / 1000) * 1000000000) + parseInt(messageContent.timeNanos);
2006
- store.threads.get(threadId).unreadCount.decrease(msgTime);
2007
-
2008
2004
  if (messageContent.pinned) {
2009
2005
  unPinMessage({
2010
2006
  messageId: messageContent.id,
@@ -2173,10 +2169,6 @@ function Chat(params) {
2173
2169
  var threadObject = messageContent;
2174
2170
  threadObject.unreadCount = (messageContent.unreadCount) ? messageContent.unreadCount : 0;
2175
2171
 
2176
- let localThreadLastSeenUpdated = JSON.parse(JSON.stringify(messageContent));
2177
- store.threads.save(localThreadLastSeenUpdated);
2178
- store.threads.get(threadId).unreadCount.set(messageContent.unreadCount)
2179
-
2180
2172
  chatEvents.fireEvent('threadEvents', {
2181
2173
  type: 'THREAD_UNREAD_COUNT_UPDATED',
2182
2174
  result: {
@@ -2635,9 +2627,7 @@ function Chat(params) {
2635
2627
  * Type 66 Last Message Deleted
2636
2628
  */
2637
2629
  case chatMessageVOTypes.LAST_MESSAGE_DELETED:
2638
- delete messageContent.unreadCount;
2639
- let threadOfDeletedMessage = formatDataToMakeConversation(messageContent);
2640
- store.threads.save(threadOfDeletedMessage);
2630
+
2641
2631
  new Promise((resolve, reject)=> {
2642
2632
  if (fullResponseObject) {
2643
2633
  getThreads({
@@ -3361,27 +3351,6 @@ function Chat(params) {
3361
3351
  }
3362
3352
  });
3363
3353
 
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
-
3370
- let unreadCount = message.conversation.unreadCount;
3371
- // store.threads.get(threadObject.id).unreadCount.set();
3372
- if(message.ownerId != chatMessaging.userInfo.id) {
3373
- if(unreadCount) {
3374
- storeThread.unreadCount.set(unreadCount);
3375
- } else {
3376
- if(!storeThread.unreadCount.get())
3377
- storeThread.unreadCount.set(1);
3378
- else
3379
- storeThread.unreadCount.increase();
3380
- }
3381
- } else {
3382
- storeThread.unreadCount.set(0);
3383
- }
3384
-
3385
3354
  chatEvents.fireEvent('threadEvents', {
3386
3355
  type: 'THREAD_LAST_ACTIVITY_TIME',
3387
3356
  result: {
@@ -4286,9 +4255,7 @@ function Chat(params) {
4286
4255
  time: pushMessageVO.time,
4287
4256
  sender: pushMessageVO.sender,
4288
4257
  messageId: pushMessageVO.messageId,
4289
- text: pushMessageVO.text,
4290
- metadata: pushMessageVO.metadata,
4291
- systemMetadata: pushMessageVO.systemMetadata,
4258
+ text: pushMessageVO.text
4292
4259
  };
4293
4260
 
4294
4261
  if (typeof pushMessageVO.notifyAll === 'boolean') {
@@ -4625,7 +4592,6 @@ function Chat(params) {
4625
4592
  }
4626
4593
  }
4627
4594
 
4628
- store.threads.saveMany(resultData.threads);
4629
4595
  returnData.result = resultData;
4630
4596
 
4631
4597
  /**
@@ -14289,16 +14255,6 @@ function Chat(params) {
14289
14255
  }
14290
14256
  }
14291
14257
 
14292
- store.events.on(store.threads.eventsList.UNREAD_COUNT_UPDATED, (thread) => {
14293
- chatEvents.fireEvent('threadEvents', {
14294
- type: 'UNREAD_COUNT_UPDATED',
14295
- result: {
14296
- threadId: thread.id,
14297
- unreadCount: thread.unreadCount || 0
14298
- }
14299
- });
14300
- });
14301
-
14302
14258
  init();
14303
14259
 
14304
14260
  return publicized;
@@ -1,24 +0,0 @@
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;
@@ -1,16 +0,0 @@
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;
@@ -1,154 +0,0 @@
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
- }
@@ -1,16 +0,0 @@
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}
@@ -1,9 +0,0 @@
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}
@@ -1,134 +0,0 @@
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}
package/src.zip DELETED
Binary file