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