@tencentcloud/lite-chat 4.0.0 → 4.1.1
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/basic.es.js +1 -1
- package/basic.js +1 -1
- package/package.json +1 -1
- package/plugins/avchatroom.es.js +1 -1
- package/plugins/avchatroom.js +1 -1
- package/plugins/conversation-group.es.js +1 -1
- package/plugins/conversation-group.js +1 -1
- package/plugins/conversation.es.js +1 -1
- package/plugins/conversation.js +1 -1
- package/plugins/friend.es.js +1 -1
- package/plugins/friend.js +1 -1
- package/plugins/group.es.js +1 -1
- package/plugins/group.js +1 -1
- package/plugins/message-enhancer.es.js +1 -1
- package/plugins/message-enhancer.js +1 -1
- package/plugins/rich-media-message.es.js +1 -1
- package/plugins/rich-media-message.js +1 -1
- package/professional.es.js +1 -1
- package/professional.js +1 -1
- package/standard.es.js +1 -1
- package/standard.js +1 -1
- package/CHANGELOG.md +0 -395
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,a,i,c){return new(i=i||Promise)(function(s,t){function r(e){try{o(c.next(e))}catch(e){t(e)}}function n(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?s(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(r,n)}o((c=c.apply(e,a||[])).next())})}let t=new class{init(e){this.core=e}};var s,n,I;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(s=s||{}),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(n=n||{});let o="MSG_REACTION",r="MSG_EXT",i=0,a=1,c={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},u="16k_zh",d="16k_en",l="16k_yue",g="16k_ja",m="16k_zh-PY",h={[c.ZH_CN]:u,[c.EN_US]:d,[c.YUE_HK]:l,[c.JA_JP]:g,[c.ZH_PY]:m},p=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,_={READ:0,UNREAD:1},v=1,M=2,E=3,f=1,y=2,C=(!function(e){e.IN="in",e.OUT="out"}(I=I||{}),16),S=17,R=2116,D=2500,A="C2C",L="GROUP",O=20;function T(i){return e(this,void 0,void 0,function*(){var s,n=t.core["appStore"],{messageList:r,conversationID:o}=i,n=n.conversationStore.getConversationMap();let a=null==(s=n.get(o))?void 0:s.peerReadTime;if(!a){let s=o.replace(A,""),r=yield function(s){return e(this,void 0,void 0,function*(){var e={To_Account:s};return t.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:e})})}([s]);if(r){let e=r["ReadTime"];a=null==e?void 0:e[0],n.has(o)&&(n.get(o).peerReadTime=a)}}r.forEach(e=>{e.time<=a&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0)})})}function x(c){return e(this,void 0,void 0,function*(){var e;let{message:s,user:r,appStore:n,constants:{OuterConstant:o}}=t.core,a=n.conversationStore.getConversationMap();if(a.has(c)){let r=null==(e=a.get(c))?void 0:e.userProfile;if(r&&c.startsWith(o.CONV_C2C)){let{avatar:e,nick:s}=r;t.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:c,latestAvatar:e,latestNick:s,isSentByMe:!1})}}var i=((yield r.userProfile.getMyProfile())||{})["data"];if(i){let{avatar:e,nick:t}=i;s.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:c,latestAvatar:e,latestNick:t,isSentByMe:!0})}})}function q(e){let s,r=t.core["message"],{conversationID:n,messageID:o}=e;return s=(s=r.messageDataHandler.getLocalMessageList(n).find(e=>e.ID===o))||r.messageDataHandler.getSparseMessageList(n).find(e=>e.ID===o)}function w(e){return e.map(e=>{var{from:t,to:s,cloudCustomData:r,avatar:n,nick:o,ID:a,clientSequence:i,clientTime:c,messageRandom:u,messageSequence:l,time:d}=e;return{ClientSeq:i,CloudCustomData:r,From_Account:t,From_AccountHeadurl:n,From_AccountNick:o,Id:a,MsgBody:JSON.parse(JSON.stringify(e.transformElementsToServerFormat())),MsgClientTime:c,MsgRandom:u,Random:u,MsgSeq:l,MsgTimeStamp:d,ReceiverId:s,SenderId:t,To_Account:s}})}function b(e){var{From_Account:s,From_AccountHeadurl:r,From_AccountNick:n,GroupId:o,MsgClientTime:a,ClientSeq:i,To_Account:c,MsgTimeStamp:u,TinyId:l,MsgRandom:d,MsgSeq:g}=e;return{from:s,avatar:r,nick:n,clientTime:a,time:u,tinyID:l,random:d,sequence:g,to:c,groupID:o,clientSequence:i,_elements:null==(s=e.MsgBody)?void 0:s.map(e=>{var s=e["MsgType"];return t.core.message.messageFactory.getElementClass(s).parseServerPushElement(e)})}}var N=new class{constructor(){this._reactionsMap=new Map}init(e){var{helper:e,notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{MESSAGE_REACTION_UPDATED:r,MESSAGE_REACTION_UPDATED_SYNC:n}}=this._core=e;e.registerApi({apiName:"addMessageReaction",context:this}),e.registerApi({apiName:"removeMessageReaction",context:this}),e.registerApi({apiName:"getMessageReactions",context:this}),e.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),t.subscribeInnerEvent(s,r,this._handleReactionUpdated,this),t.subscribeInnerEvent(s,n,this._handleReactionSync,this)}addMessageReaction(m,h){return e(this,void 0,void 0,function*(){var{OuterConstant:s,helper:r}=this._core,{conversationID:n,ID:o,conversationType:a,from:i,to:c,clientSequence:u,random:l,time:d,sequence:g}=(this._validateMessageReactionBusinessCapability(),m),n=`conversationID:${n} messageID:${o} reactionID:`+h;try{return this._recordMessageReactedByMe(o,h),a===s.CONV_C2C?yield function(i,c){return e(this,void 0,void 0,function*(){var{from:e,to:s,clientSequence:r,random:n,time:o,reactionID:a}=i,s={From_Account:e,To_Account:s,MsgKey:r+`_${n}_`+o,Reaction:a,Add_Account:[null==(e=c.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:s})})}({from:i,to:c,clientSequence:u,random:l,time:d,reactionID:h},this._core):a===s.CONV_GROUP&&(yield function(n,o){return e(this,void 0,void 0,function*(){var{to:e,reactionID:s,sequence:r}=n,r={GroupId:e,MsgSeq:r,Reaction:s,Add_Account:[null==(e=o.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:r})})}({to:c,reactionID:h,sequence:g},this._core)),{code:0,successLog:{message:n}}}catch(e){this._removeMyReactionRecord(o,h);let t=(e||{})["errorCode"];throw new r.ChatError({functionName:"addMessageReaction",code:t,moreMessage:n})}})}removeMessageReaction(m,h){return e(this,void 0,void 0,function*(){var{OuterConstant:s,helper:r}=this._core,{conversationID:n,ID:o,conversationType:a,from:i,to:c,clientSequence:u,random:l,time:d,sequence:g}=(this._validateMessageReactionBusinessCapability(),m),n=`conversationID:${n} messageID:${o} reactionID:`+h;try{return this._removeMyReactionRecord(o,h),a===s.CONV_C2C?yield function(i,c){return e(this,void 0,void 0,function*(){var{from:e,to:s,clientSequence:r,random:n,time:o,reactionID:a}=i,s={From_Account:e,To_Account:s,MsgKey:r+`_${n}_`+o,Reaction:a,Del_Account:[null==(e=c.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:s})})}({from:i,to:c,clientSequence:u,random:l,time:d,reactionID:h},this._core):a===s.CONV_GROUP&&(yield function(n,o){return e(this,void 0,void 0,function*(){var{to:e,reactionID:s,sequence:r}=n,r={GroupId:e,MsgSeq:r,Reaction:s,Del_Account:[null==(e=o.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:r},o)})}({to:c,reactionID:h,sequence:g},this._core)),{code:0,successLog:{message:n}}}catch(e){let t=(e||{})["errorCode"];throw new r.ChatError({functionName:"removeMessageReaction",code:t,moreMessage:n})}})}getAllUserListOfMessageReaction(l){return e(this,void 0,void 0,function*(){this._validateMessageReactionBusinessCapability();let{message:s,reactionID:r,nextSeq:n=0}=l,o=100<l.count?100:l.count,a=s["conversationID"],{helper:i,constants:c}=this._core;try{var u;if(u=a.startsWith(c.OuterConstant.CONV_C2C)?yield function(u){return e(this,void 0,void 0,function*(){var{message:e,nextSeq:s,reactionID:r,count:n}=u,{from:e,to:o,clientSequence:a,random:i,time:c}=e,r={Reaction:r,NextSeq:s,Count:n,From_Account:e,To_Account:o,MsgKey:a+`_${i}_`+c};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:r})})}({message:s,reactionID:r,nextSeq:n,count:o}):yield function(a){return e(this,void 0,void 0,function*(){var{message:e,nextSeq:s,reactionID:r,count:n}=a,{sequence:e,to:o}=e,r={Reaction:r,NextSeq:s,GroupId:o,Count:n,MsgSeq:e};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:r})})}({message:s,reactionID:r,nextSeq:n,count:o})){let{Reaction_Account:e,NextSeq:t}=u,s=yield this._getUserProfileList(e);return{code:0,data:{nextSeq:t,isCompleted:0===n,userList:s}}}}catch(e){let t=(e||{})["errorCode"];throw new i.ChatError({functionName:"getAllUserListOfMessageReaction",code:t})}})}getMessageReactions(p){return e(this,void 0,void 0,function*(){var s=this._core["constants"],{messageList:r,maxUserCountPerReaction:n=10}=(this._validateMessageReactionBusinessCapability(),p),o=r[0];let a=null,i=new Map,{from:c,to:u,conversationType:l}=o,d=this._generateMessageKeyList(r,i),{Results:g=[]}=(l===s.OuterConstant.CONV_C2C?a=yield function(o){return e(this,void 0,void 0,function*(){var{from:e,to:s,messageKeyList:r,maxUserCountPerReaction:n}=o,e={From_Account:e,To_Account:s,MsgKeyList:r,Count:n};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:e})})}({from:c,to:u,messageKeyList:d,maxUserCountPerReaction:n}):l===s.OuterConstant.CONV_GROUP&&(a=yield function(n){return e(this,void 0,void 0,function*(){var{groupId:e,messageSequenceList:s,maxUserCountPerReaction:r}=n,e={GroupId:e,MsgSeqList:s,Count:r};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:e})})}({groupId:u,messageSequenceList:d,maxUserCountPerReaction:n})),a||{}),m=this._extractUserIDsFromReactionResults(g),h=yield this._getUserProfileMap(m);return{code:0,data:{resultList:g.map(e=>{var{ReactionList:e,MsgSeq:t,MsgKey:s}=e;return{messageID:this._generateMessageID({messageSequence:t,messageKey:s,messageIDMap:i}),reactionList:e.map(e=>{var{Reaction:e,Count:t,Reaction_Account:s,ReactedByMe:r}=e;return{reactionID:e,totalUserCount:t,partialUserList:this._generatePartialUserInfo({userIDList:s,userProfileMap:h}),reactedByMyself:1===r}})}})}}})}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(e){let t=[];return null!=e&&e.forEach(e=>{var{ReactionList:e=[]}=e;e.forEach(e=>{e.Reaction_Account&&t.push(...e.Reaction_Account)})}),t}_getUserProfileList(s){return e(this,void 0,void 0,function*(){var e;try{var t=yield null==(e=this._core.user.userProfile)?void 0:e.getUserProfile({userIDList:s});return t?t.data:[]}catch(e){return[]}})}_getUserProfileMap(t){return e(this,void 0,void 0,function*(){let r=new Map;return(yield this._getUserProfileList(t)).forEach(e=>{var{nick:e,avatar:t,userID:s}=e;r.set(s,{nick:e,avatar:t,userID:s})}),r})}_recordMessageReactedByMe(e,t){e=e+"-"+t;this._reactionsMap.has(e)?this._reactionsMap.get(e).reactedByMe=!0:this._reactionsMap.set(e,{reactedByMe:!0})}_removeMyReactionRecord(e,t){e=e+"-"+t;this._reactionsMap.has(e)&&(this._reactionsMap.get(e).reactedByMe=!1)}_recordMessageReactionInfo(e){var{messageID:e,reactionID:t,reactionInfo:s}=e,e=e+"-"+t,t=this._reactionsMap.get(e)||{};this._reactionsMap.set(e,Object.assign(Object.assign({},t),s))}_validateMessageReactionBusinessCapability(){var{helper:e,constants:t}=this._core;if(!e.checkBusinessCapabilityBits(o))throw new e.ChatError({functionName:"addMessageReaction",code:t.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(t){let s=t["MsgReactionNotifyList"],{notificationCenter:d,constants:g}=this._core;s.forEach(l=>e(this,void 0,void 0,function*(){let{C2CMsgInfo:e,GroupMsgInfo:t,MsgReactionSummary:s}=l,{TinyId:r,MsgClientTime:n,MsgRandom:o}=Object.assign(Object.assign({},e),t),a=r+`-${n}-`+o,i=this._extractUserIDsFromReactionResults([{ReactionList:s}]),c=yield this._getUserProfileMap(i),u=s.map(e=>{var{Reaction:t,Reaction_Account:s}=e,r=this._generatePartialUserInfo({userIDList:s,userProfileMap:c}),s=s?e.Count:0,e=(null==(e=this._reactionsMap.get(a+"-"+t))?void 0:e.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:a,reactionID:t,reactionInfo:{reactionID:t,totalUserCount:s,partialUserList:r}}),{reactionID:t,totalUserCount:s,partialUserList:r,reactedByMyself:e}});d.emitOuterEvent(g.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:g.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:a,reactionList:u}})}))}_handleReactionSync(e){var{notificationCenter:t,constants:s}=this._core,{C2CMsgInfo:e={},GroupMsgInfo:r={},Reaction:n,OperateType:o}=e.MsgReactionNotify,{TinyId:e="",MsgClientTime:r=0,MsgRandom:a=0}=Object.assign(Object.assign({},e),r),r=e+`-${r}-`+a,a=r+"-"+n;if(1===o?this._recordMessageReactedByMe(r,n):this._removeMyReactionRecord(r,n),null!=(e=this._reactionsMap.get(a))&&e.reactionID){let e=this._reactionsMap.get(a);e.reactedByMyself=1===o,t.emitOuterEvent(s.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:s.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:r,reactionList:[e]}})}}_generatePartialUserInfo({userIDList:e,userProfileMap:t}){let s=[];return null!=e&&e.forEach(e=>{t.has(e)&&s.push(t.get(e))}),s}_generateMessageID(e){var{messageSequence:e,messageKey:t,messageIDMap:s}=e;return t?s.get(t):s.get(e)}_generateMessageKeyList(e,n){var t=this._core["constants"],s=e[0]["conversationType"];let r=[];return s===t.OuterConstant.CONV_C2C?r=e.map(e=>{var{clientSequence:e,random:t,time:s,ID:r}=e,e=e+`_${t}_`+s;return n.set(e,r),e}):s===t.OuterConstant.CONV_GROUP&&(r=e.map(e=>{var{ID:e,sequence:t}=e;return n.set(t,e),t})),r}},P=new class{init(e){var{helper:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:s,GROUP_MESSAGE_READ_RECEIPT:r},notificationCenter:n}=this._core=e;e.registerApi({apiName:"sendMessageReadReceipt",context:this}),e.registerApi({apiName:"getMessageReadReceiptList",context:this}),e.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),n.subscribeInnerEvent(t,s,this._handleC2CMessageReadReceipt,this),n.subscribeInnerEvent(t,r,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(s){return e(this,void 0,void 0,function*(){var{common:r,constants:n}=this._core,o=this._filterValidMessageSendByOther(s);if(0===o.length)throw new r.ChatError({code:n.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{let s=o[0]["conversationType"];return s===n.OuterConstant.CONV_C2C?yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={Peer_Account:r[0].conversationID.replace(s.OuterConstant.CONV_C2C,""),C2CMsgInfo:r.map(e=>{var{from:e,to:t,sequence:s,random:r,time:n,clientTime:o}=e;return{From_Account:e,To_Account:t,MsgSeq:s,MsgRandom:r,MsgTime:n,MsgClientTime:o}})};return e.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:s})})}(o):yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={GroupId:r[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:r.map(e=>({MsgSeq:e.sequence}))};return e.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:s})})}(o),{code:0,data:{}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}getMessageReadReceiptList(o){return e(this,void 0,void 0,function*(){let{common:r,constants:n}=this._core;try{let s=o[0]["conversationType"];if(s===n.OuterConstant.CONV_GROUP){let n=this._filterValidMessageSendByMe(o);if(0<(null==n?void 0:n.length)){let s=yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={GroupId:r[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:r.map(e=>({MsgSeq:e.sequence}))};return e.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:s})})}(n),r=(s||{})["GroupMsgReceiptList"];this._updateGroupMessagesReadReceiptInfo({messageList:o,readReceiptList:r})}}return{code:0,data:{messageList:o}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}getGroupMessageReadMemberList(g){return e(this,void 0,void 0,function*(){let{constants:s,common:r}=this._core,{message:n,filter:a=_.READ,cursor:i=""}=g,{conversationID:o,sequence:c,ID:u}=n,l=o.replace(s.OuterConstant.CONV_GROUP,""),d=100<=g.count?100:g.count;try{let o=yield function(a){return e(this,void 0,void 0,function*(){var{sequence:e,groupID:s,filter:r,cursor:n,count:o}=a,e={MsgSeq:e,GroupId:s,Filter:r,Cursor:n,Num:o};return t.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:e})})}({groupID:l,sequence:c,filter:a,cursor:i,count:d});if(o){let{Cursor:e,IsFinish:t,UnreadList:s,ReadList:r}=o,n={cursor:e,isCompleted:1===t,messageID:u,unreadUserIDList:[],readUserIDList:[]};return a===_.READ?n.readUserIDList=r.map(e=>e.Read_Account):a===_.UNREAD&&(n.unreadUserIDList=s.map(e=>e.Unread_Account)),{code:0,data:n}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}_handleC2CMessageReadReceipt(e){let n=[],{constants:t,helper:s}=this._core,{C2cMsgInfo:o,PeerReadTime:a,Peer_Account:i}=e;if(!s.isEmpty(o)){let r=""+t.OuterConstant.CONV_C2C+i;null!=o&&o.forEach(e=>{var{TinyId:e,MsgClientTime:t,MsgRandom:s}=e,e=e+`-${t}-`+s,t=q({conversationID:r,messageID:e});t&&!t.readReceiptInfo.isPeerRead&&(t.readReceiptInfo.isPeerRead=!0,t.readReceiptInfo.timestamp=a,n.push({userID:i,messageID:e,isPeerRead:!0,timestamp:a}))}),this._emitReadReceiptEventIfNeed(n)}}_updateGroupMessagesReadReceiptInfo(e){let{messageList:t,readReceiptList:s}=e,r=new Map;t.forEach(e=>{r.set(e.sequence,e)}),null!=s&&s.forEach(e=>{var t,s;0===e.Code&&({MsgSeq:e,ReadNum:t,UnreadNum:s}=e,e=r.get(e))&&(e.readReceiptInfo.readCount=t,e.readReceiptInfo.unreadCount=s)})}_handleGroupMessageReadReceipt(e){let i=[],s=this._core["constants"],t=e["GroupTips"];t.forEach(e=>{let{MsgBody:{GroupMsgReceiptList:t},GroupInfo:{GroupId:o}}=e,a=""+s.OuterConstant.CONV_GROUP+o;null!=t&&t.forEach(e=>{var{TinyId:e,MsgClientTime:t,MsgRandom:s,ReadNum:r,UnreadNum:n}=e,e=e+`-${t}-`+s,t=q({conversationID:a,messageID:e}),s={groupID:o,messageID:e,readCount:0,unreadCount:0};t&&("number"==typeof r&&(t.readReceiptInfo.readCount=r,s.readCount=r),"number"==typeof n&&(t.readReceiptInfo.unreadCount=n,s.unreadCount=n),i.push(s))})}),this._emitReadReceiptEventIfNeed(i)}_emitReadReceiptEventIfNeed(e){var{notificationCenter:t,OuterEvent:s}=this._core;0<e.length&&t.emitOuterEvent(s.MESSAGE_READ_RECEIPT_RECEIVED,{name:s.MESSAGE_READ_RECEIPT_RECEIVED,data:e})}_filterValidMessageSendByOther(e){return this._filterNeedReadReceiptMessages(e).filter(e=>{e=e.from;return e!==this._core.common.getCurrentUserID()})}_filterValidMessageSendByMe(e){let s=this._core.constants["OuterConstant"];return this._filterNeedReadReceiptMessages(e).filter(e=>{var{from:e,status:t}=e;return e===this._core.common.getCurrentUserID()&&t===s.MessageStatus.SUCCESS})}_filterNeedReadReceiptMessages(e){return e.filter(e=>!0===e.needReadReceipt)}dispose(){var{InnerEvent:{MESSAGE_PUSH:e},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:t,GROUP_MESSAGE_READ_RECEIPT:s},notificationCenter:r}=this._core;r.unSubscribeInnerEvent(e,t,this._handleC2CMessageReadReceipt,this),r.unSubscribeInnerEvent(e,s,this._handleGroupMessageReadReceipt,this)}};function G(i,c,u){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e}=t.core["common"],{from:s,to:r,clientSequence:n,random:o,time:a}=i;return e({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:s,To_Account:r,MsgKey:n+`_${o}_`+a,OperateType:u,ExtensionList:c}})})}function k(n,o,a){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e}=t.core["common"],{to:s,sequence:r}=n;return e({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:s,MsgSeq:r,OperateType:a,ExtensionList:o}})})}var U=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(e){var{notificationCenter:e,helper:{registerApi:t},InnerEvent:{MESSAGE_PUSH:s,LOGOUT:r},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:n}}=this._core=e;t({apiName:"setMessageExtensions",context:this}),t({apiName:"getMessageExtensions",context:this}),t({apiName:"deleteMessageExtensions",context:this}),e.subscribeInnerEvent(s,n,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(r,this.reset,this)}setMessageExtensions(l,d){return e(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");let{constants:{OuterConstant:t},ssoLog:e}=this._core,{ID:s,conversationID:r,sequence:n,time:o,conversationType:a}=l,i=d;20<d.length&&(i=d.slice(0,20),e.warn("setMessageExtensions","the length of extensions cannot exceed 20"));var c=this._generateServerExtensions(l,i),u=`convID:${r} messageID:${s} sequence:${n} time:${o} count:`+i.length;try{let r;if(a===t.CONV_C2C?r=yield G(l,c,v):a===t.CONV_GROUP&&(r=yield k(l,c,v)),r){let{resultList:e,successCount:t,failureCount:s}=this._handleModifyMessageExtensions(l,r);return{code:0,data:{extensions:e},successLog:{message:u+` successCount:${t} failCount:`+s}}}return{code:0,data:{extensions:[]}}}catch(t){let e=t["errorCode"];throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:e,moreMessage:u})}})}getMessageExtensions(a){return e(this,void 0,void 0,function*(){var{isUndefined:s}=this._core["utils"];this._validateMessageExtensionBusinessCapability("getMessageExtensions");let{conversationID:e,ID:r,sequence:t,time:n}=a,o=`convID:${e} messageID:${r} sequence:${t} time:`+n;try{let e,t=(this._completedFetchExtensions.has(r)&&(e=this._extensionsLatestSequenceMap.get(r)),yield this._fetchMessageExtensions(a,e));return s(e)&&1<t.length&&this._completedFetchExtensions.add(r),{code:0,data:{extensions:t},successLog:{message:o}}}catch(s){let{errorCode:e,errorInfo:t=""}=s||{};throw new this._core.common.ChatError({code:e,message:t,moreMessage:o})}})}deleteMessageExtensions(d,g){return e(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");let{utils:{isEmpty:t},constants:{OuterConstant:e}}=this._core,{conversationType:s,conversationID:r,sequence:n,ID:o,time:a}=d,i=E,c=[];t(g)||(i=M,null==g)||g.forEach(e=>{c.push({key:e,value:"",seq:0})});var u=`convID:${r} messageID:${o} sequence:${n} time:${a} operateType:`+i,l=this._generateServerExtensions(d,c);try{let r;if(s===e.CONV_C2C?r=yield G(d,l,i):s===e.CONV_GROUP&&(r=yield k(d,l,i)),r){let{resultList:e,successCount:t,failureCount:s}=this._handleModifyMessageExtensions(d,r);return{code:0,data:{extensions:e},successLog:{message:u+`successCount:${t} failCount:`+s}}}return{code:0,data:{extensions:[]}}}catch(t){let e=t["errorCode"];throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:e,moreMessage:u})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t,LOGOUT:s},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:r}}=this._core;e.unSubscribeInnerEvent(t,r,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(s,this.reset,this)}_handleModifyMessageExtensions(e,t){let s=e["ID"],r=t["Seq"],n=t.ExtensionList||[],o=[],a=0,i=0,c=[];return n.forEach(e=>{var{ErrorCode:e,Extension:t}=e,{Key:t,Value:s,Seq:r}=t;o.push({code:e,key:t,value:s}),0===e?a++:i++,c.push({key:t,value:s,seq:r})}),this._extensionsLatestSequenceMap.set(s,r),0<c.length&&this._updateLocalExtensions(e.ID,c),{resultList:o,successCount:a,failureCount:i}}_updateLocalExtensions(e,t){this._messageExtensionsMap.has(e)||this._messageExtensionsMap.set(e,new Map);let r=this._messageExtensionsMap.get(e);null!=t&&t.forEach(e=>{var{key:e,seq:t,value:s=""}=e;null!=r&&r.set(e,{value:s,seq:t})})}_fetchMessageExtensions(c,r){return e(this,void 0,void 0,function*(){let{constants:{OuterConstant:e},utils:{isEmpty:a}}=this._core;try{let o;var{conversationType:s,ID:i}=c;if(s===e.CONV_C2C?o=yield function(e,s){var r=t.core["common"]["buildAndSendPacket"],{from:e,to:n,clientSequence:o,random:a,time:i}=e;return r({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:e,To_Account:n,MsgKey:o+`_${a}_`+i,StartSeq:s}})}(c,r):s===e.CONV_GROUP&&(o=yield function(e,s){var r=t.core["common"]["buildAndSendPacket"],{to:e,sequence:n}=e;return r({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:e,MsgSeq:n,StartSeq:s}})}(c,r)),o){let{LatestSeq:e,ClearSeq:t,CompleteFlag:s}=o,r=(o.ExtensionList||[]).map(e=>({key:e.Key,value:e.Value,seq:e.Seq}));if(this._updateLocalExtensions(i,r),this._clearLocationExtensions(i,t),this._extensionsLatestSequenceMap.set(i,e),1!==s){let e=r[r.length-1].seq+1;return this._fetchMessageExtensions(c,e)}let n=[];if(this._messageExtensionsMap.has(i)){let e=this._messageExtensionsMap.get(i);null!=e&&e.forEach((e,t)=>{e=e.value;a(e)||n.push({key:t,value:e})})}return n}}catch(e){throw e}})}_clearLocationExtensions(e,r){if(!(r<=0)&&this._messageExtensionsMap.has(e)){let s=this._messageExtensionsMap.get(e);null!=s&&s.forEach((e,t)=>{e.seq<=r&&s.delete(t)})}}_generateServerExtensions(e,t){var s=e["ID"];if(this._messageExtensionsMap.has(s)){let r=this._messageExtensionsMap.get(s);return t.map(e=>{var{key:e,value:t}=e;let s=0;return{Key:e,Value:t,Seq:s=null!=r&&r.has(e)?null==(t=r.get(e))?void 0:t.seq:s}})}return t.map(e=>({Key:e.key,Value:e.value,Seq:0}))}_validateMessageExtensionBusinessCapability(e){var{helper:t,constants:s}=this._core;if(!t.checkBusinessCapabilityBits(r))throw new t.ChatError({functionName:e,code:s.ERROR_CODE.NO_USE,replacement1:e})}_handleMessageExtensionsNotify(e){var{SetKVInfo:e,DeleteKVInfo:t,ClearKVInfo:s,MsgOptType:r,TinyId:n,MsgLastSeq:o,ExtensionC2cMsgInfo:a,ExtensionGroupMsgInfo:i}=(null==e?void 0:e.MsgExtensionNotify)||{},{MsgClientTime:a,MsgRandom:i}=a||i||{},n=n+`-${a}-`+i;this._extensionsLatestSequenceMap.set(n,o),r===v?this._handleMessageExtensionsUpdated({messageID:n,updateMessageExtensionsInfo:e}):r===M?this._handleMessageExtensionsDeleted({messageID:n,deleteMessageExtensionsInfo:t}):r===E&&this._handleMessageExtensionsCleared({messageID:n,clearMessageExtensionsInfo:s})}_handleMessageExtensionsUpdated(e){let{notificationCenter:t,OuterEvent:s}=this._core,{messageID:r,updateMessageExtensionsInfo:n=[]}=e,o=[];n.forEach(e=>{var{MsgKeyValue:e=[]}=e,e=e.map(e=>(o.push({key:e.Key,value:e.Value}),{key:e.Key,value:e.Value,seq:e.Seq}));this._updateLocalExtensions(r,e)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_UPDATED,{name:s.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:r,extensions:o}})}_handleMessageExtensionsDeleted(e){let{notificationCenter:t,OuterEvent:s}=this._core,{messageID:r,deleteMessageExtensionsInfo:n=[]}=e,o=[];n.forEach(e=>{var{MsgKeyValue:e=[]}=e,e=e.map(e=>(o.push(e.Key),{key:e.Key,seq:e.Seq}));this._updateLocalExtensions(r,e)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_DELETED,{name:s.MESSAGE_EXTENSIONS_DELETED,data:{messageID:r,keyList:o}})}_handleMessageExtensionsCleared(e){let{notificationCenter:t,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:s},utils:{isEmpty:r}}=this._core,{messageID:n,clearMessageExtensionsInfo:o=[]}=e,a=[];o.forEach(e=>{let s=e["ClearMsgSeq"];this._messageExtensionsMap.has(n)&&(this._messageExtensionsMap.get(n)||[]).forEach((e,t)=>{e.seq<=s&&!r(e.value)&&a.push(t)}),this._clearLocationExtensions(n,s)}),t.emitOuterEvent(s,{name:s,data:{messageID:n,keyList:a}})}};let F={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var{OuterConstant:s}=t.core["constants"];return e.status!==s.MessageStatus.SUCCESS?"message is not success":!0===e.isSupportExtension||"message is not support extension"}},$={setMessageExtensions:[F,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[F],deleteMessageExtensions:[F]},V=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>"GROUP"===e||"conversationType should be GROUP."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var t="string"==typeof(null==e?void 0:e.text)&&("string"!=typeof e.text||0!==(null==(t=null==e?void 0:e.text)?void 0:t.length))||"payload.text is invalid.";return!0!==t?t:!(null!=e&&e.atUserList&&!Array.isArray(e.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!e.startsWith("C2C")&&!e.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var{isString:s,isNumber:r}=t.core["utils"];return s(null==e?void 0:e.description)?r(null==e?void 0:e.longitude)?!!r(null==e?void 0:e.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"!=typeof e?"maxUserCountPerReaction is invalid.":!(e<0||10<e)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>"success"===e.status||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),$),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),H=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0});class K{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,function*(){var{to:e,messageIdentifiers:t}=s,e={From_Account:this._core.common.getCurrentUserID(),To_Account:e,MsgKeyList:t};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:e})})}revokeMessage(o){return e(this,void 0,void 0,function*(){var{to:e,from:t,sequence:s,time:r,random:n}=o;return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:{MsgInfo:{From_Account:t,To_Account:e,MsgSeq:s,MsgRandom:n,MsgTimeStamp:r}}})})}}class B{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,function*(){var{to:e,messageIdentifiers:t}=s,e={GroupId:e,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:t};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:e})})}revokeMessage(s){return e(this,void 0,void 0,function*(){var{to:e,sequence:t}=s;return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:{GroupId:e,MsgSeqList:[{MsgSeq:t}]}})})}}class j{constructor(e){this._core=e}generateRevokeMessage(e){var{conversationID:e,sequence:t,random:s,tinyID:r,clientTime:n,revokeReason:o,revoker:a}=e;let i={};var c=this._core.message["messageDataHandler"];return(i=c.revokeMessage({conversationID:e,sequence:t,random:s,revoker:a}))||(i={conversationID:e,sequence:t},r&&n&&s&&(i.ID=r+`-${n}-`+s)),i.revoker=a,i.revokeReason=o,i.revokerInfo={userID:a,nick:"",avatar:""},i}updateRevokerInfo(t){return e(this,void 0,void 0,function*(){var e=t.map(e=>e.revoker);try{let s=yield this._fetchUserInfos(e);s&&t.forEach(e=>{var t=e["revoker"];s[t]&&(e.revokerInfo.nick=s[t].nick||"",e.revokerInfo.avatar=s[t].avatar||"",e.revokerInfo.userID=t)})}catch(e){console.debug(e)}})}_fetchUserInfos(t){return e(this,void 0,void 0,function*(){var e=yield null==(e=this._core.user.userProfile)?void 0:e.getUserProfile({userIDList:t});return null!=e&&e.data?null==(e=e.data)?void 0:e.reduce((e,{userID:t,nick:s,avatar:r})=>(e[t]={nick:s||"",avatar:r||""},e),{}):null})}}var W=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new B(e),this._c2cMessageAction=new K(e),this._messageHelper=new j(e);e=e.helper;e.registerApi({apiName:"deleteMessage",context:this}),e.registerApi({apiName:"revokeMessage",context:this}),e.registerApi({apiName:"resendMessage",context:this}),e.registerApi({apiName:"findMessage",context:this})}deleteMessage(t){return e(this,void 0,void 0,function*(){let c=[],u=[],{conversationID:l,conversationType:d}=t[0],e=l.replace(d,"");if("@TIM#SYSTEM"===d)throw new this._core.helper.ChatError({code:R});if(t.forEach(e=>{var{conversationID:t,conversationType:s,status:r,_onlineOnlyFlag:n,sequence:o,random:a,time:i}=e||{};if("success"===r&&t===l&&s===d){if(!n){let e="C2C"===s?o+`_${a}_`+i:String(o);c.push(e)}u.push(e)}}),0===c.length)return this._handleDeleteMessageSuccess(u),{code:0,data:{messageList:u}};30<c.length&&(c=c.slice(0,30),u=u.slice(0,30));try{return"C2C"===d?yield this._c2cMessageAction.deleteMessage({to:e,messageIdentifiers:c}):yield this._groupMessageAction.deleteMessage({to:e,messageIdentifiers:c}),this._handleDeleteMessageSuccess(u),{code:0,data:{messageList:u}}}catch(c){let e=c["errorCode"];throw new this._core.helper.ChatError({functionName:"deleteMessage",code:e})}})}revokeMessage(u){return e(this,void 0,void 0,function*(){let s,{conversationType:e,isRevoked:t,ID:r,type:n,from:o,to:a}=u;var i,c=`type:${n} from:${o} to:${a} ID:`+r;if("@TIM#SYSTEM"===e)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(t)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:c});try{if(i="C2C"===e?yield this._c2cMessageAction.revokeMessage(u):yield this._groupMessageAction.revokeMessage(u)){let e=i["RecallRetList"],t=(null==(s=null==e?void 0:e[0])?void 0:s.RetCode)||0;if(0!==t)throw new this._core.helper.ChatError({code:t,moreMessage:c});return u.isRevoked=!0,yield this._handleRevokeMessageSuccess(u),{code:0,data:{message:u},successLog:{message:c}}}}catch(s){let e=s["errorCode"];throw new this._core.helper.ChatError({functionName:"revokeMessage",code:e,moreMessage:c})}})}resendMessage(t,s){return e(this,void 0,void 0,function*(){var e;return t.isResend=!0,t.status="unSend",null==(e=null==(e=this._core)?void 0:e.apiMap)?void 0:e.sendMessage(t,s)})}findMessage(e){return this._core.message.messageDataHandler.findMessage(e)}_handleDeleteMessageSuccess(n){if(0!==n.length){let{message:{messageDataHandler:s},common:{isTopic:e},notificationCenter:t,InnerEvent:r}=this._core;n.forEach(t=>{t.isDeleted=!0;var e=s.getLocalMessageList(t.conversationID);null!=e&&e.forEach(e=>{e.ID===t.ID&&(e.isDeleted=!0)})});var{conversationID:n=""}=n[0];e(n)?t.emitInnerEvent(r.TOPIC_MESSAGE_DELETED,n):t.emitInnerEvent(r.MESSAGE_DELETED,n)}}_handleRevokeMessageSuccess(n){return e(this,void 0,void 0,function*(){var e=null==(e=this._core.store.get("login"))?void 0:e.userId,{conversationID:t,sequence:s,random:r}=n;this._core.message.messageDataHandler.revokeMessage({conversationID:t,sequence:s,random:r,revoker:e}),yield this._messageHelper.updateRevokerInfo([n])})}};class Y{static parseServerPushElement(e){var{MsgContent:e={}}=e,{Index:e,Data:t}=e;return new Y({index:e,data:t})}constructor(e){this.type=s.MSG_FACE;var{index:e,data:t}=e;this.content={index:e,data:t}}validateBeforeSend(){var e;return"number"==typeof(null==(e=this.content)?void 0:e.index)&&"string"==typeof(null==(e=this.content)?void 0:e.data)?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{index:e,data:t}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{Index:e,Data:t}}}}class J{static parseServerPushElement(e){var{MsgContent:e={}}=e,{Desc:e,Longitude:t,Latitude:s}=e;return new J({description:e,longitude:t,latitude:s})}constructor(e){this.type=s.MSG_LOCATION;var{description:e,longitude:t,latitude:r}=e;this.content={description:e,longitude:t,latitude:r}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{description:e,longitude:t,latitude:s}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{Desc:e,Longitude:t,Latitude:s}}}}var X=new class{init(e){(this._core=e).message.messageFactory.registerElementClass(s.MSG_FACE,Y),e.message.messageFactory.registerElementClass(s.MSG_LOCATION,J),e.helper.registerApi({apiName:"createFaceMessage",context:this}),e.helper.registerApi({apiName:"createTextAtMessage",context:this}),e.helper.registerApi({apiName:"createForwardMessage",context:this}),e.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(e){var t,s;return e?({index:t,data:s}=(null==e?void 0:e.payload)||{},t=new Y({index:t,data:s}),s=this._core.common.getCurrentUserID(),(e=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setElement(t),e):null}createTextAtMessage(e){let r=((null==e?void 0:e.payload)||{})["atUserList"],n=this._core.apiMap.createTextMessage(e),o=this._core["OuterConstant"];if(!n)return null;if(Array.isArray(r)){let t=[],s=[];r.forEach(e=>{e!==o.MSG_AT_ALL?(t.push({GroupAtAllFlag:i,GroupAt_Account:e}),s.push(e)):(t.push({GroupAtAllFlag:a}),s.push(o.MSG_AT_ALL))}),n._groupAtInfoList=t,n.atUserList=s}return n}createForwardMessage(e){var{helper:t,OuterConstant:s}=this._core,{to:e,conversationType:r,priority:n,payload:o,needReadReceipt:a,receiverList:i,cloudCustomData:c="",isSupportExtension:u=!1}=e;if(!Array.isArray(o._elements))throw new t.ChatError({functionName:"createForwardMessage",code:2454});if(o.type===s.MSG_GRP_TIP)throw new t.ChatError({functionName:"createForwardMessage",code:2453});s=this._core.common.getCurrentUserID(),t=this._core.message.messageFactory.createMessage({to:e,from:s,conversationType:r,isPlaceMessage:0,priority:n,payload:o,needReadReceipt:a,isSupportExtension:u,cloudCustomData:c,receiverList:i});return t.setRelayFlag(!0),t.setElement(o._elements[0]),t}createLocationMessage(e){var t,s,r;return e?({description:t,longitude:s,latitude:r}=(null==e?void 0:e.payload)||{},t=new J({description:t,longitude:s,latitude:r}),s=this._core.common.getCurrentUserID(),(r=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setElement(t),r):null}};class Z{init(e){this._messageHelper=new j(e);var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_REVOKED_MESSAGE:s},helper:{registerWorkflowStep:r},constants:{WORKFLOW_NAME:n,WORKFLOW_STEP:o}}=this._core=e;e.subscribeInnerEvent(t,s,this._handleC2CNotifyMessage,this),r(n.SYNC_SERVER_INFO_AFTER_RE_ONLINE,o.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(e){e=e.C2cNotifyMsgArray;null!=e&&e.forEach(e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)})}_handleC2CRevokeMessage(t){return e(this,void 0,void 0,function*(){try{var{C2cWithdrawInfoArray:e}=t["WithdrawC2cMsgNotify"];yield this._parseAndEmitC2CRevokedMessages(e)}catch(e){console.debug(e)}})}_parseAndEmitC2CRevokedMessages(s){return e(this,void 0,void 0,function*(){let i=[],{notificationCenter:e,OuterEvent:t,common:{getCurrentUserID:c}}=this._core;s.forEach(e=>{var{MsgRand:t,MsgSeq:s,To_Account:r,From_Account:n,RevokerInfo:{Revoker_Account:o,Revoke_Reason:a}}=e,r=c()===n?"C2C"+r:"C2C"+n,e=(null==(n=null==e?void 0:e.RevokerInfo)?void 0:n.Reason)||a,n=this._messageHelper.generateRevokeMessage({conversationID:r,sequence:s,random:t,revoker:o,revokeReason:e});i.push(n)}),0<i.length&&(yield this._messageHelper.updateRevokerInfo(i),e.emitOuterEvent(t.MESSAGE_REVOKED,{name:t.MESSAGE_REVOKED,data:i}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(t){return e(this,void 0,void 0,function*(){var e=t.result["revokedMessageList"];yield this._parseAndEmitC2CRevokedMessages(e)})}dispose(){var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_REVOKED_MESSAGE:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleC2CNotifyMessage,this)}}class z{init(e){this._messageHelper=new j(e);var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core=e;e.subscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(e){e=e.GroupTips;null!=e&&e.forEach(e=>{var t;Array.isArray(null==(t=null==e?void 0:e.MsgBody)?void 0:t.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)})}_handleGroupRevokeMessage(o){return e(this,void 0,void 0,function*(){try{let{RevokerInfo:c,MsgBody:{GroupWithdrawInfoArray:e},GroupInfo:u}=o,l=[],d=[],{notificationCenter:t,OuterEvent:s,utils:{isEmpty:r},common:{isCommunity:n}}=this._core,g=!1;u&&(g=n({groupID:u.GroupId})||!r(u.TopicId)),e.forEach(e=>{var{Random:e,MsgSeq:t,GroupId:s,MsgClientTime:r,TinyId:n,TopicId:o,RevokerInfo:{Revoker_Account:a=(null==c?void 0:c.Revoker_Account)||"",Reason:i=(null==c?void 0:c.Reason)||""}}=e,o=this._messageHelper.generateRevokeMessage({conversationID:o?"GROUP"+o:"GROUP"+s,sequence:t,random:e,tinyID:n,clientTime:r,revoker:a,revokeReason:i});(g?(o.revokerInfo.nick=u.From_AccountNick,o.revokerInfo.avatar=u.From_AccountHeadurl,l):d).push(o)}),0<d.length&&(yield this._messageHelper.updateRevokerInfo(d),l.push(...d)),0!==l.length&&t.emitOuterEvent(s.MESSAGE_REVOKED,{name:s.MESSAGE_REVOKED,data:l})}catch(e){console.debug(e)}})}dispose(){var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}}var Q=new class{constructor(){this._c2cMessageReceiver=new Z,this._groupMessageReceiver=new z}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};class ee{constructor(e){var t=(this._core=e)["constants"];this._messageHelper=new j(e),e.helper.registerWorkflowStep(t.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,t.WORKFLOW_STEP.GROUP_REVOKED_NOTICE_RECOVER,this._recoverGroupRevokeNotice,this)}getRoamingMessagesByAnchor(e){return this._core.message.messageHistory.getGroupRoamingMessagesByAnchor(e)}_recoverGroupRevokeNotice(e){let{recoverRevokeNoticeGroupIDList:t=[]}=e.result,r=this._filterValidGroupIDList(t);0!==r.length&&(e=Math.min(Math.ceil(r.length/10),5),Promise.all(Array.from({length:e},(e,t)=>{var t=10*t,s=Math.min(10+t,r.length);return this._fetchGroupRevokeNotice(r.slice(t,s))})).catch(e=>console.error(e)))}_fetchGroupRevokeNotice(s){return e(this,void 0,void 0,function*(){var r;try{var n=yield function(a){return e(this,void 0,void 0,function*(){let{appStore:e,constants:{OuterConstant:r},common:n}=t.core,o=e.groupStore.getGroupMap(),s={NotifyReqList:a.map(e=>{var s=o.get(e);return{NotifyType:1,Limit:20,Type:n.isCommunity({type:s.type,groupID:e})?r.GRP_COMMUNITY:void 0,GroupId:e,BeginTime:(null==s?void 0:s._lastRevokedTime)||0,EndTime:1e3*t.core.common.timeManager.getServerTimeMs()}})||[]};return n.buildAndSendPacket({servcmd:"group_open_http_svc.batch_get_group_notify",data:s})})}(s);if(n){let s=[];null!=(r=null==n?void 0:n.NotifyRspList)&&r.forEach(e=>{var{GroupId:e,NotifyMsgList:t}=e,e=this._parseServerRevokeMessageList({groupID:e,serverRevokeMessageList:t});s.push(...e)}),0!==s.length&&(yield this._emitMessageRevokedEvent(s))}}catch(e){console.error(e)}})}_parseServerRevokeMessageList(e){let{serverRevokeMessageList:t,groupID:a}=e,i=[];return null!=t&&t.forEach(e=>{var{ClientTime:e,MsgSeq:t,Random:s,RevokerInfo:{Revoker_Account:r="",Reason:n=""}}=e,o="GROUP"+a,o=this._messageHelper.generateRevokeMessage({conversationID:o,sequence:t,random:s,clientTime:e,revoker:r,revokeReason:n});i.push(o)}),i}_filterValidGroupIDList(e){let{OuterConstant:t}=this._core["constants"],s=this._core.appStore.groupStore.getGroupMap();return(null==e?void 0:e.filter(e=>{return!(!s.has(e)||(null==(e=s.get(e))?void 0:e.type)===t.GRP_AVCHATROOM||null!=e&&e.isSupportTopic)}))||[]}_emitMessageRevokedEvent(s){return e(this,void 0,void 0,function*(){var{notificationCenter:e,OuterEvent:t}=this._core;yield this._messageHelper.updateRevokerInfo(s),e.emitOuterEvent(t.MESSAGE_REVOKED,{name:t.MESSAGE_REVOKED,data:s})})}}class te{constructor(e){this._historyMessageListFetchAnchors=new Map,this._core=e,this._messageHelper=new j(e)}getRoamingMessagesByAnchor(h){return e(this,void 0,void 0,function*(){var n;try{var{conversationID:o,count:a,messageID:i,time:c,direction:u}=h;let s=c,r="";if(!c){let e=i?this._core.message.messageDataHandler.findMessage(i):null;if(s=(null==e?void 0:e.time)||0,i&&this._historyMessageListFetchAnchors.has(o)){let e=this._historyMessageListFetchAnchors.get(o);s=e.lastMessageTime,r=e.messageKey}}var l=o.replace(A,""),d=yield function(a){return e(this,void 0,void 0,function*(){var{peerAccount:e,count:s,lastMessageTime:r,messageKey:n,direction:o}=a,e={Peer_Account:e,MaxCnt:s,WithRecalledMsg:1,LastMsgTime:r,MsgKey:n,GetDirection:o};return t.core.common.buildAndSendPacket({servcmd:"openim.getroammsg",data:e})})}({count:a,lastMessageTime:s,messageKey:r,peerAccount:l,direction:u});if(d){let{MsgList:r=[],Complete:e,MsgKey:t,LastMsgTime:s}=d;this._historyMessageListFetchAnchors.set(o,{messageKey:t,lastMessageTime:s});var g=[];for(let s=0;s<r.length;s++){let e=r[s],t=this._parseMessage(e);g.push(t)}var m=this._core.message.messageHelper.filterValidMessages(g);return{messageList:m,nextReqMessageIDFromServer:null==(n=m[0])?void 0:n.ID,lastMessageTime:s,hasNoMoreHistoryMessage:1===e}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}clearHistoryMessageListFetchAnchors(e){this._historyMessageListFetchAnchors.delete(e)}reset(){this._historyMessageListFetchAnchors.clear()}_parseMessage(e){var t=A,e=this._core.message.messageHelper.parseServerPushMessage(e),t=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:t,flow:"in"}));return t.setElement(e.elements),t}}var se=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}init(e){this._core=e,this._groupMessageHistory=new ee(e),this._c2cMessageHistory=new te(e),this._messageHelper=new j(e),e.helper.registerApi({apiName:"getMessageList",context:this}),e.helper.registerApi({apiName:"getMessageListHopping",context:this}),e.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(s){return e(this,void 0,void 0,function*(){try{var{conversationID:a,nextReqMessageID:i}=s,e=O;if("@TIM#SYSTEM"===a)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};var c=this._getAvailableLocalMessagesCount({conversationID:a,nextReqMessageID:i});if(this._needFetchHistoryMessageList({conversationID:a,availableLocalMessagesCount:c,targetCount:e})){let o=null;if(a.startsWith(L)?o=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:a,sequence:Number(i),count:e,direction:n.FORWARD}):a.startsWith(A)&&(o=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:a,messageID:i,count:e,direction:n.FORWARD})),o){let{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:s,messageList:r}=o,n=this._core.message.messageDataHandler.prependLocalMessageList({messageList:r,conversationID:a});var u=a,{appStore:l,message:d,OuterConstant:g}=t.core,l=l.conversationStore.getConversation(u),m=d.messageDataHandler.getLocalMessageList(u);if(l&&0!==m.length&&u!==g.CONV_SYSTEM){var h=[];for(let e=0;e<m.length;e++)"in"!==m[e].flow?"out"!==m[e].flow||m[e].isRead||m[e].setIsRead(!0):h.push(m[e]);let t=0;if(l.type===g.CONV_C2C){let e=h.slice(-l.unreadCount).filter(e=>e.isRevoked).length;t=h.length-l.unreadCount-e}else t=h.length-l.unreadCount;for(let e=0;e<t&&!h[e].isRead;e++)h[e].setIsRead(!0)}yield x(a),a.startsWith(A)&&(yield T({messageList:r,conversationID:a}));var p=this._core.message.messageDataHandler.getLocalMessageList(a).slice(0,n.length+c),v=p.filter(e=>e.isRevoked),_=(yield this._messageHelper.updateRevokerInfo(v),s&&this._fetchedCompleteConversations.add(a),{nextReqMessageID:s?"":String(e),messageList:p,isCompleted:s}),M=p.map(e=>e.sequence);return{code:0,data:_,successLog:{message:`conversationID: ${a} nextReqMessageID: ${i} availableLocalMessagesCount: ${c} sequenceList: `+JSON.stringify(M)}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:a,nextReqMessageID:i,count:e}),successLog:{message:`conversationID: ${a} nextReqMessageID: ${i} availableLocalMessagesCount: ${c}}`}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}getMessageListHopping(r){return e(this,void 0,void 0,function*(){var a,i;let{conversationID:e,sequence:c,time:t,direction:u=n.FORWARD}=r,l=this._core.helper["isEmpty"];if(![n.BACKWARD,n.FORWARD].includes(u))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:s=O}=r,d=(s=s>O?O:s,null);if(e.startsWith(L)){if(d=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:e,sequence:c,count:s,direction:u})){let{nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:s,messageList:r,invisibleSequenceList:o}=d;if(this._core.message.messageDataHandler.storeSparseMessageList(r),u===n.FORWARD){let e=s&&t<1;return{code:0,data:{messageList:r,isCompleted:e,nextMessageSeq:e?"":t}}}if(u!==n.BACKWARD)return{code:0,data:d};{if(l(r)&&l(o))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};let e=(null==(a=null==r?void 0:r[r.length-1])?void 0:a.sequence)||0,t=(null==(i=null==o?void 0:o[o.length-1])?void 0:i.sequence)||0;return{code:0,data:{messageList:r.filter(e=>e.sequence>=c),isCompleted:!s,nextMessageSeq:s?Math.max(e,t)+1:""}}}}}else if(e.startsWith(A)&&(d=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:e,count:s+1,time:t,direction:u}))){let{messageList:e,lastMessageTime:t,hasNoMoreHistoryMessage:s}=d;return s||(u===n.FORWARD?e.shift():e.pop()),this._core.message.messageDataHandler.storeSparseMessageList(e),{code:0,data:{messageList:e,isCompleted:s,nextMessageTime:s?"":t}}}})}clearHistoryMessage(m){return e(this,void 0,void 0,function*(){let r,{appStore:s,common:{ChatError:n,getCurrentUserID:o},OuterConstant:{CONV_C2C:a,CONV_GROUP:i},message:c,apiMap:u}=this._core,l=s.conversationStore.getConversation(m);if(!l)throw new n({code:D});var d={fromAccount:o()},g=l["type"];g===a?(d.type=f,d.toAccount=m.replace(a,"")):g===i&&(d.type=y,d.toGroupID=m.replace(i,""));try{yield null==(r=null==u?void 0:u.setMessageRead)?void 0:r.call(u,{conversationID:m});let s=yield function(o){return e(this,void 0,void 0,function*(){var{fromAccount:e,type:s,toAccount:r,toGroupID:n}=o,e={From_Account:e,Type:s,To_Account:r,ToGroupid:n};return t.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:e})})}(d);return s&&(c.messageDataHandler.deleteConversationMessageList(m),this._clearedConversations.add(m),this._fetchedCompleteConversations.delete(m),this._c2cMessageHistory.clearHistoryMessageListFetchAnchors(m),this._updateConversationLastMessage(m)),{code:0,data:{conversationID:m},successLog:{message:"convID:"+m}}}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:t,moreMessage:"convID:"+m})}})}_updateConversationLastMessage(e){var t=this._core["appStore"];t.conversationStore.updateConversation(e,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:t}){var s=this._core.message.messageDataHandler.getLocalMessageList(e),r=s["length"];if(!t)return r;let n=-1;return null!=e&&e.startsWith(A)?n=s.findIndex(e=>e.ID===t):null!=e&&e.startsWith(L)&&(n=s.findIndex(e=>t.includes("-")?e.ID===t:String(e.sequence)===t)),-1===n?0:n}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:t,targetCount:s}){return!!this._clearedConversations.has(e)||t<s&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory(t){return e(this,arguments,void 0,function*({conversationID:t,nextReqMessageID:s,count:e}){var r=this._core.message.messageDataHandler.getLocalMessageList(t),n=r.length;let o=n,a={isCompleted:!1,nextReqMessageID:"",messageList:[]},i=0,c=n;return s?(c=r.findIndex(e=>t.startsWith(A)?e.ID===s:String(e.sequence)===s),i=c>e?c-e:0,o=c):i=e<n?n-e:0,a.nextReqMessageID=0===i?"":this._generateNextReqMessageID({conversationID:t,targetIndex:i}),a.messageList=r.slice(i,c),a.isCompleted=o<=e,t.startsWith(A)&&(yield x(t),yield T({messageList:a.messageList,conversationID:t})),a})}_generateNextReqMessageID({conversationID:e,targetIndex:t}){var s=this._core.message.messageDataHandler.getLocalMessageList(e);return e.startsWith("C2C")?s[t].ID:String(s[t].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}reset(){this._clearedConversations.clear(),this._fetchedCompleteConversations.clear(),this._c2cMessageHistory.reset()}dispose(){this.reset()}},ne=new class{constructor(){this._core=null}init(e){e=(this._core=e).helper;e.registerApi({apiName:"translateText",context:this})}translateText(o){return e(this,void 0,void 0,function*(){try{var{sourceLanguage:t,sourceTextList:s,targetLanguage:r}=o,n=yield function(a,i){return e(this,void 0,void 0,function*(){var e,{sourceTextList:t,sourceLanguage:s,targetLanguage:r}=a,{store:n,common:o}=i,s={SourceText:t,Source:s,Target:r,FromAccount:null==(e=n.get("login"))?void 0:e.tinyID,SDKAppID:null==(t=n.get("instance"))?void 0:t.sdkAppId},r=yield o.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:s});if(r){let{CmdErrorCode:e,TargetText:t}=r;return{cmdErrorCode:e,translatedTextList:t}}})}({sourceLanguage:t,sourceTextList:s,targetLanguage:r},this._core);if(n){let{cmdErrorCode:{ErrorCode:e,ErrorInfo:t},translatedTextList:s}=n;if(0===e)return{code:0,data:{translatedTextList:s}};throw{errorCode:e,errorInfo:t,message:t}}}catch(e){let{errorCode:t,errorInfo:s}=e||{};throw new this._core.helper.ChatError({functionName:"translateText",code:t,message:s})}})}},oe=new class{init(e){(this._core=e).helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(a){return e(this,void 0,void 0,function*(){var s,{message:e,language:r=c.ZH_PY}=a;let n=(e.payload||{})["url"];var o=null==(s=this._core.store.get("login"))?void 0:s.userID,e=(e.from===o&&"out"===e.flow&&(n=e.payload.remoteAudioUrl),this._validateVoiceFormat(n),(null==(o=p.exec(n))?void 0:o[1])||"mp3"),o=h[r]||m;try{let s=yield function(e){var{store:s,common:r}=t.core,{url:e,format:n,serverLanguageType:o}=e,o={BytesUrl:e,BytesEngServiceType:o,BytesVoiceFormat:n,Uint32Sdkappid:null==(e=s.get("instance"))?void 0:e.sdkAppId,Uint64SourceType:0};return r.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:o})}({url:n,format:e,serverLanguageType:o});if(s){let{CmdErrorCode:e,BytesResult:t}=s;if(0===e.ErrorCode)return{code:0,data:{result:t}};throw{code:e.ErrorCode,message:e.ErrorInfo}}}catch(s){let{code:e,message:t}=s||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:e,message:t})}})}_validateVoiceFormat(e){if(!p.test(e))throw new this._core.common.ChatError({code:2119})}};class re{constructor(e){var{constants:s,common:r,utils:n}=t.core,{CONV_C2C:s,CONV_GROUP:o}=s.OuterConstant,{ID:e,tinyID:a,from:i,to:c,clientTime:r=r.timeManager.getServerTimeSeconds()||0,random:u,sequence:l,cloudCustomData:d="",nick:g="",avatar:m="",clientSequence:h,conversationType:p,groupID:v,_elements:_,time:M}=e,a=(this.ID=e||a+`-${r}-`+u,this.messageRandom=u,this.from=i,this.messageSender=i,this.time=M,this.messageSequence=l,this.clientSequence=h||l,this.clientTime=r,this.cloudCustomData=d,this.messageReceiver=c,this.avatar=m,this.nick=g,n.deepCopyWithMethods(_));a.forEach(e=>{e.payload=e.content,delete e.content}),this.messageBody=a,e?p.startsWith(s)?this.receiverUserID=c:p.startsWith(o)&&(this.receiverGroupID=c):v?(this.receiverGroupID=v,this.messageReceiver=v):c&&(this.receiverUserID=c,this.messageReceiver=c)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(e=>e.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class ie{static parseServerPushElement(e){var e=e["MsgContent"],{MsgList:e=[],CompatibleText:t,AbstractList:s,Title:r,PbMsgKey:n,JsonMsgKey:o}=e||{},e=e.map(e=>b(e));return new ie({messageList:e,title:r,abstractList:s,compatibleText:t,pbDownloadKey:n,downloadKey:o})}constructor(e){this.type=t.core.constants.OuterConstant.MSG_MERGER;let{messageList:s,title:r,abstractList:n,compatibleText:o,pbDownloadKey:a="",downloadKey:i="",version:c=0,layersOverLimit:u=!1}=e,l=[];s.forEach(e=>{e&&(e=new re(e),l.push(e))}),this.content={messageList:l,title:r,abstractList:n,compatibleText:o,version:c,downloadKey:i,pbDownloadKey:a,layersOverLimit:u}}validateBeforeSend(){var e=t.core.helper["isEmpty"];return e(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{abstractList:e,compatibleText:t,downloadKey:s,layersOverLimit:r,pbDownloadKey:n,title:o,version:a,messageList:i}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{AbstractList:e,CompatibleText:t,JsonMsgKey:s,LayersOverLimit:r,PbMsgKey:n,Title:o,Version:a,MsgList:w(i)}}}}var ae=new class{init(e){let{message:t,helper:s,constants:{OuterConstant:r}}=this._core=e;t.messageFactory.registerElementClass(r.MSG_MERGER,ie),s.registerApi({apiName:"createMergerMessage",context:this}),s.registerApi({apiName:"sendMessage",context:this,matcher:e=>e[0].type===r.MSG_MERGER}),s.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(e){var t,s=this._core["common"];return e?(t=new ie(e.payload),s=s.getCurrentUserID(),(e=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setRelayFlag(!0),e.setElement(t),e):null}sendMessage(u,l){return e(this,void 0,void 0,function*(){var s,r,n;try{var i=function(s){let e="utf-8";t.core.helper.IN_BROWSER&&document&&(e=document.charset.toLowerCase());let r,n=0,o;if(o=s.length,"utf-8"===e||"utf8"===e)for(let e=0;e<o;e++)(r=s.codePointAt(e))<=127?n+=1:r<=2047?n+=2:r<=65535?n+=3:(n+=4,e++);else if("utf-16"===e||"utf16"===e)for(let e=0;e<o;e++)(r=s.codePointAt(e))<=65535?n+=2:(n+=4,e++);else n=s.replace(/[^\x00-\xff]/g,"aa").length;return n}(JSON.stringify(u));let o=u,a=null;if(11264<i){o=this._core.utils.deepCopyWithMethods(u);try{let{JsonMsgKey:s,PbMsgKey:r}=yield function(s){return e(this,void 0,void 0,function*(){var e=s["payload"]["messageList"],e={MsgList:w(e)};return t.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:e})})}(o),n=o["payload"];a=new ie(Object.assign(Object.assign({},n),{messageList:[],downloadKey:s,pbDownloadKey:r})),o.setElement(a)}catch(e){console.error(e)}}var{message:c}=(yield null==(n=null==(r=null==(s=this._core)?void 0:s.message)?void 0:r.messageSender)?void 0:n.sendMessage(o,l))["data"];return a&&c.setElement(u._elements),{code:0,data:{message:c}}}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({code:t})}})}downloadMergerMessage(c){return e(this,void 0,void 0,function*(){let o=this._core["ssoLog"],s=c.payload,{downloadKey:a,pbDownload:r,type:n}=s,i=function(e,t){var s={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(s[n[r]]=e[n[r]]);return s}(s,["downloadKey","pbDownload","type","messageList"]);try{let s=yield function(s){return e(this,void 0,void 0,function*(){return t.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:s}})})}(a),r=(s||{})["MsgList"],n=null==r?void 0:r.map(e=>{e=b(e);return new re(e)});return"function"==typeof c.isOnlineMessage?c.setElement({type:c.type,content:Object.assign({messageList:n},i)}):(c.payload.messageList=n,c.payload.downloadKey="",c.payload.pbDownloadKey=""),o.info("downloadMergerMessage"," success downloadKey:"+a),c}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:t,moreMessage:a})}})}},ce=new class{init(e){this._core=e,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(i){return e(this,void 0,void 0,function*(){let{appStore:t,message:e,common:{getCurrentUserID:s},utils:{isArray:r}}=this._core,{GroupId:n,To_Account:o}=i,a=(i.From_Account=i.From_Account||s(),null);if(n){a=this._generateGroupMessage(Object.assign(Object.assign({},i),{ToGroupId:n}));let e=t.userStore.getUserProfile(s());a.level=(null==e?void 0:e.level)||0,r(o)&&0<o.length&&(a._receiverList=o)}else o&&(a=this._generateC2CMessage(i));return e.messageSender.sendMessage(a,i)})}_generateC2CMessage(e){var{message:t,OuterConstant:{CONV_C2C:s}}=this._core,e=t.messageHelper.parseServerPushMessage(e),t=t.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:s,flow:I.OUT})),s=e["elements"];return t.setElement(s),t}_generateGroupMessage(e){var{message:t,OuterConstant:{CONV_GROUP:s}}=this._core,e=t.messageHelper.parseServerGroupMessage(e),t=t.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:s,flow:I.OUT})),s=e["elements"];return t.setElement(s),t}},ue=new class{init(e){var{helper:e,notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{GROUP_MESSAGE_PINNED:r}}=this._core=e;t.subscribeInnerEvent(s,r,this._handleGroupMessagePinned,this),e.registerApi({apiName:"pinGroupMessage",context:this}),e.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(a){return e(this,void 0,void 0,function*(){var{common:{},OuterConstant:{},helper:{ChatError:r}}=this._core,{groupID:s,message:n,isPinned:o}=a,n=n["sequence"];try{return yield function(i){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e,getCurrentUserID:s}=t.core["common"],{groupID:r,sequence:n,isPinned:o}=i,s=s(),a=o?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",r={GroupId:r,MsgSeq:n};return o?r.Pinner_Account=s:r.UnPinner_Account=s,e({servcmd:a,data:r})})}({groupID:s,sequence:n,isPinned:o}),{code:0,data:{}}}catch(e){let{errorCode:t,errorInfo:s}=e||{};throw new r({code:t,message:s})}})}getPinnedGroupMessageList(n){return e(this,void 0,void 0,function*(){let s=[];try{var r=yield function(r){return e(this,void 0,void 0,function*(){var e=r["groupID"],{buildAndSendPacket:s}=t.core["common"];return s({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:e}})})}({groupID:n});if(r){let{PinnedMsgList:e=[]}=r;s=yield this._updatePinnedMessageInfo({serverPinnedMessageList:e,groupID:n})}return{code:0,data:{messageList:s}}}catch(e){throw e}})}_handleGroupMessagePinned(e){let{message:{messageHelper:u,messageFactory:l},notificationCenter:d,OuterEvent:g,OuterConstant:m}=this._core;e.GroupTips.forEach(e=>{var{ToGroupId:e,MsgBody:{PinnedMsg:t,OpType:s,MsgOperatorMemberExtraInfo:r,SdkGroupMessageId:o}}=e,{UserId:r,NickName:n="",ImageUrl:a=""}=r;let i=null,c=!1;if(s===C){c=!0;let e=u.parseServerGroupMessage(t);(i=l.createMessage(Object.assign(Object.assign({},e),{conversationType:m.CONV_GROUP,flow:"in"}))).setElement(e.elements),i.pinnerInfo={userID:r,nick:n,avatar:a}}else if(s===S){let{ClientTime:e,Random:t,SenderTinyId:s,ServerTime:r,MsgSeq:n}=o;i={ID:`${s}-${e}-`+t,sequence:n,random:t,time:r,clientTime:e}}i&&d.emitOuterEvent(g.PINNED_GROUP_MESSAGE_UPDATED,{name:g.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:e,message:i,isPinned:c,operatorInfo:{userID:r,nick:n,avatar:a}}})})}_findMessageBySequence(e,t){var{messageDataHandler:s}=this._core["message"];return[...s.getLocalMessageList(e),...s.getSparseMessageList(e)].find(e=>e.sequence===t)}_updatePinnedMessageInfo(t){return e(this,arguments,void 0,function*({serverPinnedMessageList:o,groupID:e}){let{OuterConstant:{CONV_GROUP:t},utils:{isEmpty:s}}=this._core,a=[],i=[],c=[],u=new Map,l=""+t+e;for(let n=0;n<o.length;n++){let e=o[n],{Pinner_Account:t,MsgSeq:s}=e,r=this._findMessageBySequence(l,s);i.push(t),u.set(s,t),r?a.push(r):c.push(s)}let r=yield this._fetchPinnedMessageInfo({conversationID:l,messageSequenceList:c,pinnerIDList:i});if(r){let{pinnerInfoMap:s,messageList:e}=r;return a.push(...e),a.forEach(e=>{var t=e["sequence"],t=u.get(t),t=s[t]||{userID:t,nick:"",avatar:""};e.pinnerInfo=t}),a.sort((e,t)=>e.sequence-t.sequence),a}return[]})}_fetchPinnedMessageInfo(o){return e(this,void 0,void 0,function*(){var{message:{},user:{userProfile:e},utils:{isArray:t}}=this._core,{conversationID:s,messageSequenceList:n,pinnerIDList:r}=o,s=yield Promise.all([this._fetchMessageBySequence({conversationID:s,messageSequenceList:n}),null==e?void 0:e.getUserProfile({userIDList:r})]);if(t(s)){let r={};return((null==(n=s[1])?void 0:n.data)||[]).forEach(e=>{var{userID:e,nick:t="",avatar:s=""}=e;r[e]={userID:e,nick:t,avatar:s}}),{messageList:(null==(e=s[0])?void 0:e.messageList)||[],pinnerInfoMap:r}}})}_fetchMessageBySequence(n){return e(this,void 0,void 0,function*(){var{utils:{isEmpty:e},message:{messageHistory:t}}=this._core,{conversationID:s,messageSequenceList:r}=n;return e(r)?[]:t.getGroupRoamingMessagesByAnchor({conversationID:s,messageSequenceList:r,getType:3})})}},de=new class{constructor(){this.name="MessageEnhancer"}install(e){this._core=e,t.init(e),W.init(e),X.init(e),Q.init(e),se.init(e),N.init(e),ne.init(e),oe.init(e),P.init(e),ae.init(e),U.init(e),ce.init(e),ue.init(e),e.helper.registerValidateConfig({auth:H,params:V}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){var{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),Q.dispose(),se.dispose(),P.dispose(),U.dispose()}_reset(){se.reset()}};export{de as default};
|
|
1
|
+
function e(e,a,i,c){return new(i=i||Promise)(function(s,t){function r(e){try{o(c.next(e))}catch(e){t(e)}}function n(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?s(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(r,n)}o((c=c.apply(e,a||[])).next())})}let t=new class{init(e){this.core=e}};var s,n,I;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(s=s||{}),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(n=n||{});let o="MSG_REACTION",r="MSG_EXT",i=0,a=1,c={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},u="16k_zh",d="16k_en",l="16k_yue",g="16k_ja",m="16k_zh-PY",h={[c.ZH_CN]:u,[c.EN_US]:d,[c.YUE_HK]:l,[c.JA_JP]:g,[c.ZH_PY]:m},p=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,_={READ:0,UNREAD:1},v=1,M=2,E=3,f=1,y=2,C=(!function(e){e.IN="in",e.OUT="out"}(I=I||{}),16),S=17,R=2116,D=2500,A="C2C",L="GROUP",O=20;function T(m){return e(this,void 0,void 0,function*(){var s,{appStore:r,utils:{isEmpty:n},common:{getCurrentUserID:o},notificationCenter:a,OuterEvent:i}=t.core,{messageList:c,conversationID:u}=m,l=r.conversationStore.getConversationMap();let d=null==(s=l.get(u))?void 0:s.peerReadTime;if(!d){let s=u.replace(A,""),r=yield function(s){return e(this,void 0,void 0,function*(){var e={To_Account:s};return t.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:e})})}([s]);if(r){let e=r["ReadTime"];d=null==e?void 0:e[0],l.has(u)&&(l.get(u).peerReadTime=d)}}if(l.has(u)){let e=null==(s=l.get(u))?void 0:s.lastMessage;n(e)||e.fromAccount===o()&&e.lastTime<=d&&!e.isPeerRead&&(e.isPeerRead=!0,r.conversationStore.updateConversation(u,{lastMessage:e}))}let g=[];c.forEach(e=>{e.time<=d&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,g.push(e))}),a.emitOuterEvent(i.MESSAGE_READ_BY_PEER,{name:i.MESSAGE_READ_BY_PEER,data:g})})}function x(c){return e(this,void 0,void 0,function*(){var e;let{message:s,user:r,appStore:n,constants:{OuterConstant:o}}=t.core,a=n.conversationStore.getConversationMap();if(a.has(c)){let r=null==(e=a.get(c))?void 0:e.userProfile;if(r&&c.startsWith(o.CONV_C2C)){let{avatar:e,nick:s}=r;t.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:c,latestAvatar:e,latestNick:s,isSentByMe:!1})}}var i=((yield r.userProfile.getMyProfile())||{})["data"];if(i){let{avatar:e,nick:t}=i;s.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:c,latestAvatar:e,latestNick:t,isSentByMe:!0})}})}function q(e){let s,r=t.core["message"],{conversationID:n,messageID:o}=e;return s=(s=r.messageDataHandler.getLocalMessageList(n).find(e=>e.ID===o))||r.messageDataHandler.getSparseMessageList(n).find(e=>e.ID===o)}function w(e){return e.map(e=>{var{from:t,to:s,cloudCustomData:r,avatar:n,nick:o,ID:a,clientSequence:i,clientTime:c,messageRandom:u,messageSequence:l,time:d}=e;return{ClientSeq:i,CloudCustomData:r,From_Account:t,From_AccountHeadurl:n,From_AccountNick:o,Id:a,MsgBody:JSON.parse(JSON.stringify(e.transformElementsToServerFormat())),MsgClientTime:c,MsgRandom:u,Random:u,MsgSeq:l,MsgTimeStamp:d,ReceiverId:s,SenderId:t,To_Account:s}})}function b(e){var{From_Account:s,From_AccountHeadurl:r,From_AccountNick:n,GroupId:o,MsgClientTime:a,ClientSeq:i,To_Account:c,MsgTimeStamp:u,TinyId:l,MsgRandom:d,MsgSeq:g}=e;return{from:s,avatar:r,nick:n,clientTime:a,time:u,tinyID:l,random:d,sequence:g,to:c,groupID:o,clientSequence:i,_elements:null==(s=e.MsgBody)?void 0:s.map(e=>{var s=e["MsgType"];return t.core.message.messageFactory.getElementClass(s).parseServerPushElement(e)})}}var P=new class{constructor(){this._reactionsMap=new Map}init(e){var{helper:e,notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{MESSAGE_REACTION_UPDATED:r,MESSAGE_REACTION_UPDATED_SYNC:n}}=this._core=e;e.registerApi({apiName:"addMessageReaction",context:this}),e.registerApi({apiName:"removeMessageReaction",context:this}),e.registerApi({apiName:"getMessageReactions",context:this}),e.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),t.subscribeInnerEvent(s,r,this._handleReactionUpdated,this),t.subscribeInnerEvent(s,n,this._handleReactionSync,this)}addMessageReaction(m,h){return e(this,void 0,void 0,function*(){var{OuterConstant:s,helper:r}=this._core,{conversationID:n,ID:o,conversationType:a,from:i,to:c,clientSequence:u,random:l,time:d,sequence:g}=(this._validateMessageReactionBusinessCapability(),m),n=`conversationID:${n} messageID:${o} reactionID:`+h;try{return this._recordMessageReactedByMe(o,h),a===s.CONV_C2C?yield function(i,c){return e(this,void 0,void 0,function*(){var{from:e,to:s,clientSequence:r,random:n,time:o,reactionID:a}=i,s={From_Account:e,To_Account:s,MsgKey:r+`_${n}_`+o,Reaction:a,Add_Account:[null==(e=c.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:s})})}({from:i,to:c,clientSequence:u,random:l,time:d,reactionID:h},this._core):a===s.CONV_GROUP&&(yield function(n,o){return e(this,void 0,void 0,function*(){var{to:e,reactionID:s,sequence:r}=n,r={GroupId:e,MsgSeq:r,Reaction:s,Add_Account:[null==(e=o.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:r})})}({to:c,reactionID:h,sequence:g},this._core)),{code:0,successLog:{message:n}}}catch(e){this._removeMyReactionRecord(o,h);let t=(e||{})["errorCode"];throw new r.ChatError({functionName:"addMessageReaction",code:t,moreMessage:n})}})}removeMessageReaction(m,h){return e(this,void 0,void 0,function*(){var{OuterConstant:s,helper:r}=this._core,{conversationID:n,ID:o,conversationType:a,from:i,to:c,clientSequence:u,random:l,time:d,sequence:g}=(this._validateMessageReactionBusinessCapability(),m),n=`conversationID:${n} messageID:${o} reactionID:`+h;try{return this._removeMyReactionRecord(o,h),a===s.CONV_C2C?yield function(i,c){return e(this,void 0,void 0,function*(){var{from:e,to:s,clientSequence:r,random:n,time:o,reactionID:a}=i,s={From_Account:e,To_Account:s,MsgKey:r+`_${n}_`+o,Reaction:a,Del_Account:[null==(e=c.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:s})})}({from:i,to:c,clientSequence:u,random:l,time:d,reactionID:h},this._core):a===s.CONV_GROUP&&(yield function(n,o){return e(this,void 0,void 0,function*(){var{to:e,reactionID:s,sequence:r}=n,r={GroupId:e,MsgSeq:r,Reaction:s,Del_Account:[null==(e=o.store.get("login"))?void 0:e.userId]};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:r},o)})}({to:c,reactionID:h,sequence:g},this._core)),{code:0,successLog:{message:n}}}catch(e){let t=(e||{})["errorCode"];throw new r.ChatError({functionName:"removeMessageReaction",code:t,moreMessage:n})}})}getAllUserListOfMessageReaction(l){return e(this,void 0,void 0,function*(){this._validateMessageReactionBusinessCapability();let{message:s,reactionID:r,nextSeq:n=0}=l,o=100<l.count?100:l.count,a=s["conversationID"],{helper:i,constants:c}=this._core;try{var u;if(u=a.startsWith(c.OuterConstant.CONV_C2C)?yield function(u){return e(this,void 0,void 0,function*(){var{message:e,nextSeq:s,reactionID:r,count:n}=u,{from:e,to:o,clientSequence:a,random:i,time:c}=e,r={Reaction:r,NextSeq:s,Count:n,From_Account:e,To_Account:o,MsgKey:a+`_${i}_`+c};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:r})})}({message:s,reactionID:r,nextSeq:n,count:o}):yield function(a){return e(this,void 0,void 0,function*(){var{message:e,nextSeq:s,reactionID:r,count:n}=a,{sequence:e,to:o}=e,r={Reaction:r,NextSeq:s,GroupId:o,Count:n,MsgSeq:e};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:r})})}({message:s,reactionID:r,nextSeq:n,count:o})){let{Reaction_Account:e,NextSeq:t}=u,s=yield this._getUserProfileList(e);return{code:0,data:{nextSeq:t,isCompleted:0===n,userList:s}}}}catch(e){let t=(e||{})["errorCode"];throw new i.ChatError({functionName:"getAllUserListOfMessageReaction",code:t})}})}getMessageReactions(p){return e(this,void 0,void 0,function*(){var s=this._core["constants"],{messageList:r,maxUserCountPerReaction:n=10}=(this._validateMessageReactionBusinessCapability(),p),o=r[0];let a=null,i=new Map,{from:c,to:u,conversationType:l}=o,d=this._generateMessageKeyList(r,i),{Results:g=[]}=(l===s.OuterConstant.CONV_C2C?a=yield function(o){return e(this,void 0,void 0,function*(){var{from:e,to:s,messageKeyList:r,maxUserCountPerReaction:n}=o,e={From_Account:e,To_Account:s,MsgKeyList:r,Count:n};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:e})})}({from:c,to:u,messageKeyList:d,maxUserCountPerReaction:n}):l===s.OuterConstant.CONV_GROUP&&(a=yield function(n){return e(this,void 0,void 0,function*(){var{groupId:e,messageSequenceList:s,maxUserCountPerReaction:r}=n,e={GroupId:e,MsgSeqList:s,Count:r};return t.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:e})})}({groupId:u,messageSequenceList:d,maxUserCountPerReaction:n})),a||{}),m=this._extractUserIDsFromReactionResults(g),h=yield this._getUserProfileMap(m);return{code:0,data:{resultList:g.map(e=>{var{ReactionList:e,MsgSeq:t,MsgKey:s}=e;return{messageID:this._generateMessageID({messageSequence:t,messageKey:s,messageIDMap:i}),reactionList:e.map(e=>{var{Reaction:e,Count:t,Reaction_Account:s,ReactedByMe:r}=e;return{reactionID:e,totalUserCount:t,partialUserList:this._generatePartialUserInfo({userIDList:s,userProfileMap:h}),reactedByMyself:1===r}})}})}}})}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(e){let t=[];return null!=e&&e.forEach(e=>{var{ReactionList:e=[]}=e;e.forEach(e=>{e.Reaction_Account&&t.push(...e.Reaction_Account)})}),t}_getUserProfileList(s){return e(this,void 0,void 0,function*(){var e;try{var t=yield null==(e=this._core.user.userProfile)?void 0:e.getUserProfile({userIDList:s});return t?t.data:[]}catch(e){return[]}})}_getUserProfileMap(t){return e(this,void 0,void 0,function*(){let r=new Map;return(yield this._getUserProfileList(t)).forEach(e=>{var{nick:e,avatar:t,userID:s}=e;r.set(s,{nick:e,avatar:t,userID:s})}),r})}_recordMessageReactedByMe(e,t){e=e+"-"+t;this._reactionsMap.has(e)?this._reactionsMap.get(e).reactedByMe=!0:this._reactionsMap.set(e,{reactedByMe:!0})}_removeMyReactionRecord(e,t){e=e+"-"+t;this._reactionsMap.has(e)&&(this._reactionsMap.get(e).reactedByMe=!1)}_recordMessageReactionInfo(e){var{messageID:e,reactionID:t,reactionInfo:s}=e,e=e+"-"+t,t=this._reactionsMap.get(e)||{};this._reactionsMap.set(e,Object.assign(Object.assign({},t),s))}_validateMessageReactionBusinessCapability(){var{helper:e,constants:t}=this._core;if(!e.checkBusinessCapabilityBits(o))throw new e.ChatError({functionName:"addMessageReaction",code:t.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(t){let s=t["MsgReactionNotifyList"],{notificationCenter:d,constants:g}=this._core;s.forEach(l=>e(this,void 0,void 0,function*(){let{C2CMsgInfo:e,GroupMsgInfo:t,MsgReactionSummary:s}=l,{TinyId:r,MsgClientTime:n,MsgRandom:o}=Object.assign(Object.assign({},e),t),a=r+`-${n}-`+o,i=this._extractUserIDsFromReactionResults([{ReactionList:s}]),c=yield this._getUserProfileMap(i),u=s.map(e=>{var{Reaction:t,Reaction_Account:s}=e,r=this._generatePartialUserInfo({userIDList:s,userProfileMap:c}),s=s?e.Count:0,e=(null==(e=this._reactionsMap.get(a+"-"+t))?void 0:e.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:a,reactionID:t,reactionInfo:{reactionID:t,totalUserCount:s,partialUserList:r}}),{reactionID:t,totalUserCount:s,partialUserList:r,reactedByMyself:e}});d.emitOuterEvent(g.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:g.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:a,reactionList:u}})}))}_handleReactionSync(e){var{notificationCenter:t,constants:s}=this._core,{C2CMsgInfo:e={},GroupMsgInfo:r={},Reaction:n,OperateType:o}=e.MsgReactionNotify,{TinyId:e="",MsgClientTime:r=0,MsgRandom:a=0}=Object.assign(Object.assign({},e),r),r=e+`-${r}-`+a,a=r+"-"+n;if(1===o?this._recordMessageReactedByMe(r,n):this._removeMyReactionRecord(r,n),null!=(e=this._reactionsMap.get(a))&&e.reactionID){let e=this._reactionsMap.get(a);e.reactedByMyself=1===o,t.emitOuterEvent(s.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:s.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:r,reactionList:[e]}})}}_generatePartialUserInfo({userIDList:e,userProfileMap:t}){let s=[];return null!=e&&e.forEach(e=>{t.has(e)&&s.push(t.get(e))}),s}_generateMessageID(e){var{messageSequence:e,messageKey:t,messageIDMap:s}=e;return t?s.get(t):s.get(e)}_generateMessageKeyList(e,n){var t=this._core["constants"],s=e[0]["conversationType"];let r=[];return s===t.OuterConstant.CONV_C2C?r=e.map(e=>{var{clientSequence:e,random:t,time:s,ID:r}=e,e=e+`_${t}_`+s;return n.set(e,r),e}):s===t.OuterConstant.CONV_GROUP&&(r=e.map(e=>{var{ID:e,sequence:t}=e;return n.set(t,e),t})),r}},N=new class{init(e){var{helper:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:s,GROUP_MESSAGE_READ_RECEIPT:r},notificationCenter:n}=this._core=e;e.registerApi({apiName:"sendMessageReadReceipt",context:this}),e.registerApi({apiName:"getMessageReadReceiptList",context:this}),e.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),n.subscribeInnerEvent(t,s,this._handleC2CMessageReadReceipt,this),n.subscribeInnerEvent(t,r,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(s){return e(this,void 0,void 0,function*(){var{common:r,constants:n}=this._core,o=this._filterValidMessageSendByOther(s);if(0===o.length)throw new r.ChatError({code:n.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{let s=o[0]["conversationType"];return s===n.OuterConstant.CONV_C2C?yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={Peer_Account:r[0].conversationID.replace(s.OuterConstant.CONV_C2C,""),C2CMsgInfo:r.map(e=>{var{from:e,to:t,sequence:s,random:r,time:n,clientTime:o}=e;return{From_Account:e,To_Account:t,MsgSeq:s,MsgRandom:r,MsgTime:n,MsgClientTime:o}})};return e.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:s})})}(o):yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={GroupId:r[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:r.map(e=>({MsgSeq:e.sequence}))};return e.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:s})})}(o),{code:0,data:{}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}getMessageReadReceiptList(o){return e(this,void 0,void 0,function*(){let{common:r,constants:n}=this._core;try{let s=o[0]["conversationType"];if(s===n.OuterConstant.CONV_GROUP){let n=this._filterValidMessageSendByMe(o);if(0<(null==n?void 0:n.length)){let s=yield function(r){return e(this,void 0,void 0,function*(){var{common:e,constants:s}=t.core,s={GroupId:r[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:r.map(e=>({MsgSeq:e.sequence}))};return e.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:s})})}(n),r=(s||{})["GroupMsgReceiptList"];this._updateGroupMessagesReadReceiptInfo({messageList:o,readReceiptList:r})}}return{code:0,data:{messageList:o}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}getGroupMessageReadMemberList(g){return e(this,void 0,void 0,function*(){let{constants:s,common:r}=this._core,{message:n,filter:a=_.READ,cursor:i=""}=g,{conversationID:o,sequence:c,ID:u}=n,l=o.replace(s.OuterConstant.CONV_GROUP,""),d=100<=g.count?100:g.count;try{let o=yield function(a){return e(this,void 0,void 0,function*(){var{sequence:e,groupID:s,filter:r,cursor:n,count:o}=a,e={MsgSeq:e,GroupId:s,Filter:r,Cursor:n,Num:o};return t.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:e})})}({groupID:l,sequence:c,filter:a,cursor:i,count:d});if(o){let{Cursor:e,IsFinish:t,UnreadList:s,ReadList:r}=o,n={cursor:e,isCompleted:1===t,messageID:u,unreadUserIDList:[],readUserIDList:[]};return a===_.READ?n.readUserIDList=r.map(e=>e.Read_Account):a===_.UNREAD&&(n.unreadUserIDList=s.map(e=>e.Unread_Account)),{code:0,data:n}}}catch(e){let{errorCode:t,errorInfo:s}=e;throw new r.ChatError({code:t,message:s})}})}_handleC2CMessageReadReceipt(e){let n=[],{constants:t,helper:s}=this._core,{C2cMsgInfo:o,PeerReadTime:a,Peer_Account:i}=e;if(!s.isEmpty(o)){let r=""+t.OuterConstant.CONV_C2C+i;null!=o&&o.forEach(e=>{var{TinyId:e,MsgClientTime:t,MsgRandom:s}=e,e=e+`-${t}-`+s,t=q({conversationID:r,messageID:e});t&&!t.readReceiptInfo.isPeerRead&&(t.readReceiptInfo.isPeerRead=!0,t.readReceiptInfo.timestamp=a,n.push({userID:i,messageID:e,isPeerRead:!0,timestamp:a}))}),this._emitReadReceiptEventIfNeed(n)}}_updateGroupMessagesReadReceiptInfo(e){let{messageList:t,readReceiptList:s}=e,r=new Map;t.forEach(e=>{r.set(e.sequence,e)}),null!=s&&s.forEach(e=>{var t,s;0===e.Code&&({MsgSeq:e,ReadNum:t,UnreadNum:s}=e,e=r.get(e))&&(e.readReceiptInfo.readCount=t,e.readReceiptInfo.unreadCount=s)})}_handleGroupMessageReadReceipt(e){let i=[],s=this._core["constants"],t=e["GroupTips"];t.forEach(e=>{let{MsgBody:{GroupMsgReceiptList:t},GroupInfo:{GroupId:o}}=e,a=""+s.OuterConstant.CONV_GROUP+o;null!=t&&t.forEach(e=>{var{TinyId:e,MsgClientTime:t,MsgRandom:s,ReadNum:r,UnreadNum:n}=e,e=e+`-${t}-`+s,t=q({conversationID:a,messageID:e}),s={groupID:o,messageID:e,readCount:0,unreadCount:0};t&&("number"==typeof r&&(t.readReceiptInfo.readCount=r,s.readCount=r),"number"==typeof n&&(t.readReceiptInfo.unreadCount=n,s.unreadCount=n),i.push(s))})}),this._emitReadReceiptEventIfNeed(i)}_emitReadReceiptEventIfNeed(e){var{notificationCenter:t,OuterEvent:s}=this._core;0<e.length&&t.emitOuterEvent(s.MESSAGE_READ_RECEIPT_RECEIVED,{name:s.MESSAGE_READ_RECEIPT_RECEIVED,data:e})}_filterValidMessageSendByOther(e){return this._filterNeedReadReceiptMessages(e).filter(e=>{e=e.from;return e!==this._core.common.getCurrentUserID()})}_filterValidMessageSendByMe(e){let s=this._core.constants["OuterConstant"];return this._filterNeedReadReceiptMessages(e).filter(e=>{var{from:e,status:t}=e;return e===this._core.common.getCurrentUserID()&&t===s.MessageStatus.SUCCESS})}_filterNeedReadReceiptMessages(e){return e.filter(e=>!0===e.needReadReceipt)}dispose(){var{InnerEvent:{MESSAGE_PUSH:e},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:t,GROUP_MESSAGE_READ_RECEIPT:s},notificationCenter:r}=this._core;r.unSubscribeInnerEvent(e,t,this._handleC2CMessageReadReceipt,this),r.unSubscribeInnerEvent(e,s,this._handleGroupMessageReadReceipt,this)}};function G(i,c,u){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e}=t.core["common"],{from:s,to:r,clientSequence:n,random:o,time:a}=i;return e({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:s,To_Account:r,MsgKey:n+`_${o}_`+a,OperateType:u,ExtensionList:c}})})}function k(n,o,a){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e}=t.core["common"],{to:s,sequence:r}=n;return e({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:s,MsgSeq:r,OperateType:a,ExtensionList:o}})})}var U=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(e){var{notificationCenter:e,helper:{registerApi:t},InnerEvent:{MESSAGE_PUSH:s,LOGOUT:r},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:n}}=this._core=e;t({apiName:"setMessageExtensions",context:this}),t({apiName:"getMessageExtensions",context:this}),t({apiName:"deleteMessageExtensions",context:this}),e.subscribeInnerEvent(s,n,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(r,this.reset,this)}setMessageExtensions(l,d){return e(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");let{constants:{OuterConstant:t},ssoLog:e}=this._core,{ID:s,conversationID:r,sequence:n,time:o,conversationType:a}=l,i=d;20<d.length&&(i=d.slice(0,20),e.warn("setMessageExtensions","the length of extensions cannot exceed 20"));var c=this._generateServerExtensions(l,i),u=`convID:${r} messageID:${s} sequence:${n} time:${o} count:`+i.length;try{let r;if(a===t.CONV_C2C?r=yield G(l,c,v):a===t.CONV_GROUP&&(r=yield k(l,c,v)),r){let{resultList:e,successCount:t,failureCount:s}=this._handleModifyMessageExtensions(l,r);return{code:0,data:{extensions:e},successLog:{message:u+` successCount:${t} failCount:`+s}}}return{code:0,data:{extensions:[]}}}catch(t){let e=t["errorCode"];throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:e,moreMessage:u})}})}getMessageExtensions(a){return e(this,void 0,void 0,function*(){var{isUndefined:s}=this._core["utils"];this._validateMessageExtensionBusinessCapability("getMessageExtensions");let{conversationID:e,ID:r,sequence:t,time:n}=a,o=`convID:${e} messageID:${r} sequence:${t} time:`+n;try{let e,t=(this._completedFetchExtensions.has(r)&&(e=this._extensionsLatestSequenceMap.get(r)),yield this._fetchMessageExtensions(a,e));return s(e)&&1<t.length&&this._completedFetchExtensions.add(r),{code:0,data:{extensions:t},successLog:{message:o}}}catch(s){let{errorCode:e,errorInfo:t=""}=s||{};throw new this._core.common.ChatError({code:e,message:t,moreMessage:o})}})}deleteMessageExtensions(d,g){return e(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");let{utils:{isEmpty:t},constants:{OuterConstant:e}}=this._core,{conversationType:s,conversationID:r,sequence:n,ID:o,time:a}=d,i=E,c=[];t(g)||(i=M,null==g)||g.forEach(e=>{c.push({key:e,value:"",seq:0})});var u=`convID:${r} messageID:${o} sequence:${n} time:${a} operateType:`+i,l=this._generateServerExtensions(d,c);try{let r;if(s===e.CONV_C2C?r=yield G(d,l,i):s===e.CONV_GROUP&&(r=yield k(d,l,i)),r){let{resultList:e,successCount:t,failureCount:s}=this._handleModifyMessageExtensions(d,r);return{code:0,data:{extensions:e},successLog:{message:u+`successCount:${t} failCount:`+s}}}return{code:0,data:{extensions:[]}}}catch(t){let e=t["errorCode"];throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:e,moreMessage:u})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t,LOGOUT:s},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:r}}=this._core;e.unSubscribeInnerEvent(t,r,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(s,this.reset,this)}_handleModifyMessageExtensions(e,t){let s=e["ID"],r=t["Seq"],n=t.ExtensionList||[],o=[],a=0,i=0,c=[];return n.forEach(e=>{var{ErrorCode:e,Extension:t}=e,{Key:t,Value:s,Seq:r}=t;o.push({code:e,key:t,value:s}),0===e?a++:i++,c.push({key:t,value:s,seq:r})}),this._extensionsLatestSequenceMap.set(s,r),0<c.length&&this._updateLocalExtensions(e.ID,c),{resultList:o,successCount:a,failureCount:i}}_updateLocalExtensions(e,t){this._messageExtensionsMap.has(e)||this._messageExtensionsMap.set(e,new Map);let r=this._messageExtensionsMap.get(e);null!=t&&t.forEach(e=>{var{key:e,seq:t,value:s=""}=e;null!=r&&r.set(e,{value:s,seq:t})})}_fetchMessageExtensions(c,r){return e(this,void 0,void 0,function*(){let{constants:{OuterConstant:e},utils:{isEmpty:a}}=this._core;try{let o;var{conversationType:s,ID:i}=c;if(s===e.CONV_C2C?o=yield function(e,s){var r=t.core["common"]["buildAndSendPacket"],{from:e,to:n,clientSequence:o,random:a,time:i}=e;return r({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:e,To_Account:n,MsgKey:o+`_${a}_`+i,StartSeq:s}})}(c,r):s===e.CONV_GROUP&&(o=yield function(e,s){var r=t.core["common"]["buildAndSendPacket"],{to:e,sequence:n}=e;return r({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:e,MsgSeq:n,StartSeq:s}})}(c,r)),o){let{LatestSeq:e,ClearSeq:t,CompleteFlag:s}=o,r=(o.ExtensionList||[]).map(e=>({key:e.Key,value:e.Value,seq:e.Seq}));if(this._updateLocalExtensions(i,r),this._clearLocationExtensions(i,t),this._extensionsLatestSequenceMap.set(i,e),1!==s){let e=r[r.length-1].seq+1;return this._fetchMessageExtensions(c,e)}let n=[];if(this._messageExtensionsMap.has(i)){let e=this._messageExtensionsMap.get(i);null!=e&&e.forEach((e,t)=>{e=e.value;a(e)||n.push({key:t,value:e})})}return n}}catch(e){throw e}})}_clearLocationExtensions(e,r){if(!(r<=0)&&this._messageExtensionsMap.has(e)){let s=this._messageExtensionsMap.get(e);null!=s&&s.forEach((e,t)=>{e.seq<=r&&s.delete(t)})}}_generateServerExtensions(e,t){var s=e["ID"];if(this._messageExtensionsMap.has(s)){let r=this._messageExtensionsMap.get(s);return t.map(e=>{var{key:e,value:t}=e;let s=0;return{Key:e,Value:t,Seq:s=null!=r&&r.has(e)?null==(t=r.get(e))?void 0:t.seq:s}})}return t.map(e=>({Key:e.key,Value:e.value,Seq:0}))}_validateMessageExtensionBusinessCapability(e){var{helper:t,constants:s}=this._core;if(!t.checkBusinessCapabilityBits(r))throw new t.ChatError({functionName:e,code:s.ERROR_CODE.NO_USE,replacement1:e})}_handleMessageExtensionsNotify(e){var{SetKVInfo:e,DeleteKVInfo:t,ClearKVInfo:s,MsgOptType:r,TinyId:n,MsgLastSeq:o,ExtensionC2cMsgInfo:a,ExtensionGroupMsgInfo:i}=(null==e?void 0:e.MsgExtensionNotify)||{},{MsgClientTime:a,MsgRandom:i}=a||i||{},n=n+`-${a}-`+i;this._extensionsLatestSequenceMap.set(n,o),r===v?this._handleMessageExtensionsUpdated({messageID:n,updateMessageExtensionsInfo:e}):r===M?this._handleMessageExtensionsDeleted({messageID:n,deleteMessageExtensionsInfo:t}):r===E&&this._handleMessageExtensionsCleared({messageID:n,clearMessageExtensionsInfo:s})}_handleMessageExtensionsUpdated(e){let{notificationCenter:t,OuterEvent:s}=this._core,{messageID:r,updateMessageExtensionsInfo:n=[]}=e,o=[];n.forEach(e=>{var{MsgKeyValue:e=[]}=e,e=e.map(e=>(o.push({key:e.Key,value:e.Value}),{key:e.Key,value:e.Value,seq:e.Seq}));this._updateLocalExtensions(r,e)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_UPDATED,{name:s.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:r,extensions:o}})}_handleMessageExtensionsDeleted(e){let{notificationCenter:t,OuterEvent:s}=this._core,{messageID:r,deleteMessageExtensionsInfo:n=[]}=e,o=[];n.forEach(e=>{var{MsgKeyValue:e=[]}=e,e=e.map(e=>(o.push(e.Key),{key:e.Key,seq:e.Seq}));this._updateLocalExtensions(r,e)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_DELETED,{name:s.MESSAGE_EXTENSIONS_DELETED,data:{messageID:r,keyList:o}})}_handleMessageExtensionsCleared(e){let{notificationCenter:t,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:s},utils:{isEmpty:r}}=this._core,{messageID:n,clearMessageExtensionsInfo:o=[]}=e,a=[];o.forEach(e=>{let s=e["ClearMsgSeq"];this._messageExtensionsMap.has(n)&&(this._messageExtensionsMap.get(n)||[]).forEach((e,t)=>{e.seq<=s&&!r(e.value)&&a.push(t)}),this._clearLocationExtensions(n,s)}),t.emitOuterEvent(s,{name:s,data:{messageID:n,keyList:a}})}};let F={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var{OuterConstant:s}=t.core["constants"];return e.status!==s.MessageStatus.SUCCESS?"message is not success":!0===e.isSupportExtension||"message is not support extension"}},$={setMessageExtensions:[F,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[F],deleteMessageExtensions:[F]},V=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>"GROUP"===e||"conversationType should be GROUP."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var t="string"==typeof(null==e?void 0:e.text)&&("string"!=typeof e.text||0!==(null==(t=null==e?void 0:e.text)?void 0:t.length))||"payload.text is invalid.";return!0!==t?t:!(null!=e&&e.atUserList&&!Array.isArray(e.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!e.startsWith("C2C")&&!e.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{var{isString:s,isNumber:r}=t.core["utils"];return s(null==e?void 0:e.description)?r(null==e?void 0:e.longitude)?!!r(null==e?void 0:e.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"!=typeof e?"maxUserCountPerReaction is invalid.":!(e<0||10<e)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>"success"===e.status||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),$),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),H=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0});class K{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,function*(){var{to:e,messageIdentifiers:t}=s,e={From_Account:this._core.common.getCurrentUserID(),To_Account:e,MsgKeyList:t};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:e})})}revokeMessage(o){return e(this,void 0,void 0,function*(){var{to:e,from:t,sequence:s,time:r,random:n}=o;return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:{MsgInfo:{From_Account:t,To_Account:e,MsgSeq:s,MsgRandom:n,MsgTimeStamp:r}}})})}}class B{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,function*(){var{to:e,messageIdentifiers:t}=s,e={GroupId:e,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:t};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:e})})}revokeMessage(s){return e(this,void 0,void 0,function*(){var{to:e,sequence:t}=s;return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:{GroupId:e,MsgSeqList:[{MsgSeq:t}]}})})}}class j{constructor(e){this._core=e}generateRevokeMessage(e){var{conversationID:e,sequence:t,random:s,tinyID:r,clientTime:n,revokeReason:o,revoker:a}=e;let i={};var c=this._core.message["messageDataHandler"];return(i=c.revokeMessage({conversationID:e,sequence:t,random:s,revoker:a}))||(i={conversationID:e,sequence:t},r&&n&&s&&(i.ID=r+`-${n}-`+s)),i.revoker=a,i.revokeReason=o,i.revokerInfo={userID:a,nick:"",avatar:""},i}updateRevokerInfo(t){return e(this,void 0,void 0,function*(){var e=t.map(e=>e.revoker);try{let s=yield this._fetchUserInfos(e);s&&t.forEach(e=>{var t=e["revoker"];s[t]&&(e.revokerInfo.nick=s[t].nick||"",e.revokerInfo.avatar=s[t].avatar||"",e.revokerInfo.userID=t)})}catch(e){console.debug(e)}})}_fetchUserInfos(t){return e(this,void 0,void 0,function*(){var e=yield null==(e=this._core.user.userProfile)?void 0:e.getUserProfile({userIDList:t});return null!=e&&e.data?null==(e=e.data)?void 0:e.reduce((e,{userID:t,nick:s,avatar:r})=>(e[t]={nick:s||"",avatar:r||""},e),{}):null})}}var W=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new B(e),this._c2cMessageAction=new K(e),this._messageHelper=new j(e);e=e.helper;e.registerApi({apiName:"deleteMessage",context:this}),e.registerApi({apiName:"revokeMessage",context:this}),e.registerApi({apiName:"resendMessage",context:this}),e.registerApi({apiName:"findMessage",context:this})}deleteMessage(t){return e(this,void 0,void 0,function*(){let c=[],u=[],{conversationID:l,conversationType:d}=t[0],e=l.replace(d,"");if("@TIM#SYSTEM"===d)throw new this._core.helper.ChatError({code:R});if(t.forEach(e=>{var{conversationID:t,conversationType:s,status:r,_onlineOnlyFlag:n,sequence:o,random:a,time:i}=e||{};if("success"===r&&t===l&&s===d){if(!n){let e="C2C"===s?o+`_${a}_`+i:String(o);c.push(e)}u.push(e)}}),0===c.length)return this._handleDeleteMessageSuccess(u),{code:0,data:{messageList:u}};30<c.length&&(c=c.slice(0,30),u=u.slice(0,30));try{return"C2C"===d?yield this._c2cMessageAction.deleteMessage({to:e,messageIdentifiers:c}):yield this._groupMessageAction.deleteMessage({to:e,messageIdentifiers:c}),this._handleDeleteMessageSuccess(u),{code:0,data:{messageList:u}}}catch(c){let e=c["errorCode"];throw new this._core.helper.ChatError({functionName:"deleteMessage",code:e})}})}revokeMessage(u){return e(this,void 0,void 0,function*(){let s,{conversationType:e,isRevoked:t,ID:r,type:n,from:o,to:a}=u;var i,c=`type:${n} from:${o} to:${a} ID:`+r;if("@TIM#SYSTEM"===e)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(t)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:c});try{if(i="C2C"===e?yield this._c2cMessageAction.revokeMessage(u):yield this._groupMessageAction.revokeMessage(u)){let e=i["RecallRetList"],t=(null==(s=null==e?void 0:e[0])?void 0:s.RetCode)||0;if(0!==t)throw new this._core.helper.ChatError({code:t,moreMessage:c});return u.isRevoked=!0,yield this._handleRevokeMessageSuccess(u),{code:0,data:{message:u},successLog:{message:c}}}}catch(s){let e=s["errorCode"];throw new this._core.helper.ChatError({functionName:"revokeMessage",code:e,moreMessage:c})}})}resendMessage(t,s){return e(this,void 0,void 0,function*(){var e;return t.isResend=!0,t.status="unSend",null==(e=null==(e=this._core)?void 0:e.apiMap)?void 0:e.sendMessage(t,s)})}findMessage(e){return this._core.message.messageDataHandler.findMessage(e)}_handleDeleteMessageSuccess(n){if(0!==n.length){let{message:{messageDataHandler:s},common:{isTopic:e},notificationCenter:t,InnerEvent:r}=this._core;n.forEach(t=>{t.isDeleted=!0;var e=s.getLocalMessageList(t.conversationID);null!=e&&e.forEach(e=>{e.ID===t.ID&&(e.isDeleted=!0)})});var{conversationID:n=""}=n[0];e(n)?t.emitInnerEvent(r.TOPIC_MESSAGE_DELETED,n):t.emitInnerEvent(r.MESSAGE_DELETED,n)}}_handleRevokeMessageSuccess(n){return e(this,void 0,void 0,function*(){var e=null==(e=this._core.store.get("login"))?void 0:e.userId,{conversationID:t,sequence:s,random:r}=n;this._core.message.messageDataHandler.revokeMessage({conversationID:t,sequence:s,random:r,revoker:e}),yield this._messageHelper.updateRevokerInfo([n])})}};class Y{static parseServerPushElement(e){var{MsgContent:e={}}=e,{Index:e,Data:t}=e;return new Y({index:e,data:t})}constructor(e){this.type=s.MSG_FACE;var{index:e,data:t}=e;this.content={index:e,data:t}}validateBeforeSend(){var e;return"number"==typeof(null==(e=this.content)?void 0:e.index)&&"string"==typeof(null==(e=this.content)?void 0:e.data)?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{index:e,data:t}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{Index:e,Data:t}}}}class J{static parseServerPushElement(e){var{MsgContent:e={}}=e,{Desc:e,Longitude:t,Latitude:s}=e;return new J({description:e,longitude:t,latitude:s})}constructor(e){this.type=s.MSG_LOCATION;var{description:e,longitude:t,latitude:r}=e;this.content={description:e,longitude:t,latitude:r}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{description:e,longitude:t,latitude:s}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{Desc:e,Longitude:t,Latitude:s}}}}var X=new class{init(e){(this._core=e).message.messageFactory.registerElementClass(s.MSG_FACE,Y),e.message.messageFactory.registerElementClass(s.MSG_LOCATION,J),e.helper.registerApi({apiName:"createFaceMessage",context:this}),e.helper.registerApi({apiName:"createTextAtMessage",context:this}),e.helper.registerApi({apiName:"createForwardMessage",context:this}),e.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(e){var t,s;return e?({index:t,data:s}=(null==e?void 0:e.payload)||{},t=new Y({index:t,data:s}),s=this._core.common.getCurrentUserID(),(e=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setElement(t),e):null}createTextAtMessage(e){let r=((null==e?void 0:e.payload)||{})["atUserList"],n=this._core.apiMap.createTextMessage(e),o=this._core["OuterConstant"];if(!n)return null;if(Array.isArray(r)){let t=[],s=[];r.forEach(e=>{e!==o.MSG_AT_ALL?(t.push({GroupAtAllFlag:i,GroupAt_Account:e}),s.push(e)):(t.push({GroupAtAllFlag:a}),s.push(o.MSG_AT_ALL))}),n._groupAtInfoList=t,n.atUserList=s}return n}createForwardMessage(e){var{helper:t,OuterConstant:s}=this._core,{to:e,conversationType:r,priority:n,payload:o,needReadReceipt:a,receiverList:i,cloudCustomData:c="",isSupportExtension:u=!1}=e;if(!Array.isArray(o._elements))throw new t.ChatError({functionName:"createForwardMessage",code:2454});if(o.type===s.MSG_GRP_TIP)throw new t.ChatError({functionName:"createForwardMessage",code:2453});s=this._core.common.getCurrentUserID(),t=this._core.message.messageFactory.createMessage({to:e,from:s,conversationType:r,isPlaceMessage:0,priority:n,payload:o,needReadReceipt:a,isSupportExtension:u,cloudCustomData:c,receiverList:i});return t.setRelayFlag(!0),t.setElement(o._elements[0]),t}createLocationMessage(e){var t,s,r;return e?({description:t,longitude:s,latitude:r}=(null==e?void 0:e.payload)||{},t=new J({description:t,longitude:s,latitude:r}),s=this._core.common.getCurrentUserID(),(r=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setElement(t),r):null}};class Z{init(e){this._messageHelper=new j(e);var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_REVOKED_MESSAGE:s},helper:{registerWorkflowStep:r},constants:{WORKFLOW_NAME:n,WORKFLOW_STEP:o}}=this._core=e;e.subscribeInnerEvent(t,s,this._handleC2CNotifyMessage,this),r(n.SYNC_SERVER_INFO_AFTER_RE_ONLINE,o.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(e){e=e.C2cNotifyMsgArray;null!=e&&e.forEach(e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)})}_handleC2CRevokeMessage(t){return e(this,void 0,void 0,function*(){try{var{C2cWithdrawInfoArray:e}=t["WithdrawC2cMsgNotify"];yield this._parseAndEmitC2CRevokedMessages(e)}catch(e){console.debug(e)}})}_parseAndEmitC2CRevokedMessages(s){return e(this,void 0,void 0,function*(){let i=[],{notificationCenter:e,OuterEvent:t,common:{getCurrentUserID:c}}=this._core;s.forEach(e=>{var{MsgRand:t,MsgSeq:s,To_Account:r,From_Account:n,RevokerInfo:{Revoker_Account:o,Revoke_Reason:a}}=e,r=c()===n?"C2C"+r:"C2C"+n,e=(null==(n=null==e?void 0:e.RevokerInfo)?void 0:n.Reason)||a,n=this._messageHelper.generateRevokeMessage({conversationID:r,sequence:s,random:t,revoker:o,revokeReason:e});i.push(n)}),0<i.length&&(yield this._messageHelper.updateRevokerInfo(i),e.emitOuterEvent(t.MESSAGE_REVOKED,{name:t.MESSAGE_REVOKED,data:i}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(t){return e(this,void 0,void 0,function*(){var e=t.result["revokedMessageList"];yield this._parseAndEmitC2CRevokedMessages(e)})}dispose(){var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_REVOKED_MESSAGE:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleC2CNotifyMessage,this)}}class z{init(e){this._messageHelper=new j(e);var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core=e;e.subscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(e){e=e.GroupTips;null!=e&&e.forEach(e=>{var t;Array.isArray(null==(t=null==e?void 0:e.MsgBody)?void 0:t.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)})}_handleGroupRevokeMessage(o){return e(this,void 0,void 0,function*(){try{let{RevokerInfo:c,MsgBody:{GroupWithdrawInfoArray:e},GroupInfo:u}=o,l=[],d=[],{notificationCenter:t,OuterEvent:s,utils:{isEmpty:r},common:{isCommunity:n}}=this._core,g=!1;u&&(g=n({groupID:u.GroupId})||!r(u.TopicId)),e.forEach(e=>{var{Random:e,MsgSeq:t,GroupId:s,MsgClientTime:r,TinyId:n,TopicId:o,RevokerInfo:{Revoker_Account:a=(null==c?void 0:c.Revoker_Account)||"",Reason:i=(null==c?void 0:c.Reason)||""}}=e,o=this._messageHelper.generateRevokeMessage({conversationID:o?"GROUP"+o:"GROUP"+s,sequence:t,random:e,tinyID:n,clientTime:r,revoker:a,revokeReason:i});(g?(o.revokerInfo.nick=u.From_AccountNick,o.revokerInfo.avatar=u.From_AccountHeadurl,l):d).push(o)}),0<d.length&&(yield this._messageHelper.updateRevokerInfo(d),l.push(...d)),0!==l.length&&t.emitOuterEvent(s.MESSAGE_REVOKED,{name:s.MESSAGE_REVOKED,data:l})}catch(e){console.debug(e)}})}dispose(){var{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}}var Q=new class{constructor(){this._c2cMessageReceiver=new Z,this._groupMessageReceiver=new z}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};class ee{constructor(e){var t=(this._core=e)["constants"];this._messageHelper=new j(e),e.helper.registerWorkflowStep(t.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,t.WORKFLOW_STEP.GROUP_REVOKED_NOTICE_RECOVER,this._recoverGroupRevokeNotice,this)}getRoamingMessagesByAnchor(e){return this._core.message.messageHistory.getGroupRoamingMessagesByAnchor(e)}_recoverGroupRevokeNotice(e){let{recoverRevokeNoticeGroupIDList:t=[]}=e.result,r=this._filterValidGroupIDList(t);0!==r.length&&(e=Math.min(Math.ceil(r.length/10),5),Promise.all(Array.from({length:e},(e,t)=>{var t=10*t,s=Math.min(10+t,r.length);return this._fetchGroupRevokeNotice(r.slice(t,s))})).catch(e=>console.error(e)))}_fetchGroupRevokeNotice(s){return e(this,void 0,void 0,function*(){var r;try{var n=yield function(a){return e(this,void 0,void 0,function*(){let{appStore:e,constants:{OuterConstant:r},common:n}=t.core,o=e.groupStore.getGroupMap(),s={NotifyReqList:a.map(e=>{var s=o.get(e);return{NotifyType:1,Limit:20,Type:n.isCommunity({type:s.type,groupID:e})?r.GRP_COMMUNITY:void 0,GroupId:e,BeginTime:(null==s?void 0:s._lastRevokedTime)||0,EndTime:1e3*t.core.common.timeManager.getServerTimeMs()}})||[]};return n.buildAndSendPacket({servcmd:"group_open_http_svc.batch_get_group_notify",data:s})})}(s);if(n){let s=[];null!=(r=null==n?void 0:n.NotifyRspList)&&r.forEach(e=>{var{GroupId:e,NotifyMsgList:t}=e,e=this._parseServerRevokeMessageList({groupID:e,serverRevokeMessageList:t});s.push(...e)}),0!==s.length&&(yield this._emitMessageRevokedEvent(s))}}catch(e){console.error(e)}})}_parseServerRevokeMessageList(e){let{serverRevokeMessageList:t,groupID:a}=e,i=[];return null!=t&&t.forEach(e=>{var{ClientTime:e,MsgSeq:t,Random:s,RevokerInfo:{Revoker_Account:r="",Reason:n=""}}=e,o="GROUP"+a,o=this._messageHelper.generateRevokeMessage({conversationID:o,sequence:t,random:s,clientTime:e,revoker:r,revokeReason:n});i.push(o)}),i}_filterValidGroupIDList(e){let{OuterConstant:t}=this._core["constants"],s=this._core.appStore.groupStore.getGroupMap();return(null==e?void 0:e.filter(e=>{return!(!s.has(e)||(null==(e=s.get(e))?void 0:e.type)===t.GRP_AVCHATROOM||null!=e&&e.isSupportTopic)}))||[]}_emitMessageRevokedEvent(s){return e(this,void 0,void 0,function*(){var{notificationCenter:e,OuterEvent:t}=this._core;yield this._messageHelper.updateRevokerInfo(s),e.emitOuterEvent(t.MESSAGE_REVOKED,{name:t.MESSAGE_REVOKED,data:s})})}}class te{constructor(e){this._historyMessageListFetchAnchors=new Map,this._core=e,this._messageHelper=new j(e)}getRoamingMessagesByAnchor(h){return e(this,void 0,void 0,function*(){var n;try{var{conversationID:o,count:a,messageID:i,time:c,direction:u}=h;let s=c,r="";if(!c){let e=i?this._core.message.messageDataHandler.findMessage(i):null;if(s=(null==e?void 0:e.time)||0,i&&this._historyMessageListFetchAnchors.has(o)){let e=this._historyMessageListFetchAnchors.get(o);s=e.lastMessageTime,r=e.messageKey}}var l=o.replace(A,""),d=yield function(a){return e(this,void 0,void 0,function*(){var{peerAccount:e,count:s,lastMessageTime:r,messageKey:n,direction:o}=a,e={Peer_Account:e,MaxCnt:s,WithRecalledMsg:1,LastMsgTime:r,MsgKey:n,GetDirection:o};return t.core.common.buildAndSendPacket({servcmd:"openim.getroammsg",data:e})})}({count:a,lastMessageTime:s,messageKey:r,peerAccount:l,direction:u});if(d){let{MsgList:r=[],Complete:e,MsgKey:t,LastMsgTime:s}=d;this._historyMessageListFetchAnchors.set(o,{messageKey:t,lastMessageTime:s});var g=[];for(let s=0;s<r.length;s++){let e=r[s],t=this._parseMessage(e);g.push(t)}var m=this._core.message.messageHelper.filterValidMessages(g);return{messageList:m,nextReqMessageIDFromServer:null==(n=m[0])?void 0:n.ID,lastMessageTime:s,hasNoMoreHistoryMessage:1===e}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}clearHistoryMessageListFetchAnchors(e){this._historyMessageListFetchAnchors.delete(e)}reset(){this._historyMessageListFetchAnchors.clear()}_parseMessage(e){var t=A,e=this._core.message.messageHelper.parseServerPushMessage(e),t=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:t,flow:"in"}));return t.setElement(e.elements),t}}var se=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}init(e){this._core=e,this._groupMessageHistory=new ee(e),this._c2cMessageHistory=new te(e),this._messageHelper=new j(e),e.helper.registerApi({apiName:"getMessageList",context:this}),e.helper.registerApi({apiName:"getMessageListHopping",context:this}),e.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(s){return e(this,void 0,void 0,function*(){try{var{conversationID:a,nextReqMessageID:i}=s,e=O;if("@TIM#SYSTEM"===a)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};var c=this._getAvailableLocalMessagesCount({conversationID:a,nextReqMessageID:i});if(this._needFetchHistoryMessageList({conversationID:a,availableLocalMessagesCount:c,targetCount:e})){let o=null;if(a.startsWith(L)?o=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:a,sequence:Number(i),count:e,direction:n.FORWARD}):a.startsWith(A)&&(o=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:a,messageID:i,count:e,direction:n.FORWARD})),o){let{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:s,messageList:r}=o,n=this._core.message.messageDataHandler.prependLocalMessageList({messageList:r,conversationID:a});var u=a,{appStore:l,message:d,OuterConstant:g}=t.core,l=l.conversationStore.getConversation(u),m=d.messageDataHandler.getLocalMessageList(u);if(l&&0!==m.length&&u!==g.CONV_SYSTEM){var h=[];for(let e=0;e<m.length;e++)"in"!==m[e].flow?"out"!==m[e].flow||m[e].isRead||m[e].setIsRead(!0):h.push(m[e]);let t=0;if(l.type===g.CONV_C2C){let e=h.slice(-l.unreadCount).filter(e=>e.isRevoked).length;t=h.length-l.unreadCount-e}else t=h.length-l.unreadCount;for(let e=0;e<t&&!h[e].isRead;e++)h[e].setIsRead(!0)}yield x(a),a.startsWith(A)&&(yield T({messageList:r,conversationID:a}));var p=this._core.message.messageDataHandler.getLocalMessageList(a).slice(0,n.length+c),v=p.filter(e=>e.isRevoked),_=(yield this._messageHelper.updateRevokerInfo(v),s&&this._fetchedCompleteConversations.add(a),{nextReqMessageID:s?"":String(e),messageList:p,isCompleted:s}),M=p.map(e=>e.sequence);return{code:0,data:_,successLog:{message:`conversationID: ${a} nextReqMessageID: ${i} availableLocalMessagesCount: ${c} sequenceList: `+JSON.stringify(M)}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:a,nextReqMessageID:i,count:e}),successLog:{message:`conversationID: ${a} nextReqMessageID: ${i} availableLocalMessagesCount: ${c}}`}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}getMessageListHopping(r){return e(this,void 0,void 0,function*(){var a,i;let{conversationID:e,sequence:c,time:t,direction:u=n.FORWARD}=r,l=this._core.helper["isEmpty"];if(![n.BACKWARD,n.FORWARD].includes(u))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:s=O}=r,d=(s=s>O?O:s,null);if(e.startsWith(L)){if(d=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:e,sequence:c,count:s,direction:u})){let{nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:s,messageList:r,invisibleSequenceList:o}=d;if(this._core.message.messageDataHandler.storeSparseMessageList(r),u===n.FORWARD){let e=s&&t<1;return{code:0,data:{messageList:r,isCompleted:e,nextMessageSeq:e?"":t}}}if(u!==n.BACKWARD)return{code:0,data:d};{if(l(r)&&l(o))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};let e=(null==(a=null==r?void 0:r[r.length-1])?void 0:a.sequence)||0,t=(null==(i=null==o?void 0:o[o.length-1])?void 0:i.sequence)||0;return{code:0,data:{messageList:r.filter(e=>e.sequence>=c),isCompleted:!s,nextMessageSeq:s?Math.max(e,t)+1:""}}}}}else if(e.startsWith(A)&&(d=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:e,count:s+1,time:t,direction:u}))){let{messageList:e,lastMessageTime:t,hasNoMoreHistoryMessage:s}=d;return s||(u===n.FORWARD?e.shift():e.pop()),this._core.message.messageDataHandler.storeSparseMessageList(e),{code:0,data:{messageList:e,isCompleted:s,nextMessageTime:s?"":t}}}})}clearHistoryMessage(m){return e(this,void 0,void 0,function*(){let r,{appStore:s,common:{ChatError:n,getCurrentUserID:o},OuterConstant:{CONV_C2C:a,CONV_GROUP:i},message:c,apiMap:u}=this._core,l=s.conversationStore.getConversation(m);if(!l)throw new n({code:D});var d={fromAccount:o()},g=l["type"];g===a?(d.type=f,d.toAccount=m.replace(a,"")):g===i&&(d.type=y,d.toGroupID=m.replace(i,""));try{yield null==(r=null==u?void 0:u.setMessageRead)?void 0:r.call(u,{conversationID:m});let s=yield function(o){return e(this,void 0,void 0,function*(){var{fromAccount:e,type:s,toAccount:r,toGroupID:n}=o,e={From_Account:e,Type:s,To_Account:r,ToGroupid:n};return t.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:e})})}(d);return s&&(c.messageDataHandler.deleteConversationMessageList(m),this._clearedConversations.add(m),this._fetchedCompleteConversations.delete(m),this._c2cMessageHistory.clearHistoryMessageListFetchAnchors(m),this._updateConversationLastMessage(m)),{code:0,data:{conversationID:m},successLog:{message:"convID:"+m}}}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:t,moreMessage:"convID:"+m})}})}_updateConversationLastMessage(e){var t=this._core["appStore"];t.conversationStore.updateConversation(e,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:t}){var s=this._core.message.messageDataHandler.getLocalMessageList(e),r=s["length"];if(!t)return r;let n=-1;return null!=e&&e.startsWith(A)?n=s.findIndex(e=>e.ID===t):null!=e&&e.startsWith(L)&&(n=s.findIndex(e=>t.includes("-")?e.ID===t:String(e.sequence)===t)),-1===n?0:n}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:t,targetCount:s}){return!!this._clearedConversations.has(e)||t<s&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory(t){return e(this,arguments,void 0,function*({conversationID:t,nextReqMessageID:s,count:e}){var r=this._core.message.messageDataHandler.getLocalMessageList(t),n=r.length;let o=n,a={isCompleted:!1,nextReqMessageID:"",messageList:[]},i=0,c=n;return s?(c=r.findIndex(e=>t.startsWith(A)?e.ID===s:String(e.sequence)===s),i=c>e?c-e:0,o=c):i=e<n?n-e:0,a.nextReqMessageID=0===i?"":this._generateNextReqMessageID({conversationID:t,targetIndex:i}),a.messageList=r.slice(i,c),a.isCompleted=o<=e,t.startsWith(A)&&(yield x(t),yield T({messageList:a.messageList,conversationID:t})),a})}_generateNextReqMessageID({conversationID:e,targetIndex:t}){var s=this._core.message.messageDataHandler.getLocalMessageList(e);return e.startsWith("C2C")?s[t].ID:String(s[t].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}reset(){this._clearedConversations.clear(),this._fetchedCompleteConversations.clear(),this._c2cMessageHistory.reset()}dispose(){this.reset()}},ne=new class{constructor(){this._core=null}init(e){e=(this._core=e).helper;e.registerApi({apiName:"translateText",context:this})}translateText(o){return e(this,void 0,void 0,function*(){try{var{sourceLanguage:t,sourceTextList:s,targetLanguage:r}=o,n=yield function(a,i){return e(this,void 0,void 0,function*(){var e,{sourceTextList:t,sourceLanguage:s,targetLanguage:r}=a,{store:n,common:o}=i,s={SourceText:t,Source:s,Target:r,FromAccount:null==(e=n.get("login"))?void 0:e.tinyID,SDKAppID:null==(t=n.get("instance"))?void 0:t.sdkAppId},r=yield o.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:s});if(r){let{CmdErrorCode:e,TargetText:t}=r;return{cmdErrorCode:e,translatedTextList:t}}})}({sourceLanguage:t,sourceTextList:s,targetLanguage:r},this._core);if(n){let{cmdErrorCode:{ErrorCode:e,ErrorInfo:t},translatedTextList:s}=n;if(0===e)return{code:0,data:{translatedTextList:s}};throw{errorCode:e,errorInfo:t,message:t}}}catch(e){let{errorCode:t,errorInfo:s}=e||{};throw new this._core.helper.ChatError({functionName:"translateText",code:t,message:s})}})}},oe=new class{init(e){(this._core=e).helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(a){return e(this,void 0,void 0,function*(){var s,{message:e,language:r=c.ZH_PY}=a;let n=(e.payload||{})["url"];var o=this._core.common.getCurrentUserID(),o=(e.from===o&&"out"===e.flow&&(n=e.payload.remoteAudioUrl),this._validateVoiceFormat(n),(null==(s=p.exec(n))?void 0:s[1])||"mp3"),e=h[r]||m;try{let s=yield function(e){var{store:s,common:r}=t.core,{url:e,format:n,serverLanguageType:o}=e,o={BytesUrl:e,BytesEngServiceType:o,BytesVoiceFormat:n,Uint32Sdkappid:null==(e=s.get("instance"))?void 0:e.sdkAppId,Uint64SourceType:0};return r.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:o})}({url:n,format:o,serverLanguageType:e});if(s){let{CmdErrorCode:e,BytesResult:t}=s;if(0===e.ErrorCode)return{code:0,data:{result:t}};throw{code:e.ErrorCode,message:e.ErrorInfo}}}catch(s){let{code:e,message:t}=s||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:e,message:t})}})}_validateVoiceFormat(e){if(!p.test(e))throw new this._core.common.ChatError({code:2119})}};class re{constructor(e){var{constants:s,common:r,utils:n}=t.core,{CONV_C2C:s,CONV_GROUP:o}=s.OuterConstant,{ID:e,tinyID:a,from:i,to:c,clientTime:r=r.timeManager.getServerTimeSeconds()||0,random:u,sequence:l,cloudCustomData:d="",nick:g="",avatar:m="",clientSequence:h,conversationType:p,groupID:v,_elements:_,time:M}=e,a=(this.ID=e||a+`-${r}-`+u,this.messageRandom=u,this.from=i,this.messageSender=i,this.time=M,this.messageSequence=l,this.clientSequence=h||l,this.clientTime=r,this.cloudCustomData=d,this.messageReceiver=c,this.avatar=m,this.nick=g,n.deepCopyWithMethods(_));a.forEach(e=>{e.payload=e.content,delete e.content}),this.messageBody=a,e?p.startsWith(s)?this.receiverUserID=c:p.startsWith(o)&&(this.receiverGroupID=c):v?(this.receiverGroupID=v,this.messageReceiver=v):c&&(this.receiverUserID=c,this.messageReceiver=c)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(e=>e.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class ie{static parseServerPushElement(e){var e=e["MsgContent"],{MsgList:e=[],CompatibleText:t,AbstractList:s,Title:r,PbMsgKey:n,JsonMsgKey:o}=e||{},e=e.map(e=>b(e));return new ie({messageList:e,title:r,abstractList:s,compatibleText:t,pbDownloadKey:n,downloadKey:o})}constructor(e){this.type=t.core.constants.OuterConstant.MSG_MERGER;let{messageList:s,title:r,abstractList:n,compatibleText:o,pbDownloadKey:a="",downloadKey:i="",version:c=0,layersOverLimit:u=!1}=e,l=[];s.forEach(e=>{e&&(e=new re(e),l.push(e))}),this.content={messageList:l,title:r,abstractList:n,compatibleText:o,version:c,downloadKey:i,pbDownloadKey:a,layersOverLimit:u}}validateBeforeSend(){var e=t.core.helper["isEmpty"];return e(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(e){var{isMergerMessage:e=!1}=e||{},{abstractList:e,compatibleText:t,downloadKey:s,layersOverLimit:r,pbDownloadKey:n,title:o,version:a,messageList:i}=e?this.payload:this.content;return{MsgType:this.type,MsgContent:{AbstractList:e,CompatibleText:t,JsonMsgKey:s,LayersOverLimit:r,PbMsgKey:n,Title:o,Version:a,MsgList:w(i)}}}}var ae=new class{init(e){let{message:t,helper:s,constants:{OuterConstant:r}}=this._core=e;t.messageFactory.registerElementClass(r.MSG_MERGER,ie),s.registerApi({apiName:"createMergerMessage",context:this}),s.registerApi({apiName:"sendMessage",context:this,matcher:e=>e[0].type===r.MSG_MERGER}),s.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(e){var t,s=this._core["common"];return e?(t=new ie(e.payload),s=s.getCurrentUserID(),(e=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:s}))).setRelayFlag(!0),e.setElement(t),e):null}sendMessage(u,l){return e(this,void 0,void 0,function*(){var s,r,n;try{var i=function(s){let e="utf-8";t.core.helper.IN_BROWSER&&document&&(e=document.charset.toLowerCase());let r,n=0,o;if(o=s.length,"utf-8"===e||"utf8"===e)for(let e=0;e<o;e++)(r=s.codePointAt(e))<=127?n+=1:r<=2047?n+=2:r<=65535?n+=3:(n+=4,e++);else if("utf-16"===e||"utf16"===e)for(let e=0;e<o;e++)(r=s.codePointAt(e))<=65535?n+=2:(n+=4,e++);else n=s.replace(/[^\x00-\xff]/g,"aa").length;return n}(JSON.stringify(u));let o=u,a=null;if(11264<i){o=this._core.utils.deepCopyWithMethods(u);try{let{JsonMsgKey:s,PbMsgKey:r}=yield function(s){return e(this,void 0,void 0,function*(){var e=s["payload"]["messageList"],e={MsgList:w(e)};return t.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:e})})}(o),n=o["payload"];a=new ie(Object.assign(Object.assign({},n),{messageList:[],downloadKey:s,pbDownloadKey:r})),o.setElement(a)}catch(e){console.error(e)}}var{message:c}=(yield null==(n=null==(r=null==(s=this._core)?void 0:s.message)?void 0:r.messageSender)?void 0:n.sendMessage(o,l))["data"];return a&&c.setElement(u._elements),{code:0,data:{message:c}}}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({code:t})}})}downloadMergerMessage(c){return e(this,void 0,void 0,function*(){let o=this._core["ssoLog"],s=c.payload,{downloadKey:a,pbDownload:r,type:n}=s,i=function(e,t){var s={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(s[n[r]]=e[n[r]]);return s}(s,["downloadKey","pbDownload","type","messageList"]);try{let s=yield function(s){return e(this,void 0,void 0,function*(){return t.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:s}})})}(a),r=(s||{})["MsgList"],n=null==r?void 0:r.map(e=>{e=b(e);return new re(e)});return"function"==typeof c.isOnlineMessage?c.setElement({type:c.type,content:Object.assign({messageList:n},i)}):(c.payload.messageList=n,c.payload.downloadKey="",c.payload.pbDownloadKey=""),o.info("downloadMergerMessage"," success downloadKey:"+a),c}catch(e){let t=e["errorCode"];throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:t,moreMessage:a})}})}},ce=new class{init(e){this._core=e,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(i){return e(this,void 0,void 0,function*(){let{appStore:t,message:e,common:{getCurrentUserID:s},utils:{isArray:r}}=this._core,{GroupId:n,To_Account:o}=i,a=(i.From_Account=i.From_Account||s(),null);if(n){a=this._generateGroupMessage(Object.assign(Object.assign({},i),{ToGroupId:n}));let e=t.userStore.getUserProfile(s());a.level=(null==e?void 0:e.level)||0,r(o)&&0<o.length&&(a._receiverList=o)}else o&&(a=this._generateC2CMessage(i));return e.messageSender.sendMessage(a,i)})}_generateC2CMessage(e){var{message:t,OuterConstant:{CONV_C2C:s}}=this._core,e=t.messageHelper.parseServerPushMessage(e),t=t.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:s,flow:I.OUT})),s=e["elements"];return t.setElement(s),t}_generateGroupMessage(e){var{message:t,OuterConstant:{CONV_GROUP:s}}=this._core,e=t.messageHelper.parseServerGroupMessage(e),t=t.messageFactory.createMessage(Object.assign(Object.assign({},e),{conversationType:s,flow:I.OUT})),s=e["elements"];return t.setElement(s),t}},ue=new class{init(e){var{helper:e,notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{GROUP_MESSAGE_PINNED:r}}=this._core=e;t.subscribeInnerEvent(s,r,this._handleGroupMessagePinned,this),e.registerApi({apiName:"pinGroupMessage",context:this}),e.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(a){return e(this,void 0,void 0,function*(){var{common:{},OuterConstant:{},helper:{ChatError:r}}=this._core,{groupID:s,message:n,isPinned:o}=a,n=n["sequence"];try{return yield function(i){return e(this,void 0,void 0,function*(){var{buildAndSendPacket:e,getCurrentUserID:s}=t.core["common"],{groupID:r,sequence:n,isPinned:o}=i,s=s(),a=o?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",r={GroupId:r,MsgSeq:n};return o?r.Pinner_Account=s:r.UnPinner_Account=s,e({servcmd:a,data:r})})}({groupID:s,sequence:n,isPinned:o}),{code:0,data:{}}}catch(e){let{errorCode:t,errorInfo:s}=e||{};throw new r({code:t,message:s})}})}getPinnedGroupMessageList(n){return e(this,void 0,void 0,function*(){let s=[];try{var r=yield function(r){return e(this,void 0,void 0,function*(){var e=r["groupID"],{buildAndSendPacket:s}=t.core["common"];return s({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:e}})})}({groupID:n});if(r){let{PinnedMsgList:e=[]}=r;s=yield this._updatePinnedMessageInfo({serverPinnedMessageList:e,groupID:n})}return{code:0,data:{messageList:s}}}catch(e){throw e}})}_handleGroupMessagePinned(e){let{message:{messageHelper:u,messageFactory:l},notificationCenter:d,OuterEvent:g,OuterConstant:m}=this._core;e.GroupTips.forEach(e=>{var{ToGroupId:e,MsgBody:{PinnedMsg:t,OpType:s,MsgOperatorMemberExtraInfo:r,SdkGroupMessageId:o}}=e,{UserId:r,NickName:n="",ImageUrl:a=""}=r;let i=null,c=!1;if(s===C){c=!0;let e=u.parseServerGroupMessage(t);(i=l.createMessage(Object.assign(Object.assign({},e),{conversationType:m.CONV_GROUP,flow:"in"}))).setElement(e.elements),i.pinnerInfo={userID:r,nick:n,avatar:a}}else if(s===S){let{ClientTime:e,Random:t,SenderTinyId:s,ServerTime:r,MsgSeq:n}=o;i={ID:`${s}-${e}-`+t,sequence:n,random:t,time:r,clientTime:e}}i&&d.emitOuterEvent(g.PINNED_GROUP_MESSAGE_UPDATED,{name:g.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:e,message:i,isPinned:c,operatorInfo:{userID:r,nick:n,avatar:a}}})})}_findMessageBySequence(e,t){var{messageDataHandler:s}=this._core["message"];return[...s.getLocalMessageList(e),...s.getSparseMessageList(e)].find(e=>e.sequence===t)}_updatePinnedMessageInfo(t){return e(this,arguments,void 0,function*({serverPinnedMessageList:o,groupID:e}){let{OuterConstant:{CONV_GROUP:t},utils:{isEmpty:s}}=this._core,a=[],i=[],c=[],u=new Map,l=""+t+e;for(let n=0;n<o.length;n++){let e=o[n],{Pinner_Account:t,MsgSeq:s}=e,r=this._findMessageBySequence(l,s);i.push(t),u.set(s,t),r?a.push(r):c.push(s)}let r=yield this._fetchPinnedMessageInfo({conversationID:l,messageSequenceList:c,pinnerIDList:i});if(r){let{pinnerInfoMap:s,messageList:e}=r;return a.push(...e),a.forEach(e=>{var t=e["sequence"],t=u.get(t),t=s[t]||{userID:t,nick:"",avatar:""};e.pinnerInfo=t}),a.sort((e,t)=>e.sequence-t.sequence),a}return[]})}_fetchPinnedMessageInfo(o){return e(this,void 0,void 0,function*(){var{message:{},user:{userProfile:e},utils:{isArray:t}}=this._core,{conversationID:s,messageSequenceList:n,pinnerIDList:r}=o,s=yield Promise.all([this._fetchMessageBySequence({conversationID:s,messageSequenceList:n}),null==e?void 0:e.getUserProfile({userIDList:r})]);if(t(s)){let r={};return((null==(n=s[1])?void 0:n.data)||[]).forEach(e=>{var{userID:e,nick:t="",avatar:s=""}=e;r[e]={userID:e,nick:t,avatar:s}}),{messageList:(null==(e=s[0])?void 0:e.messageList)||[],pinnerInfoMap:r}}})}_fetchMessageBySequence(n){return e(this,void 0,void 0,function*(){var{utils:{isEmpty:e},message:{messageHistory:t}}=this._core,{conversationID:s,messageSequenceList:r}=n;return e(r)?[]:t.getGroupRoamingMessagesByAnchor({conversationID:s,messageSequenceList:r,getType:3})})}},de=new class{constructor(){this.name="MessageEnhancer"}install(e){this._core=e,t.init(e),W.init(e),X.init(e),Q.init(e),se.init(e),P.init(e),ne.init(e),oe.init(e),N.init(e),ae.init(e),U.init(e),ce.init(e),ue.init(e),e.helper.registerValidateConfig({auth:H,params:V}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){var{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),Q.dispose(),se.dispose(),N.dispose(),U.dispose()}_reset(){se.reset()}};export{de as default};
|