@tencentcloud/lite-chat 1.6.5 → 1.6.6

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