@tencentcloud/lite-chat 1.1.0 → 1.1.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +2 -0
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +6 -3
- package/plugins/conversation.d.ts +8 -0
- package/plugins/conversation.es.js +1 -1
- package/plugins/conversation.js +1 -1
- package/plugins/friend.d.ts +8 -0
- package/plugins/friend.es.js +1 -1
- package/plugins/friend.js +1 -1
- package/plugins/group.d.ts +8 -0
- package/plugins/group.es.js +1 -1
- package/plugins/group.js +1 -1
- package/plugins/message-enhancer.d.ts +8 -0
- package/plugins/message-enhancer.es.js +1 -1
- package/plugins/message-enhancer.js +1 -1
- package/plugins/rich-media-message.d.ts +8 -0
- package/plugins/user-enhancer.d.ts +8 -0
- package/plugins/user-enhancer.es.js +0 -1
- package/plugins/user-enhancer.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={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}}},s={deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextMessage:!0};function t(e,s,t,n){return new(t||(t=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 s;e.done?o(e.value):(s=e.value,s instanceof t?s:new t((function(e){e(s)}))).then(i,a)}c((n=n.apply(e,s||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class n{constructor(e){this._core=e}deleteMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,messageIdentifiers:t}=e,n="openim.delete_c2c_msg_ramble",o={From_Account:this._getCurrentUserId(),To_Account:s,MsgKeyList:t},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,from:t,sequence:n,time:o,random:r}=e,i="openim.msgwithdraw",a={MsgInfo:{From_Account:t,To_Account:s,MsgSeq:n,MsgRandom:r,MsgTimeStamp:o}},c=this._core.helper.generateProtocolData({servcmd:i,data:a}),g=`${c.head.seq}${i}`;return this._core.channel.sendPacket(c,{requestId:g})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}class o{constructor(e){this._core=e}deleteMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,messageIdentifiers:t}=e,n="group_open_http_svc.delete_group_ramble_msg_by_seq",o={GroupId:s,Deleter_Account:this._getCurrentUserId(),Seqs:t},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,sequence:t}=e,n="group_open_http_svc.group_msg_recall",o={GroupId:s,MsgSeqList:[{MsgSeq:t}]},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}const r=2116,i="C2C",a="GROUP",c=20,g=1,l=300;var u,d,h;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(u||(u={})),function(e){e[e.DATA_HAS_EXPIRED=0]="DATA_HAS_EXPIRED",e[e.HAS_MORE_DATA=1]="HAS_MORE_DATA",e[e.NO_MORE_DATA=2]="NO_MORE_DATA"}(d||(d={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(h||(h={}));class v{constructor(e){this._core=e}generateRevokeMessage(e){const{conversationID:s,sequence:t,random:n,tinyID:o,clientTime:r,revokeReason:i,revoker:a}=e;let c={};const{messageStore:g}=this._core.message;return c=g.revokeMessage({conversationID:s,sequence:t,random:n}),c||(c={conversationID:s,sequence:t},o&&r&&n&&(c.ID=`${o}-${r}-${n}`)),c=Object.assign(Object.assign({},c),{revoker:a,revokeReason:i,revokerInfo:{userID:a,nick:"",avatar:""}}),c}updateRevokerInfo(e){return t(this,void 0,void 0,(function*(){const s=e.map((e=>e.revoker));try{const t=yield this._fetchUserInfos(s);t&&e.forEach((e=>{const{revoker:s}=e;t[s]&&(e.revokerInfo.nick=t[s].nick||"",e.revokerInfo.avatar=t[s].avatar||"",e.revokerInfo.userID=s)}))}catch(e){console.debug(e)}}))}filterValidMessages(e){return e.filter((e=>{const s=!this._core.helper.isEmpty(null==e?void 0:e.getElements()),t=1===(null==e?void 0:e.isPlaceMessage);if(!s){this._core.ssoLog.createSSOLogData({method:"emptyMessageBody"}).setLogInfo({message:`from:${e.from} to:${e.to} sequence:${e.sequence}`}).end()}return s&&!t}))}_fetchUserInfos(e){return t(this,void 0,void 0,(function*(){var s,t;const n=yield null===(s=this._core.user.userProfile)||void 0===s?void 0:s.getUserProfile({userIDList:e});return(null==n?void 0:n.data)?null===(t=n.data)||void 0===t?void 0:t.reduce(((e,{userID:s,nick:t,avatar:n})=>(e[s]={nick:t||"",avatar:n||""},e)),{}):null}))}}var M=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}install(e){this._core=e,this._groupMessageAction=new o(e),this._c2cMessageAction=new n(e),this._messageHelper=new v(e);const{notificationCenter:s,helper:t,InnerEvent:r}=e;s.subscribeInnerEvent(r.DESTROY,this._dispose,this),t.registerApi("deleteMessage",this),t.registerApi("revokeMessage",this),t.registerApi("resendMessage",this)}deleteMessage(e){return t(this,void 0,void 0,(function*(){let s=[],t=[];const{conversationID:n,conversationType:o}=e[0],i=n.replace(o,"");if("@TIM#SYSTEM"===o)throw new this._core.helper.ChatError({code:r});if(e.forEach((e=>{const{conversationID:r,conversationType:i,status:a,_onlineOnlyFlag:c,sequence:g,random:l,time:u}=e||{};if("success"===a&&r===n&&i===o){if(!c){const e="C2C"===i?`${g}_${l}_${u}`:String(g);s.push(e)}t.push(e)}})),0===s.length)return this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}};s.length>30&&(s=s.slice(0,30),t=t.slice(0,30));try{return"C2C"===o?yield this._c2cMessageAction.deleteMessage({to:i,messageIdentifiers:s}):yield this._groupMessageAction.deleteMessage({to:i,messageIdentifiers:s}),this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}}}catch(e){const{errorCode:s}=e;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:s})}}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){var s;const t=this._core.ssoLog.createSSOLogData({method:"revokeMessage"}),{conversationType:n,isRevoked:o}=e;let r=null;if("@TIM#SYSTEM"===n)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(o)throw new this._core.helper.ChatError({message:"message has been revoked"});t.setLogInfo({message:`type:${e.type} from:${e.from} to:${e.to}`});try{if(r="C2C"===n?yield this._c2cMessageAction.revokeMessage(e):yield this._groupMessageAction.revokeMessage(e),r){const{RecallRetList:n}=r,o=(null===(s=null==n?void 0:n[0])||void 0===s?void 0:s.RetCode)||0;if(0!==o)throw new this._core.helper.ChatError({code:o});return t.end(),yield this._handleRevokeMessageSuccess(e),{code:0,data:{message:e}}}}catch(e){const{errorCode:s}=e,t=new this._core.helper.ChatError({functionName:"revokeMessage",code:s});throw this._core.ssoLog.getSSOLogData("revokeMessage").setError(t).end(),t}}))}resendMessage(e,s){return t(this,void 0,void 0,(function*(){var t,n;return e.isResend=!0,e.status="unSend",null===(n=null===(t=this._core)||void 0===t?void 0:t.apiMap)||void 0===n?void 0:n.sendMessage(e,s)}))}_handleDeleteMessageSuccess(e){0!==e.length&&(e.forEach((e=>{e.isDeleted=!0;const s=this._core.message.messageStore.getLocalMessageList(e.conversationID);null==s||s.forEach((s=>{s.ID===e.ID&&(s.isDeleted=!0)}))})),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_DELETED,e[0].conversationID))}_handleRevokeMessageSuccess(e){return t(this,void 0,void 0,(function*(){var s;e.isRevoked=!0,e.revoker=null===(s=this._core.store.get("login"))||void 0===s?void 0:s.userId,yield this._messageHelper.updateRevokerInfo([e]),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_REVOKED,[e])}))}_dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.subscribeInnerEvent(s.DESTROY,this._dispose,this)}};class _{static parseServerPushElement(e){const{MsgContent:s={Text:""}}=e,{Text:t}=s;return new _({text:t})}constructor(e){this.type="TIMTextElem",this.content={text:e.text||""}}validateBeforeSend(){var e,s;return(null===(s=null===(e=this.content)||void 0===e?void 0:e.text)||void 0===s?void 0:s.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}convertToBackendFormat(){const{text:e}=this.content;return{MsgType:this.type,MsgContent:{Text:e}}}}var p=new class{install(e){this._core=e,e.message.messageFactory.registerElementClass(u.MSG_TEXT,_),e.helper.registerApi("createTextMessage",this)}createTextMessage(e){var s,t;if(!e)return null;const n="string"==typeof e.payload?e.payload:(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.text)||"",o=new _({text:n}),r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,i=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:r}));return i.setElement(o),i}};class m{install(e){this._messageHelper=new v(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:n},InnerEventSubType:{C2C_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleC2CNotifyMessage,this),s.subscribeInnerEvent(n,this._dispose,this)}_handleC2CNotifyMessage(e){const{C2cNotifyMsgArray:s}=e;null==s||s.forEach((e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)}))}_handleC2CRevokeMessage(e){return t(this,void 0,void 0,(function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:s}}=e,t=[],{notificationCenter:n,OuterEvent:o,InnerEvent:r}=this._core;s.forEach((e=>{const{MsgRand:s,MsgSeq:n,To_Account:o,From_Account:r,RevokerInfo:{Revoker_Account:i,Reason:a}}=e,c=this._getCurrentUserId()===r?`C2C${o}`:`C2C${r}`,g=this._messageHelper.generateRevokeMessage({conversationID:c,sequence:n,random:s,revoker:i,revokeReason:a});t.push(g)})),0!==t.length&&n.emitInnerEvent(r.MESSAGE_REVOKED,{revokedMessages:t,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(t),n.emitOuterEvent(o.MESSAGE_REVOKED,{name:o.MESSAGE_REVOKED,data:t})}catch(e){console.debug(e)}}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}_dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s,DESTROY:t},InnerEventSubType:{C2C_NOTIFY_MESSAGE:n}}=this._core;e.unSubscribeInnerEvent(s,n,this._handleC2CNotifyMessage,this),e.unSubscribeInnerEvent(t,this._dispose,this)}}class E{install(e){this._messageHelper=new v(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:n},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleGroupNotifyMessage,this),s.subscribeInnerEvent(n,this._dispose,this)}_handleGroupNotifyMessage(e){const{GroupTips:s}=e;null==s||s.forEach((e=>{var s;Array.isArray(null===(s=null==e?void 0:e.MsgBody)||void 0===s?void 0:s.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)}))}_handleGroupRevokeMessage(e){return t(this,void 0,void 0,(function*(){try{const{RevokerInfo:s,MsgBody:{GroupWithdrawInfoArray:t}}=e,n=[],{notificationCenter:o,OuterEvent:r,InnerEvent:i}=this._core;t.forEach((e=>{const{Random:t,MsgSeq:o,GroupId:r,MsgClientTime:i,TinyId:a,TopicId:c,RevokerInfo:{Revoker_Account:g=(null==s?void 0:s.Revoker_Account)||"",Reason:l=(null==s?void 0:s.Reason)||""}}=e,u=c?`GROUP${c}`:`GROUP${r}`,d=this._messageHelper.generateRevokeMessage({conversationID:u,sequence:o,random:t,tinyID:a,clientTime:i,revoker:g,revokeReason:l});n.push(d)})),0!==n.length&&(o.emitInnerEvent(i.MESSAGE_REVOKED,{revokedMessages:n,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(n),o.emitOuterEvent(r.MESSAGE_REVOKED,{name:r.MESSAGE_REVOKED,data:n}))}catch(e){console.debug(e)}}))}_dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s,DESTROY:t},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:n}}=this._core;e.unSubscribeInnerEvent(s,n,this._handleGroupNotifyMessage,this),e.unSubscribeInnerEvent(t,this._dispose,this)}}var I=new class{constructor(){this._c2cMessageReceiver=new m,this._groupMessageReceiver=new E}install(e){this._c2cMessageReceiver.install(e),this._groupMessageReceiver.install(e)}};class S{constructor(e){this._lastMessageSequenceMapOnDisconnect=new Map,this._core=e,this._messageHelper=new v(e)}getRoamingMessagesByAnchor(e){return t(this,void 0,void 0,(function*(){try{const s=this._core.ssoLog.createSSOLogData({method:"getRoamingMessagesByAnchor"}),{conversationID:t,count:n,direction:o,sequence:r}=e,i=t.replace(a,"");let c=r;if(o===h.BACKWARD){if("number"!=typeof r)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};c=r+n-1}const g={GroupId:i,ReqMsgNumber:n,WithRecalledMsg:1,Version:1};c&&(g.ReqMsgSeq=c);const l="group_open_http_svc.group_msg_get",u=this._core.helper.generateProtocolData({servcmd:l,data:g}),v=`${u.head.seq}${l}`,M=yield this._core.channel.sendPacket(u,{requestId:v});if(M){const{RspMsgList:e,NextReqMsgSeq:t=0,IsFinished:n,InvisibleMsgSeq:a}=M;s.setLogInfo({message:`groupID:${i} sequence:${r} reqSeq:${c} direction:${o}\n complete:${n} nextSequence:${t} remoteMsgCount:${e.length} invisibleSequenceList:${a}`}).end();const g=[];for(let s=0;s<e.length;s++){const t=e[s],n=this._parseMessage(t);g.push(n)}g.reverse();return{messageList:g,invisibleSequenceList:a,nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:[d.NO_MORE_DATA,d.DATA_HAS_EXPIRED].includes(n)}}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getRoamingMessagesByAnchor").setError(s).end()}}))}recoverHistoryMessage(e){return t(this,void 0,void 0,(function*(){const{message:{messageReceiver:s,messageStore:n},notificationCenter:o,OuterEvent:r}=this._core;null==e||e.forEach((e=>t(this,void 0,void 0,(function*(){const{conversationID:t,lastMessage:i}=e;let a=this._getLocalLastMessageSequence(t);const c=i.lastSequence;if(this._shouldRecoverHistory({localLastMessageSequence:a,serverLastMessageSequence:c})){const e=c-a;let i=!1;const g=Math.ceil(e/20);for(let e=0;e<g;e++)try{const e=c-a,g=Math.min(20,e),l=yield this.getRoamingMessagesByAnchor({conversationID:t,sequence:a+g,direction:h.FORWARD,count:g}),{nextReqMessageIDFromServer:u,hasNoMoreHistoryMessage:d,messageList:v}=l;i=d&&u<0,a=v[v.length-1].sequence;const M=[];if(Array.isArray(v)&&(v.forEach((e=>{s.groupMessageReceiver.updateMessageProfile(e);n.storeConversationMessage(e)&&M.push(e)})),M.length>0&&o.emitOuterEvent(r.MESSAGE_RECEIVED,{name:r.MESSAGE_RECEIVED,data:M})),i)break}catch(e){console.debug(e);break}}}))))}))}updateLastMessageSequenceMapOnDisconnect(){const e=this._core.message.messageStore.getContinuousMessagesByConversation();for(const[s,t]of e){if(s.startsWith("C2C"))continue;const e=Array.from(t.values());if((null==e?void 0:e.length)>0){const t=e[e.length-1].sequence;this._lastMessageSequenceMapOnDisconnect.set(s,t)}}}_shouldRecoverHistory(e){const{localLastMessageSequence:s,serverLastMessageSequence:t}=e;if("number"!=typeof s||"number"!=typeof t)return!1;const n=t-s;return 0!==t&&s&&(n>=g&&n<l)}_getLocalLastMessageSequence(e){if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=this._core.message.messageStore.getLocalMessageList(e),t=s[s.length-1];return null==t?void 0:t.sequence}_parseMessage(e){const s=a,t=this._core.message.messageHelper.parseServerGroupMessage(e),n=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},t),{conversationType:s,flow:"in"}));return n.setElement(t.elements),n}}var f=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}install(e){this._core=e,this._groupMessageHistory=new S(e),this._messageHelper=new v(e);const{InnerEvent:s,notificationCenter:t}=e;e.helper.registerApi("getMessageList",this),e.helper.registerApi("getMessageListHopping",this),t.subscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),t.subscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this)}getMessageList(e){return t(this,void 0,void 0,(function*(){try{const s=this._core.ssoLog.createSSOLogData({method:"getMessageList"});let{conversationID:t,nextReqMessageID:n}=e;const o=c;if("@TIM#SYSTEM"===t)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const r=this._getAvailableLocalMessagesCount({conversationID:t,nextReqMessageID:n});if(this._needFetchHistoryMessageList({conversationID:t,availableLocalMessagesCount:r,targetCount:o})){let e=null;if(t.startsWith(a)&&(e=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:t,sequence:Number(n),count:o,direction:h.FORWARD})),e){const{nextReqMessageIDFromServer:o,hasNoMoreHistoryMessage:i,messageList:a}=e,c=this._messageHelper.filterValidMessages(a),g=this._core.message.messageStore.prependLocalMessageList({messageList:c,conversationID:t}),l=this._core.message.messageStore.getLocalMessageList(t).slice(0,g.length+r),u=l.filter((e=>e.isRevoked));yield this._messageHelper.updateRevokerInfo(u);const d={nextReqMessageID:i?"":String(o),messageList:l,isCompleted:i},h=l.map((e=>e.sequence));return s.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${n} \n availableLocalMessagesCount: ${r} sequenceList: ${JSON.stringify(h)} `}).end(),{code:0,data:d}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}s.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${n} availableLocalMessagesCount: ${r}}`}).end();return{code:0,data:this._getMessageListFromMemory({conversationID:t,nextReqMessageID:n,count:o})}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getMessageList").setError(s).end(),console.debug(s)}}))}getMessageListHopping(e){return t(this,void 0,void 0,(function*(){var s,t;const{conversationID:n,sequence:o,direction:r=h.FORWARD}=e,{isEmpty:i}=this._core.helper;if(![h.BACKWARD,h.FORWARD].includes(r))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:g=c}=e;g=g>c?c:g;let l=null;if(n.startsWith(a)&&(l=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:n,sequence:o,count:g,direction:r})),l){const{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:n,messageList:a,invisibleSequenceList:c}=l,g=this._messageHelper.filterValidMessages(a);if(this._core.message.messageStore.storeSparseMessageList(g),r===h.FORWARD){const s=n&&e<1;return{code:0,data:{messageList:g,isCompleted:s,nextMessageSeq:s?"":e}}}if(r===h.BACKWARD){if(i(a)&&i(c))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const e=(null===(s=null==a?void 0:a[a.length-1])||void 0===s?void 0:s.sequence)||0,n=(null===(t=null==c?void 0:c[c.length-1])||void 0===t?void 0:t.sequence)||0;return{code:0,data:{messageList:g.filter((e=>e.sequence>=o)),isCompleted:!1,nextMessageSeq:Math.max(e,n)+1}}}return{code:0,data:l}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}))}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:s}){const t=this._core.message.messageStore.getLocalMessageList(e),{length:n}=t;if(!s)return n;let o=-1;return(null==e?void 0:e.startsWith(i))?o=t.findIndex((e=>e.ID===s)):(null==e?void 0:e.startsWith(a))&&(o=t.findIndex((e=>s.includes("-")?e.ID===s:String(e.sequence)===s))),-1===o?0:o}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:s,targetCount:t}){return!!this._clearedConversations.has(e)||s<=t&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory({conversationID:e,nextReqMessageID:s,count:t}){const n=this._core.message.messageStore.getLocalMessageList(e),o=n.length;let r=o,a={isCompleted:!1,nextReqMessageID:"",messageList:[]},c=0,g=o;return s?s&&(g=n.findIndex((t=>e.startsWith(i)?t.ID===s:String(t.sequence)===s)),c=g>t?g-t:0,r=g):c=o>t?o-t:0,a.nextReqMessageID=0===c?"":this._generateNextReqMessageID({conversationID:e,targetIndex:c}),a.messageList=n.slice(c,g),a.isCompleted=r<=t,a}_generateNextReqMessageID({conversationID:e,targetIndex:s}){const t=this._core.message.messageStore.getLocalMessageList(e);return e.startsWith("C2C")?t[s].ID:String(t[s].sequence)}_recoverHistoryMessage(){const{conversationMap:e}=this._core.store.get("conversation")||{};if(e instanceof Map){const s=[...e.values()].filter((e=>e.type===a));this._groupMessageHistory.recoverHistoryMessage(s)}}_handleSocketDisconnected(){this._groupMessageHistory.updateLastMessageSequenceMapOnDisconnect()}_dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),e.unSubscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this),e.unSubscribeInnerEvent(s.DESTROY,this._dispose,this)}};var R=new class{install(e){this._core=e;const{helper:s}=e;s.registerApi("getMessageReactions",this),s.registerApi("getMessageReadReceiptList",this)}getMessageReadReceiptList(e){return t(this,void 0,void 0,(function*(){return console.log("getMessageReadReceiptList: options: ",e),{code:0,data:{messageList:[]}}}))}getMessageReactions(e){return t(this,void 0,void 0,(function*(){return console.log("getMessageReactions: options: ",e),{code:0,data:[]}}))}};function D(t){M.install(t),p.install(t),I.install(t),f.install(t),R.install(t),t.helper.registerValidateConfig({auth:s,params:e})}export{D as default};
|
|
1
|
+
function e(e,s,t,o){return new(t||(t=Promise))((function(r,n){function i(e){try{c(o.next(e))}catch(e){n(e)}}function a(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var s;e.done?r(e.value):(s=e.value,s instanceof t?s:new t((function(e){e(s)}))).then(i,a)}c((o=o.apply(e,s||[])).next())}))}function s(s,t){return e(this,void 0,void 0,(function*(){const{servcmd:e,data:o}=s,r=t.helper.generateProtocolData({servcmd:e,data:o}),n=`${r.head.seq}${e}`;return t.channel.sendPacket(r,{requestId:n})}))}var t,o,r;"function"==typeof SuppressedError&&SuppressedError,function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(t||(t={})),function(e){e[e.DATA_HAS_EXPIRED=0]="DATA_HAS_EXPIRED",e[e.HAS_MORE_DATA=1]="HAS_MORE_DATA",e[e.NO_MORE_DATA=2]="NO_MORE_DATA"}(o||(o={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(r||(r={}));const n="MSG_REACTION",i=0,a=1;var c=new class{init(e){this._core=e;const{helper:s}=e;s.registerApi("addMessageReaction",this),s.registerApi("removeMessageReaction",this),s.registerApi("getMessageReactions",this),s.registerApi("getMessageReadReceiptList",this)}addMessageReaction(t,o){return e(this,void 0,void 0,(function*(){const{OuterConstant:r,ssoLog:i,helper:a,constants:c}=this._core;if(!a.checkBusinessCapabilityBits(n))throw new a.ChatError({functionName:"addMessageReaction",code:c.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"});const g=i.createSSOLogData({method:"addMessageReaction"});try{const{conversationID:n,ID:i,conversationType:a,from:c,to:d,clientSequence:u,random:l,time:h,sequence:v}=t;return a===r.CONV_C2C?yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:g}=t;return s({servcmd:"openim_msg_ext_http_svc.reaction_add",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:g,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({from:c,to:d,clientSequence:u,random:l,time:h,reactionID:o},this._core):a===r.CONV_GROUP&&(yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{to:r,reactionID:n,sequence:i}=t;return s({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:{GroupId:r,MsgSeq:i,Reaction:n,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({to:d,reactionID:o,sequence:v},this._core)),g.setLogInfo({message:`conversationID:${n} messageID:${i} reactionID:${o}`}).end(),{code:0}}catch(e){const{errorCode:s}=e||{},t=new a.ChatError({functionName:"addMessageReaction",code:s});g.setError(t).end(),console.error("addMessageReaction error: ",e)}}))}removeMessageReaction(t,o){return e(this,void 0,void 0,(function*(){const{OuterConstant:r,ssoLog:i,helper:a,constants:c}=this._core;if(!a.checkBusinessCapabilityBits(n))throw new a.ChatError({functionName:"removeMessageReaction",code:c.ERROR_CODE.NO_USE,replacement1:"removeMessageReaction"});const g=i.createSSOLogData({method:"removeMessageReaction"});try{const{conversationID:n,ID:i,conversationType:a,from:c,to:d,clientSequence:u,random:l,time:h,sequence:v}=t;return a===r.CONV_C2C?yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:g}=t;return s({servcmd:"openim_msg_ext_http_svc.reaction_del",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:g,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({from:c,to:d,clientSequence:u,random:l,time:h,reactionID:o},this._core):a===r.CONV_GROUP&&(yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:g}=t;return s({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:g,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({to:d,reactionID:o,sequence:v},this._core)),g.setLogInfo({message:`conversationID:${n} messageID:${i} reactionID:${o}`}).end(),{code:0}}catch(e){const{errorCode:s}=e||{},t=new a.ChatError({functionName:"removeMessageReaction",code:s});g.setError(t).end(),console.error("removeMessageReaction error: ",e)}}))}getMessageReadReceiptList(s){return e(this,void 0,void 0,(function*(){return console.log("getMessageReadReceiptList: options: ",s),{code:0,data:{messageList:[]}}}))}getMessageReactions(s){return e(this,void 0,void 0,(function*(){return console.log("getMessageReactions: options: ",s),{code:0,data:[]}}))}};const g=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 s=function(e){var s;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(s=null==e?void 0:e.text)||void 0===s?void 0:s.length))return"payload.text is invalid.";return!0}(e);return!0!==s?s:!((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}}},{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:!0,rules:["number"],allowEmpty:!1,customValidator:e=>"number"!=typeof e?"maxUserCountPerReaction is invalid.":!(e<0||e>10)||"maxUserCountPerReaction should between [0, 10]."}}}),d=Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0});class u{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,messageIdentifiers:t}=s,o="openim.delete_c2c_msg_ramble",r={From_Account:this._getCurrentUserId(),To_Account:e,MsgKeyList:t},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,from:t,sequence:o,time:r,random:n}=s,i="openim.msgwithdraw",a={MsgInfo:{From_Account:t,To_Account:e,MsgSeq:o,MsgRandom:n,MsgTimeStamp:r}},c=this._core.helper.generateProtocolData({servcmd:i,data:a}),g=`${c.head.seq}${i}`;return this._core.channel.sendPacket(c,{requestId:g})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}class l{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,messageIdentifiers:t}=s,o="group_open_http_svc.delete_group_ramble_msg_by_seq",r={GroupId:e,Deleter_Account:this._getCurrentUserId(),Seqs:t},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,sequence:t}=s,o="group_open_http_svc.group_msg_recall",r={GroupId:e,MsgSeqList:[{MsgSeq:t}]},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}const h=2116,v="C2C",_="GROUP",m=20,M=1,p=300;class E{constructor(e){this._core=e}generateRevokeMessage(e){const{conversationID:s,sequence:t,random:o,tinyID:r,clientTime:n,revokeReason:i,revoker:a}=e;let c={};const{messageStore:g}=this._core.message;return c=g.revokeMessage({conversationID:s,sequence:t,random:o}),c||(c={conversationID:s,sequence:t},r&&n&&o&&(c.ID=`${r}-${n}-${o}`)),c=Object.assign(Object.assign({},c),{revoker:a,revokeReason:i,revokerInfo:{userID:a,nick:"",avatar:""}}),c}updateRevokerInfo(s){return e(this,void 0,void 0,(function*(){const e=s.map((e=>e.revoker));try{const t=yield this._fetchUserInfos(e);t&&s.forEach((e=>{const{revoker:s}=e;t[s]&&(e.revokerInfo.nick=t[s].nick||"",e.revokerInfo.avatar=t[s].avatar||"",e.revokerInfo.userID=s)}))}catch(e){console.debug(e)}}))}filterValidMessages(e){return e.filter((e=>{const s=!this._core.helper.isEmpty(null==e?void 0:e.getElements()),t=1===(null==e?void 0:e.isPlaceMessage);if(!s){this._core.ssoLog.createSSOLogData({method:"emptyMessageBody"}).setLogInfo({message:`from:${e.from} to:${e.to} sequence:${e.sequence}`}).end()}return s&&!t}))}_fetchUserInfos(s){return e(this,void 0,void 0,(function*(){var e,t;const o=yield null===(e=this._core.user.userProfile)||void 0===e?void 0:e.getUserProfile({userIDList:s});return(null==o?void 0:o.data)?null===(t=o.data)||void 0===t?void 0:t.reduce(((e,{userID:s,nick:t,avatar:o})=>(e[s]={nick:t||"",avatar:o||""},e)),{}):null}))}}var f=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new l(e),this._c2cMessageAction=new u(e),this._messageHelper=new E(e);const{helper:s}=e;s.registerApi("deleteMessage",this),s.registerApi("revokeMessage",this),s.registerApi("resendMessage",this),s.registerApi("findMessage",this)}deleteMessage(s){return e(this,void 0,void 0,(function*(){let e=[],t=[];const{conversationID:o,conversationType:r}=s[0],n=o.replace(r,"");if("@TIM#SYSTEM"===r)throw new this._core.helper.ChatError({code:h});if(s.forEach((s=>{const{conversationID:n,conversationType:i,status:a,_onlineOnlyFlag:c,sequence:g,random:d,time:u}=s||{};if("success"===a&&n===o&&i===r){if(!c){const s="C2C"===i?`${g}_${d}_${u}`:String(g);e.push(s)}t.push(s)}})),0===e.length)return this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}};e.length>30&&(e=e.slice(0,30),t=t.slice(0,30));try{return"C2C"===r?yield this._c2cMessageAction.deleteMessage({to:n,messageIdentifiers:e}):yield this._groupMessageAction.deleteMessage({to:n,messageIdentifiers:e}),this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}}}catch(e){const{errorCode:s}=e;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:s})}}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){var e;const t=this._core.ssoLog.createSSOLogData({method:"revokeMessage"}),{conversationType:o,isRevoked:r}=s;let n=null;if("@TIM#SYSTEM"===o)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(r)throw new this._core.helper.ChatError({message:"message has been revoked"});t.setLogInfo({message:`type:${s.type} from:${s.from} to:${s.to}`});try{if(n="C2C"===o?yield this._c2cMessageAction.revokeMessage(s):yield this._groupMessageAction.revokeMessage(s),n){const{RecallRetList:o}=n,r=(null===(e=null==o?void 0:o[0])||void 0===e?void 0:e.RetCode)||0;if(0!==r)throw new this._core.helper.ChatError({code:r});return t.end(),yield this._handleRevokeMessageSuccess(s),{code:0,data:{message:s}}}}catch(e){const{errorCode:s}=e,t=new this._core.helper.ChatError({functionName:"revokeMessage",code:s});throw this._core.ssoLog.getSSOLogData("revokeMessage").setError(t).end(),t}}))}resendMessage(s,t){return e(this,void 0,void 0,(function*(){var e,o;return s.isResend=!0,s.status="unSend",null===(o=null===(e=this._core)||void 0===e?void 0:e.apiMap)||void 0===o?void 0:o.sendMessage(s,t)}))}findMessage(e){return this._core.message.messageStore.findMessage(e)}_handleDeleteMessageSuccess(e){0!==e.length&&(e.forEach((e=>{e.isDeleted=!0;const s=this._core.message.messageStore.getLocalMessageList(e.conversationID);null==s||s.forEach((s=>{s.ID===e.ID&&(s.isDeleted=!0)}))})),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_DELETED,e[0].conversationID))}_handleRevokeMessageSuccess(s){return e(this,void 0,void 0,(function*(){var e;s.isRevoked=!0,s.revoker=null===(e=this._core.store.get("login"))||void 0===e?void 0:e.userId,yield this._messageHelper.updateRevokerInfo([s]),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_REVOKED,[s])}))}};class I{static parseServerPushElement(e){const{MsgContent:s={}}=e,{Index:t,Data:o}=s;return new I({index:t,data:o})}constructor(e){this.type=t.MSG_FACE;const{index:s,data:o}=e;this.content={index:s,data:o}}validateBeforeSend(){var e,s;return"number"==typeof(null===(e=this.content)||void 0===e?void 0:e.index)&&"string"==typeof(null===(s=this.content)||void 0===s?void 0:s.data)?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}convertToBackendFormat(){const{index:e,data:s}=this.content;return{MsgType:this.type,MsgContent:{Index:e,Data:s}}}}var y=new class{init(e){this._core=e,e.message.messageFactory.registerElementClass(t.MSG_FACE,I),e.helper.registerApi("createFaceMessage",this),e.helper.registerApi("createTextAtMessage",this),e.helper.registerApi("createForwardMessage",this)}createFaceMessage(e){if(!e)return null;const{index:s,data:t}=(null==e?void 0:e.payload)||{},o=new I({index:s,data:t}),r=this._getCurrentUserId(),n=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:r}));return n.setElement(o),n}createTextAtMessage(e){const{atUserList:s}=(null==e?void 0:e.payload)||{},t=this._core.apiMap.createTextMessage(e),{OuterConstant:o}=this._core;if(!t)return null;if(Array.isArray(s)){const e=[],r=[];s.forEach((s=>{s!==o.MSG_AT_ALL?(e.push({GroupAtAllFlag:i,GroupAt_Account:s}),r.push(s)):(e.push({GroupAtAllFlag:a}),r.push(o.MSG_AT_ALL))})),t._groupAtInfoList=e,t.atUserList=r}return t}createForwardMessage(e){const{helper:s,OuterConstant:t}=this._core,{to:o,conversationType:r,priority:n,payload:i,needReadReceipt:a,receiverList:c,cloudCustomData:g="",isSupportExtension:d=!1}=e;if(!Array.isArray(i._elements))throw new s.ChatError({functionName:"createForwardMessage",code:2454});if(i.type===t.MSG_GRP_TIP)throw new s.ChatError({functionName:"createForwardMessage",code:2453});const u=this._getCurrentUserId(),l=this._core.message.messageFactory.createMessage({to:o,from:u,conversationType:r,isPlaceMessage:0,priority:n,payload:i,needReadReceipt:a,isSupportExtension:d,cloudCustomData:g,receiverList:c,_relayFlag:!0});return l.setElement(i._elements[0]),l}_getCurrentUserId(){var e;return null===(e=this._core.store.get("login"))||void 0===e?void 0:e.userId}};class S{init(e){this._messageHelper=new E(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleC2CNotifyMessage,this)}_handleC2CNotifyMessage(e){const{C2cNotifyMsgArray:s}=e;null==s||s.forEach((e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)}))}_handleC2CRevokeMessage(s){return e(this,void 0,void 0,(function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:e}}=s,t=[],{notificationCenter:o,OuterEvent:r,InnerEvent:n}=this._core;e.forEach((e=>{const{MsgRand:s,MsgSeq:o,To_Account:r,From_Account:n,RevokerInfo:{Revoker_Account:i,Reason:a}}=e,c=this._getCurrentUserId()===n?`C2C${r}`:`C2C${n}`,g=this._messageHelper.generateRevokeMessage({conversationID:c,sequence:o,random:s,revoker:i,revokeReason:a});t.push(g)})),0!==t.length&&o.emitInnerEvent(n.MESSAGE_REVOKED,{revokedMessages:t,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(t),o.emitOuterEvent(r.MESSAGE_REVOKED,{name:r.MESSAGE_REVOKED,data:t})}catch(e){console.debug(e)}}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_NOTIFY_MESSAGE:t}}=this._core;e.unSubscribeInnerEvent(s,t,this._handleC2CNotifyMessage,this)}}class R{init(e){this._messageHelper=new E(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:o},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:r}}=e;s.subscribeInnerEvent(t,r,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(e){const{GroupTips:s}=e;null==s||s.forEach((e=>{var s;Array.isArray(null===(s=null==e?void 0:e.MsgBody)||void 0===s?void 0:s.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)}))}_handleGroupRevokeMessage(s){return e(this,void 0,void 0,(function*(){try{const{RevokerInfo:e,MsgBody:{GroupWithdrawInfoArray:t}}=s,o=[],{notificationCenter:r,OuterEvent:n,InnerEvent:i}=this._core;t.forEach((s=>{const{Random:t,MsgSeq:r,GroupId:n,MsgClientTime:i,TinyId:a,TopicId:c,RevokerInfo:{Revoker_Account:g=(null==e?void 0:e.Revoker_Account)||"",Reason:d=(null==e?void 0:e.Reason)||""}}=s,u=c?`GROUP${c}`:`GROUP${n}`,l=this._messageHelper.generateRevokeMessage({conversationID:u,sequence:r,random:t,tinyID:a,clientTime:i,revoker:g,revokeReason:d});o.push(l)})),0!==o.length&&(r.emitInnerEvent(i.MESSAGE_REVOKED,{revokedMessages:o,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(o),r.emitOuterEvent(n.MESSAGE_REVOKED,{name:n.MESSAGE_REVOKED,data:o}))}catch(e){console.debug(e)}}))}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:t}}=this._core;e.unSubscribeInnerEvent(s,t,this._handleGroupNotifyMessage,this)}}var C=new class{constructor(){this._c2cMessageReceiver=new S,this._groupMessageReceiver=new R}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};class D{constructor(e){this._lastMessageSequenceMapOnDisconnect=new Map,this._core=e,this._messageHelper=new E(e)}getRoamingMessagesByAnchor(s){return e(this,void 0,void 0,(function*(){try{const e=this._core.ssoLog.createSSOLogData({method:"getRoamingMessagesByAnchor"}),{conversationID:t,count:n,direction:i,sequence:a}=s,c=t.replace(_,"");let g=a;if(i===r.BACKWARD){if("number"!=typeof a)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};g=a+n-1}const d={GroupId:c,ReqMsgNumber:n,WithRecalledMsg:1,Version:1};g&&(d.ReqMsgSeq=g);const u="group_open_http_svc.group_msg_get",l=this._core.helper.generateProtocolData({servcmd:u,data:d}),h=`${l.head.seq}${u}`,v=yield this._core.channel.sendPacket(l,{requestId:h});if(v){const{RspMsgList:s,NextReqMsgSeq:t=0,IsFinished:r,InvisibleMsgSeq:n}=v;e.setLogInfo({message:`groupID:${c} sequence:${a} reqSeq:${g} direction:${i}\n complete:${r} nextSequence:${t} remoteMsgCount:${s.length} invisibleSequenceList:${n}`}).end();const d=[];for(let e=0;e<s.length;e++){const t=s[e],o=this._parseMessage(t);d.push(o)}d.reverse();return{messageList:d,invisibleSequenceList:n,nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:[o.NO_MORE_DATA,o.DATA_HAS_EXPIRED].includes(r)}}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getRoamingMessagesByAnchor").setError(s).end()}}))}recoverHistoryMessage(s){return e(this,void 0,void 0,(function*(){const{message:{messageReceiver:t,messageStore:o},notificationCenter:n,OuterEvent:i}=this._core;null==s||s.forEach((s=>e(this,void 0,void 0,(function*(){const{conversationID:e,lastMessage:a}=s;let c=this._getLocalLastMessageSequence(e);const g=a.lastSequence;if(this._shouldRecoverHistory({localLastMessageSequence:c,serverLastMessageSequence:g})){const s=g-c;let a=!1;const d=Math.ceil(s/20);for(let s=0;s<d;s++)try{const s=g-c,d=Math.min(20,s),u=yield this.getRoamingMessagesByAnchor({conversationID:e,sequence:c+d,direction:r.FORWARD,count:d}),{nextReqMessageIDFromServer:l,hasNoMoreHistoryMessage:h,messageList:v}=u;a=h&&l<0,c=v[v.length-1].sequence;const _=[];if(Array.isArray(v)&&(v.forEach((e=>{t.groupMessageReceiver.updateMessageProfile(e);o.storeConversationMessage(e)&&_.push(e)})),_.length>0&&n.emitOuterEvent(i.MESSAGE_RECEIVED,{name:i.MESSAGE_RECEIVED,data:_})),a)break}catch(e){console.debug(e);break}}}))))}))}updateLastMessageSequenceMapOnDisconnect(){const e=this._core.message.messageStore.getContinuousMessagesByConversation();for(const[s,t]of e){if(s.startsWith("C2C"))continue;const e=Array.from(t.values());if((null==e?void 0:e.length)>0){const t=e[e.length-1].sequence;this._lastMessageSequenceMapOnDisconnect.set(s,t)}}}_shouldRecoverHistory(e){const{localLastMessageSequence:s,serverLastMessageSequence:t}=e;if("number"!=typeof s||"number"!=typeof t)return!1;const o=t-s;return 0!==t&&s&&(o>=M&&o<p)}_getLocalLastMessageSequence(e){if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=this._core.message.messageStore.getLocalMessageList(e),t=s[s.length-1];return null==t?void 0:t.sequence}_parseMessage(e){const s=_,t=this._core.message.messageHelper.parseServerGroupMessage(e),o=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},t),{conversationType:s,flow:"in"}));return o.setElement(t.elements),o}}var A=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}init(e){this._core=e,this._groupMessageHistory=new D(e),this._messageHelper=new E(e);const{InnerEvent:s,notificationCenter:t}=e;e.helper.registerApi("getMessageList",this),e.helper.registerApi("getMessageListHopping",this),t.subscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),t.subscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}getMessageList(s){return e(this,void 0,void 0,(function*(){try{const e=this._core.ssoLog.createSSOLogData({method:"getMessageList"});let{conversationID:t,nextReqMessageID:o}=s;const n=m;if("@TIM#SYSTEM"===t)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const i=this._getAvailableLocalMessagesCount({conversationID:t,nextReqMessageID:o});if(this._needFetchHistoryMessageList({conversationID:t,availableLocalMessagesCount:i,targetCount:n})){let s=null;if(t.startsWith(_)&&(s=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:t,sequence:Number(o),count:n,direction:r.FORWARD})),s){const{nextReqMessageIDFromServer:r,hasNoMoreHistoryMessage:n,messageList:a}=s,c=this._messageHelper.filterValidMessages(a),g=this._core.message.messageStore.prependLocalMessageList({messageList:c,conversationID:t}),d=this._core.message.messageStore.getLocalMessageList(t).slice(0,g.length+i),u=d.filter((e=>e.isRevoked));yield this._messageHelper.updateRevokerInfo(u);const l={nextReqMessageID:n?"":String(r),messageList:d,isCompleted:n},h=d.map((e=>e.sequence));return e.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${o} \n availableLocalMessagesCount: ${i} sequenceList: ${JSON.stringify(h)} `}).end(),{code:0,data:l}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}e.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${o} availableLocalMessagesCount: ${i}}`}).end();return{code:0,data:this._getMessageListFromMemory({conversationID:t,nextReqMessageID:o,count:n})}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getMessageList").setError(s).end(),console.debug(s)}}))}getMessageListHopping(s){return e(this,void 0,void 0,(function*(){var e,t;const{conversationID:o,sequence:n,direction:i=r.FORWARD}=s,{isEmpty:a}=this._core.helper;if(![r.BACKWARD,r.FORWARD].includes(i))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:c=m}=s;c=c>m?m:c;let g=null;if(o.startsWith(_)&&(g=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:o,sequence:n,count:c,direction:i})),g){const{nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:o,messageList:c,invisibleSequenceList:d}=g,u=this._messageHelper.filterValidMessages(c);if(this._core.message.messageStore.storeSparseMessageList(u),i===r.FORWARD){const e=o&&s<1;return{code:0,data:{messageList:u,isCompleted:e,nextMessageSeq:e?"":s}}}if(i===r.BACKWARD){if(a(c)&&a(d))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const s=(null===(e=null==c?void 0:c[c.length-1])||void 0===e?void 0:e.sequence)||0,o=(null===(t=null==d?void 0:d[d.length-1])||void 0===t?void 0:t.sequence)||0;return{code:0,data:{messageList:u.filter((e=>e.sequence>=n)),isCompleted:!1,nextMessageSeq:Math.max(s,o)+1}}}return{code:0,data:g}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}))}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:s}){const t=this._core.message.messageStore.getLocalMessageList(e),{length:o}=t;if(!s)return o;let r=-1;return(null==e?void 0:e.startsWith(v))?r=t.findIndex((e=>e.ID===s)):(null==e?void 0:e.startsWith(_))&&(r=t.findIndex((e=>s.includes("-")?e.ID===s:String(e.sequence)===s))),-1===r?0:r}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:s,targetCount:t}){return!!this._clearedConversations.has(e)||s<=t&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory({conversationID:e,nextReqMessageID:s,count:t}){const o=this._core.message.messageStore.getLocalMessageList(e),r=o.length;let n=r,i={isCompleted:!1,nextReqMessageID:"",messageList:[]},a=0,c=r;return s?s&&(c=o.findIndex((t=>e.startsWith(v)?t.ID===s:String(t.sequence)===s)),a=c>t?c-t:0,n=c):a=r>t?r-t:0,i.nextReqMessageID=0===a?"":this._generateNextReqMessageID({conversationID:e,targetIndex:a}),i.messageList=o.slice(a,c),i.isCompleted=n<=t,i}_generateNextReqMessageID({conversationID:e,targetIndex:s}){const t=this._core.message.messageStore.getLocalMessageList(e);return e.startsWith("C2C")?t[s].ID:String(t[s].sequence)}_recoverHistoryMessage(){const{conversationMap:e}=this._core.store.get("conversation")||{};if(e instanceof Map){const s=[...e.values()].filter((e=>e.type===_));this._groupMessageHistory.recoverHistoryMessage(s)}}_handleSocketDisconnected(){this._groupMessageHistory.updateLastMessageSequenceMapOnDisconnect()}dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),e.unSubscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}};var q=new class{constructor(){this._core=null}init(e){this._core=e;const{helper:s}=e;s.registerApi("translateText",this)}translateText(s){return e(this,void 0,void 0,(function*(){try{const{sourceLanguage:t,sourceTextList:o,targetLanguage:r}=s,n=yield function(s,t){return e(this,void 0,void 0,(function*(){var e,o;const{sourceTextList:r,sourceLanguage:n,targetLanguage:i}=s,{store:a,helper:c,channel:g}=t,d="im_open_translate.ws_batch_trans_text",u={SourceText:r,Source:n,Target:i,FromAccount:null===(e=a.get("login"))||void 0===e?void 0:e.tinyID,SDKAppID:null===(o=a.get("instance"))||void 0===o?void 0:o.sdkAppId},l=c.generateProtocolData({servcmd:d,data:u}),h=`${l.head.seq}${d}`,v=yield g.sendPacket(l,{requestId:h});if(v){const{CmdErrorCode:e,TargetText:s}=v;return{cmdErrorCode:e,translatedTextList:s}}}))}({sourceLanguage:t,sourceTextList:o,targetLanguage:r},this._core);if(n){const{cmdErrorCode:{ErrorCode:e,ErrorInfo:s},translatedTextList:t}=n;if(0===e)return{code:0,data:{translatedTextList:t}};throw{errorCode:e,errorInfo:s,message:s}}}catch(e){const{errorCode:s,errorInfo:t}=e||{};throw new this._core.helper.ChatError({functionName:"translateText",code:s,message:t})}}))}};var L=new class{install(e){this._core=e,f.init(e),y.init(e),C.init(e),A.init(e),c.init(e),q.init(e),e.helper.registerValidateConfig({auth:d,params:g}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.DESTROY,this.dispose,this),C.dispose(),A.dispose()}};export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(e="undefined"!=typeof globalThis?globalThis:e||self)["liteChatMessage-enhancer"]=s()}(this,(function(){"use strict";const e={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}}},s={deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextMessage:!0};function t(e,s,t,n){return new(t||(t=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 s;e.done?o(e.value):(s=e.value,s instanceof t?s:new t((function(e){e(s)}))).then(i,a)}c((n=n.apply(e,s||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class n{constructor(e){this._core=e}deleteMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,messageIdentifiers:t}=e,n="openim.delete_c2c_msg_ramble",o={From_Account:this._getCurrentUserId(),To_Account:s,MsgKeyList:t},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,from:t,sequence:n,time:o,random:r}=e,i="openim.msgwithdraw",a={MsgInfo:{From_Account:t,To_Account:s,MsgSeq:n,MsgRandom:r,MsgTimeStamp:o}},c=this._core.helper.generateProtocolData({servcmd:i,data:a}),g=`${c.head.seq}${i}`;return this._core.channel.sendPacket(c,{requestId:g})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}class o{constructor(e){this._core=e}deleteMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,messageIdentifiers:t}=e,n="group_open_http_svc.delete_group_ramble_msg_by_seq",o={GroupId:s,Deleter_Account:this._getCurrentUserId(),Seqs:t},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){const{to:s,sequence:t}=e,n="group_open_http_svc.group_msg_recall",o={GroupId:s,MsgSeqList:[{MsgSeq:t}]},r=this._core.helper.generateProtocolData({servcmd:n,data:o}),i=`${r.head.seq}${n}`;return this._core.channel.sendPacket(r,{requestId:i})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}const r=2116,i="C2C",a="GROUP",c=20,g=1,l=300;var u,d,h;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(u||(u={})),function(e){e[e.DATA_HAS_EXPIRED=0]="DATA_HAS_EXPIRED",e[e.HAS_MORE_DATA=1]="HAS_MORE_DATA",e[e.NO_MORE_DATA=2]="NO_MORE_DATA"}(d||(d={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(h||(h={}));class v{constructor(e){this._core=e}generateRevokeMessage(e){const{conversationID:s,sequence:t,random:n,tinyID:o,clientTime:r,revokeReason:i,revoker:a}=e;let c={};const{messageStore:g}=this._core.message;return c=g.revokeMessage({conversationID:s,sequence:t,random:n}),c||(c={conversationID:s,sequence:t},o&&r&&n&&(c.ID=`${o}-${r}-${n}`)),c=Object.assign(Object.assign({},c),{revoker:a,revokeReason:i,revokerInfo:{userID:a,nick:"",avatar:""}}),c}updateRevokerInfo(e){return t(this,void 0,void 0,(function*(){const s=e.map((e=>e.revoker));try{const t=yield this._fetchUserInfos(s);t&&e.forEach((e=>{const{revoker:s}=e;t[s]&&(e.revokerInfo.nick=t[s].nick||"",e.revokerInfo.avatar=t[s].avatar||"",e.revokerInfo.userID=s)}))}catch(e){console.debug(e)}}))}filterValidMessages(e){return e.filter((e=>{const s=!this._core.helper.isEmpty(null==e?void 0:e.getElements()),t=1===(null==e?void 0:e.isPlaceMessage);if(!s){this._core.ssoLog.createSSOLogData({method:"emptyMessageBody"}).setLogInfo({message:`from:${e.from} to:${e.to} sequence:${e.sequence}`}).end()}return s&&!t}))}_fetchUserInfos(e){return t(this,void 0,void 0,(function*(){var s,t;const n=yield null===(s=this._core.user.userProfile)||void 0===s?void 0:s.getUserProfile({userIDList:e});return(null==n?void 0:n.data)?null===(t=n.data)||void 0===t?void 0:t.reduce(((e,{userID:s,nick:t,avatar:n})=>(e[s]={nick:t||"",avatar:n||""},e)),{}):null}))}}var M=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}install(e){this._core=e,this._groupMessageAction=new o(e),this._c2cMessageAction=new n(e),this._messageHelper=new v(e);const{notificationCenter:s,helper:t,InnerEvent:r}=e;s.subscribeInnerEvent(r.DESTROY,this._dispose,this),t.registerApi("deleteMessage",this),t.registerApi("revokeMessage",this),t.registerApi("resendMessage",this)}deleteMessage(e){return t(this,void 0,void 0,(function*(){let s=[],t=[];const{conversationID:n,conversationType:o}=e[0],i=n.replace(o,"");if("@TIM#SYSTEM"===o)throw new this._core.helper.ChatError({code:r});if(e.forEach((e=>{const{conversationID:r,conversationType:i,status:a,_onlineOnlyFlag:c,sequence:g,random:l,time:u}=e||{};if("success"===a&&r===n&&i===o){if(!c){const e="C2C"===i?`${g}_${l}_${u}`:String(g);s.push(e)}t.push(e)}})),0===s.length)return this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}};s.length>30&&(s=s.slice(0,30),t=t.slice(0,30));try{return"C2C"===o?yield this._c2cMessageAction.deleteMessage({to:i,messageIdentifiers:s}):yield this._groupMessageAction.deleteMessage({to:i,messageIdentifiers:s}),this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}}}catch(e){const{errorCode:s}=e;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:s})}}))}revokeMessage(e){return t(this,void 0,void 0,(function*(){var s;const t=this._core.ssoLog.createSSOLogData({method:"revokeMessage"}),{conversationType:n,isRevoked:o}=e;let r=null;if("@TIM#SYSTEM"===n)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(o)throw new this._core.helper.ChatError({message:"message has been revoked"});t.setLogInfo({message:`type:${e.type} from:${e.from} to:${e.to}`});try{if(r="C2C"===n?yield this._c2cMessageAction.revokeMessage(e):yield this._groupMessageAction.revokeMessage(e),r){const{RecallRetList:n}=r,o=(null===(s=null==n?void 0:n[0])||void 0===s?void 0:s.RetCode)||0;if(0!==o)throw new this._core.helper.ChatError({code:o});return t.end(),yield this._handleRevokeMessageSuccess(e),{code:0,data:{message:e}}}}catch(e){const{errorCode:s}=e,t=new this._core.helper.ChatError({functionName:"revokeMessage",code:s});throw this._core.ssoLog.getSSOLogData("revokeMessage").setError(t).end(),t}}))}resendMessage(e,s){return t(this,void 0,void 0,(function*(){var t,n;return e.isResend=!0,e.status="unSend",null===(n=null===(t=this._core)||void 0===t?void 0:t.apiMap)||void 0===n?void 0:n.sendMessage(e,s)}))}_handleDeleteMessageSuccess(e){0!==e.length&&(e.forEach((e=>{e.isDeleted=!0;const s=this._core.message.messageStore.getLocalMessageList(e.conversationID);null==s||s.forEach((s=>{s.ID===e.ID&&(s.isDeleted=!0)}))})),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_DELETED,e[0].conversationID))}_handleRevokeMessageSuccess(e){return t(this,void 0,void 0,(function*(){var s;e.isRevoked=!0,e.revoker=null===(s=this._core.store.get("login"))||void 0===s?void 0:s.userId,yield this._messageHelper.updateRevokerInfo([e]),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_REVOKED,[e])}))}_dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.subscribeInnerEvent(s.DESTROY,this._dispose,this)}};class _{static parseServerPushElement(e){const{MsgContent:s={Text:""}}=e,{Text:t}=s;return new _({text:t})}constructor(e){this.type="TIMTextElem",this.content={text:e.text||""}}validateBeforeSend(){var e,s;return(null===(s=null===(e=this.content)||void 0===e?void 0:e.text)||void 0===s?void 0:s.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}convertToBackendFormat(){const{text:e}=this.content;return{MsgType:this.type,MsgContent:{Text:e}}}}var p=new class{install(e){this._core=e,e.message.messageFactory.registerElementClass(u.MSG_TEXT,_),e.helper.registerApi("createTextMessage",this)}createTextMessage(e){var s,t;if(!e)return null;const n="string"==typeof e.payload?e.payload:(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.text)||"",o=new _({text:n}),r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,i=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:r}));return i.setElement(o),i}};class m{install(e){this._messageHelper=new v(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:n},InnerEventSubType:{C2C_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleC2CNotifyMessage,this),s.subscribeInnerEvent(n,this._dispose,this)}_handleC2CNotifyMessage(e){const{C2cNotifyMsgArray:s}=e;null==s||s.forEach((e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)}))}_handleC2CRevokeMessage(e){return t(this,void 0,void 0,(function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:s}}=e,t=[],{notificationCenter:n,OuterEvent:o,InnerEvent:r}=this._core;s.forEach((e=>{const{MsgRand:s,MsgSeq:n,To_Account:o,From_Account:r,RevokerInfo:{Revoker_Account:i,Reason:a}}=e,c=this._getCurrentUserId()===r?`C2C${o}`:`C2C${r}`,g=this._messageHelper.generateRevokeMessage({conversationID:c,sequence:n,random:s,revoker:i,revokeReason:a});t.push(g)})),0!==t.length&&n.emitInnerEvent(r.MESSAGE_REVOKED,{revokedMessages:t,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(t),n.emitOuterEvent(o.MESSAGE_REVOKED,{name:o.MESSAGE_REVOKED,data:t})}catch(e){console.debug(e)}}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}_dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s,DESTROY:t},InnerEventSubType:{C2C_NOTIFY_MESSAGE:n}}=this._core;e.unSubscribeInnerEvent(s,n,this._handleC2CNotifyMessage,this),e.unSubscribeInnerEvent(t,this._dispose,this)}}class E{install(e){this._messageHelper=new v(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:n},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleGroupNotifyMessage,this),s.subscribeInnerEvent(n,this._dispose,this)}_handleGroupNotifyMessage(e){const{GroupTips:s}=e;null==s||s.forEach((e=>{var s;Array.isArray(null===(s=null==e?void 0:e.MsgBody)||void 0===s?void 0:s.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)}))}_handleGroupRevokeMessage(e){return t(this,void 0,void 0,(function*(){try{const{RevokerInfo:s,MsgBody:{GroupWithdrawInfoArray:t}}=e,n=[],{notificationCenter:o,OuterEvent:r,InnerEvent:i}=this._core;t.forEach((e=>{const{Random:t,MsgSeq:o,GroupId:r,MsgClientTime:i,TinyId:a,TopicId:c,RevokerInfo:{Revoker_Account:g=(null==s?void 0:s.Revoker_Account)||"",Reason:l=(null==s?void 0:s.Reason)||""}}=e,u=c?`GROUP${c}`:`GROUP${r}`,d=this._messageHelper.generateRevokeMessage({conversationID:u,sequence:o,random:t,tinyID:a,clientTime:i,revoker:g,revokeReason:l});n.push(d)})),0!==n.length&&(o.emitInnerEvent(i.MESSAGE_REVOKED,{revokedMessages:n,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(n),o.emitOuterEvent(r.MESSAGE_REVOKED,{name:r.MESSAGE_REVOKED,data:n}))}catch(e){console.debug(e)}}))}_dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s,DESTROY:t},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:n}}=this._core;e.unSubscribeInnerEvent(s,n,this._handleGroupNotifyMessage,this),e.unSubscribeInnerEvent(t,this._dispose,this)}}var I=new class{constructor(){this._c2cMessageReceiver=new m,this._groupMessageReceiver=new E}install(e){this._c2cMessageReceiver.install(e),this._groupMessageReceiver.install(e)}};class f{constructor(e){this._lastMessageSequenceMapOnDisconnect=new Map,this._core=e,this._messageHelper=new v(e)}getRoamingMessagesByAnchor(e){return t(this,void 0,void 0,(function*(){try{const s=this._core.ssoLog.createSSOLogData({method:"getRoamingMessagesByAnchor"}),{conversationID:t,count:n,direction:o,sequence:r}=e,i=t.replace(a,"");let c=r;if(o===h.BACKWARD){if("number"!=typeof r)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};c=r+n-1}const g={GroupId:i,ReqMsgNumber:n,WithRecalledMsg:1,Version:1};c&&(g.ReqMsgSeq=c);const l="group_open_http_svc.group_msg_get",u=this._core.helper.generateProtocolData({servcmd:l,data:g}),v=`${u.head.seq}${l}`,M=yield this._core.channel.sendPacket(u,{requestId:v});if(M){const{RspMsgList:e,NextReqMsgSeq:t=0,IsFinished:n,InvisibleMsgSeq:a}=M;s.setLogInfo({message:`groupID:${i} sequence:${r} reqSeq:${c} direction:${o}\n complete:${n} nextSequence:${t} remoteMsgCount:${e.length} invisibleSequenceList:${a}`}).end();const g=[];for(let s=0;s<e.length;s++){const t=e[s],n=this._parseMessage(t);g.push(n)}g.reverse();return{messageList:g,invisibleSequenceList:a,nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:[d.NO_MORE_DATA,d.DATA_HAS_EXPIRED].includes(n)}}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getRoamingMessagesByAnchor").setError(s).end()}}))}recoverHistoryMessage(e){return t(this,void 0,void 0,(function*(){const{message:{messageReceiver:s,messageStore:n},notificationCenter:o,OuterEvent:r}=this._core;null==e||e.forEach((e=>t(this,void 0,void 0,(function*(){const{conversationID:t,lastMessage:i}=e;let a=this._getLocalLastMessageSequence(t);const c=i.lastSequence;if(this._shouldRecoverHistory({localLastMessageSequence:a,serverLastMessageSequence:c})){const e=c-a;let i=!1;const g=Math.ceil(e/20);for(let e=0;e<g;e++)try{const e=c-a,g=Math.min(20,e),l=yield this.getRoamingMessagesByAnchor({conversationID:t,sequence:a+g,direction:h.FORWARD,count:g}),{nextReqMessageIDFromServer:u,hasNoMoreHistoryMessage:d,messageList:v}=l;i=d&&u<0,a=v[v.length-1].sequence;const M=[];if(Array.isArray(v)&&(v.forEach((e=>{s.groupMessageReceiver.updateMessageProfile(e);n.storeConversationMessage(e)&&M.push(e)})),M.length>0&&o.emitOuterEvent(r.MESSAGE_RECEIVED,{name:r.MESSAGE_RECEIVED,data:M})),i)break}catch(e){console.debug(e);break}}}))))}))}updateLastMessageSequenceMapOnDisconnect(){const e=this._core.message.messageStore.getContinuousMessagesByConversation();for(const[s,t]of e){if(s.startsWith("C2C"))continue;const e=Array.from(t.values());if((null==e?void 0:e.length)>0){const t=e[e.length-1].sequence;this._lastMessageSequenceMapOnDisconnect.set(s,t)}}}_shouldRecoverHistory(e){const{localLastMessageSequence:s,serverLastMessageSequence:t}=e;if("number"!=typeof s||"number"!=typeof t)return!1;const n=t-s;return 0!==t&&s&&(n>=g&&n<l)}_getLocalLastMessageSequence(e){if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=this._core.message.messageStore.getLocalMessageList(e),t=s[s.length-1];return null==t?void 0:t.sequence}_parseMessage(e){const s=a,t=this._core.message.messageHelper.parseServerGroupMessage(e),n=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},t),{conversationType:s,flow:"in"}));return n.setElement(t.elements),n}}var S=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}install(e){this._core=e,this._groupMessageHistory=new f(e),this._messageHelper=new v(e);const{InnerEvent:s,notificationCenter:t}=e;e.helper.registerApi("getMessageList",this),e.helper.registerApi("getMessageListHopping",this),t.subscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),t.subscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this)}getMessageList(e){return t(this,void 0,void 0,(function*(){try{const s=this._core.ssoLog.createSSOLogData({method:"getMessageList"});let{conversationID:t,nextReqMessageID:n}=e;const o=c;if("@TIM#SYSTEM"===t)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const r=this._getAvailableLocalMessagesCount({conversationID:t,nextReqMessageID:n});if(this._needFetchHistoryMessageList({conversationID:t,availableLocalMessagesCount:r,targetCount:o})){let e=null;if(t.startsWith(a)&&(e=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:t,sequence:Number(n),count:o,direction:h.FORWARD})),e){const{nextReqMessageIDFromServer:o,hasNoMoreHistoryMessage:i,messageList:a}=e,c=this._messageHelper.filterValidMessages(a),g=this._core.message.messageStore.prependLocalMessageList({messageList:c,conversationID:t}),l=this._core.message.messageStore.getLocalMessageList(t).slice(0,g.length+r),u=l.filter((e=>e.isRevoked));yield this._messageHelper.updateRevokerInfo(u);const d={nextReqMessageID:i?"":String(o),messageList:l,isCompleted:i},h=l.map((e=>e.sequence));return s.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${n} \n availableLocalMessagesCount: ${r} sequenceList: ${JSON.stringify(h)} `}).end(),{code:0,data:d}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}s.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${n} availableLocalMessagesCount: ${r}}`}).end();return{code:0,data:this._getMessageListFromMemory({conversationID:t,nextReqMessageID:n,count:o})}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getMessageList").setError(s).end(),console.debug(s)}}))}getMessageListHopping(e){return t(this,void 0,void 0,(function*(){var s,t;const{conversationID:n,sequence:o,direction:r=h.FORWARD}=e,{isEmpty:i}=this._core.helper;if(![h.BACKWARD,h.FORWARD].includes(r))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:g=c}=e;g=g>c?c:g;let l=null;if(n.startsWith(a)&&(l=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:n,sequence:o,count:g,direction:r})),l){const{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:n,messageList:a,invisibleSequenceList:c}=l,g=this._messageHelper.filterValidMessages(a);if(this._core.message.messageStore.storeSparseMessageList(g),r===h.FORWARD){const s=n&&e<1;return{code:0,data:{messageList:g,isCompleted:s,nextMessageSeq:s?"":e}}}if(r===h.BACKWARD){if(i(a)&&i(c))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const e=(null===(s=null==a?void 0:a[a.length-1])||void 0===s?void 0:s.sequence)||0,n=(null===(t=null==c?void 0:c[c.length-1])||void 0===t?void 0:t.sequence)||0;return{code:0,data:{messageList:g.filter((e=>e.sequence>=o)),isCompleted:!1,nextMessageSeq:Math.max(e,n)+1}}}return{code:0,data:l}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}))}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:s}){const t=this._core.message.messageStore.getLocalMessageList(e),{length:n}=t;if(!s)return n;let o=-1;return(null==e?void 0:e.startsWith(i))?o=t.findIndex((e=>e.ID===s)):(null==e?void 0:e.startsWith(a))&&(o=t.findIndex((e=>s.includes("-")?e.ID===s:String(e.sequence)===s))),-1===o?0:o}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:s,targetCount:t}){return!!this._clearedConversations.has(e)||s<=t&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory({conversationID:e,nextReqMessageID:s,count:t}){const n=this._core.message.messageStore.getLocalMessageList(e),o=n.length;let r=o,a={isCompleted:!1,nextReqMessageID:"",messageList:[]},c=0,g=o;return s?s&&(g=n.findIndex((t=>e.startsWith(i)?t.ID===s:String(t.sequence)===s)),c=g>t?g-t:0,r=g):c=o>t?o-t:0,a.nextReqMessageID=0===c?"":this._generateNextReqMessageID({conversationID:e,targetIndex:c}),a.messageList=n.slice(c,g),a.isCompleted=r<=t,a}_generateNextReqMessageID({conversationID:e,targetIndex:s}){const t=this._core.message.messageStore.getLocalMessageList(e);return e.startsWith("C2C")?t[s].ID:String(t[s].sequence)}_recoverHistoryMessage(){const{conversationMap:e}=this._core.store.get("conversation")||{};if(e instanceof Map){const s=[...e.values()].filter((e=>e.type===a));this._groupMessageHistory.recoverHistoryMessage(s)}}_handleSocketDisconnected(){this._groupMessageHistory.updateLastMessageSequenceMapOnDisconnect()}_dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),e.unSubscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this),e.unSubscribeInnerEvent(s.DESTROY,this._dispose,this)}};var R=new class{install(e){this._core=e;const{helper:s}=e;s.registerApi("getMessageReactions",this),s.registerApi("getMessageReadReceiptList",this)}getMessageReadReceiptList(e){return t(this,void 0,void 0,(function*(){return console.log("getMessageReadReceiptList: options: ",e),{code:0,data:{messageList:[]}}}))}getMessageReactions(e){return t(this,void 0,void 0,(function*(){return console.log("getMessageReactions: options: ",e),{code:0,data:[]}}))}};return function(t){M.install(t),p.install(t),I.install(t),S.install(t),R.install(t),t.helper.registerValidateConfig({auth:s,params:e})}}));
|
|
1
|
+
!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(e="undefined"!=typeof globalThis?globalThis:e||self)["liteChatMessage-enhancer"]=s()}(this,(function(){"use strict";function e(e,s,t,o){return new(t||(t=Promise))((function(r,n){function i(e){try{c(o.next(e))}catch(e){n(e)}}function a(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var s;e.done?r(e.value):(s=e.value,s instanceof t?s:new t((function(e){e(s)}))).then(i,a)}c((o=o.apply(e,s||[])).next())}))}function s(s,t){return e(this,void 0,void 0,(function*(){const{servcmd:e,data:o}=s,r=t.helper.generateProtocolData({servcmd:e,data:o}),n=`${r.head.seq}${e}`;return t.channel.sendPacket(r,{requestId:n})}))}var t,o,r;"function"==typeof SuppressedError&&SuppressedError,function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(t||(t={})),function(e){e[e.DATA_HAS_EXPIRED=0]="DATA_HAS_EXPIRED",e[e.HAS_MORE_DATA=1]="HAS_MORE_DATA",e[e.NO_MORE_DATA=2]="NO_MORE_DATA"}(o||(o={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(r||(r={}));const n="MSG_REACTION",i=0,a=1;var c=new class{init(e){this._core=e;const{helper:s}=e;s.registerApi("addMessageReaction",this),s.registerApi("removeMessageReaction",this),s.registerApi("getMessageReactions",this),s.registerApi("getMessageReadReceiptList",this)}addMessageReaction(t,o){return e(this,void 0,void 0,(function*(){const{OuterConstant:r,ssoLog:i,helper:a,constants:c}=this._core;if(!a.checkBusinessCapabilityBits(n))throw new a.ChatError({functionName:"addMessageReaction",code:c.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"});const d=i.createSSOLogData({method:"addMessageReaction"});try{const{conversationID:n,ID:i,conversationType:a,from:c,to:g,clientSequence:u,random:l,time:h,sequence:v}=t;return a===r.CONV_C2C?yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:d}=t;return s({servcmd:"openim_msg_ext_http_svc.reaction_add",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:d,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({from:c,to:g,clientSequence:u,random:l,time:h,reactionID:o},this._core):a===r.CONV_GROUP&&(yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{to:r,reactionID:n,sequence:i}=t;return s({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:{GroupId:r,MsgSeq:i,Reaction:n,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({to:g,reactionID:o,sequence:v},this._core)),d.setLogInfo({message:`conversationID:${n} messageID:${i} reactionID:${o}`}).end(),{code:0}}catch(e){const{errorCode:s}=e||{},t=new a.ChatError({functionName:"addMessageReaction",code:s});d.setError(t).end(),console.error("addMessageReaction error: ",e)}}))}removeMessageReaction(t,o){return e(this,void 0,void 0,(function*(){const{OuterConstant:r,ssoLog:i,helper:a,constants:c}=this._core;if(!a.checkBusinessCapabilityBits(n))throw new a.ChatError({functionName:"removeMessageReaction",code:c.ERROR_CODE.NO_USE,replacement1:"removeMessageReaction"});const d=i.createSSOLogData({method:"removeMessageReaction"});try{const{conversationID:n,ID:i,conversationType:a,from:c,to:g,clientSequence:u,random:l,time:h,sequence:v}=t;return a===r.CONV_C2C?yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:d}=t;return s({servcmd:"openim_msg_ext_http_svc.reaction_del",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:d,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({from:c,to:g,clientSequence:u,random:l,time:h,reactionID:o},this._core):a===r.CONV_GROUP&&(yield function(t,o){return e(this,void 0,void 0,(function*(){var e;const{from:r,to:n,clientSequence:i,random:a,time:c,reactionID:d}=t;return s({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:{From_Account:r,To_Account:n,MsgKey:`${i}_${a}_${c}`,Reaction:d,Add_Account:[null===(e=o.store.get("login"))||void 0===e?void 0:e.userId]}},o)}))}({to:g,reactionID:o,sequence:v},this._core)),d.setLogInfo({message:`conversationID:${n} messageID:${i} reactionID:${o}`}).end(),{code:0}}catch(e){const{errorCode:s}=e||{},t=new a.ChatError({functionName:"removeMessageReaction",code:s});d.setError(t).end(),console.error("removeMessageReaction error: ",e)}}))}getMessageReadReceiptList(s){return e(this,void 0,void 0,(function*(){return console.log("getMessageReadReceiptList: options: ",s),{code:0,data:{messageList:[]}}}))}getMessageReactions(s){return e(this,void 0,void 0,(function*(){return console.log("getMessageReactions: options: ",s),{code:0,data:[]}}))}};const d=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 s=function(e){var s;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(s=null==e?void 0:e.text)||void 0===s?void 0:s.length))return"payload.text is invalid.";return!0}(e);return!0!==s?s:!((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}}},{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:!0,rules:["number"],allowEmpty:!1,customValidator:e=>"number"!=typeof e?"maxUserCountPerReaction is invalid.":!(e<0||e>10)||"maxUserCountPerReaction should between [0, 10]."}}}),g=Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0});class u{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,messageIdentifiers:t}=s,o="openim.delete_c2c_msg_ramble",r={From_Account:this._getCurrentUserId(),To_Account:e,MsgKeyList:t},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,from:t,sequence:o,time:r,random:n}=s,i="openim.msgwithdraw",a={MsgInfo:{From_Account:t,To_Account:e,MsgSeq:o,MsgRandom:n,MsgTimeStamp:r}},c=this._core.helper.generateProtocolData({servcmd:i,data:a}),d=`${c.head.seq}${i}`;return this._core.channel.sendPacket(c,{requestId:d})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}class l{constructor(e){this._core=e}deleteMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,messageIdentifiers:t}=s,o="group_open_http_svc.delete_group_ramble_msg_by_seq",r={GroupId:e,Deleter_Account:this._getCurrentUserId(),Seqs:t},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){const{to:e,sequence:t}=s,o="group_open_http_svc.group_msg_recall",r={GroupId:e,MsgSeqList:[{MsgSeq:t}]},n=this._core.helper.generateProtocolData({servcmd:o,data:r}),i=`${n.head.seq}${o}`;return this._core.channel.sendPacket(n,{requestId:i})}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}}const h=2116,v="C2C",_="GROUP",m=20,M=1,p=300;class f{constructor(e){this._core=e}generateRevokeMessage(e){const{conversationID:s,sequence:t,random:o,tinyID:r,clientTime:n,revokeReason:i,revoker:a}=e;let c={};const{messageStore:d}=this._core.message;return c=d.revokeMessage({conversationID:s,sequence:t,random:o}),c||(c={conversationID:s,sequence:t},r&&n&&o&&(c.ID=`${r}-${n}-${o}`)),c=Object.assign(Object.assign({},c),{revoker:a,revokeReason:i,revokerInfo:{userID:a,nick:"",avatar:""}}),c}updateRevokerInfo(s){return e(this,void 0,void 0,(function*(){const e=s.map((e=>e.revoker));try{const t=yield this._fetchUserInfos(e);t&&s.forEach((e=>{const{revoker:s}=e;t[s]&&(e.revokerInfo.nick=t[s].nick||"",e.revokerInfo.avatar=t[s].avatar||"",e.revokerInfo.userID=s)}))}catch(e){console.debug(e)}}))}filterValidMessages(e){return e.filter((e=>{const s=!this._core.helper.isEmpty(null==e?void 0:e.getElements()),t=1===(null==e?void 0:e.isPlaceMessage);if(!s){this._core.ssoLog.createSSOLogData({method:"emptyMessageBody"}).setLogInfo({message:`from:${e.from} to:${e.to} sequence:${e.sequence}`}).end()}return s&&!t}))}_fetchUserInfos(s){return e(this,void 0,void 0,(function*(){var e,t;const o=yield null===(e=this._core.user.userProfile)||void 0===e?void 0:e.getUserProfile({userIDList:s});return(null==o?void 0:o.data)?null===(t=o.data)||void 0===t?void 0:t.reduce(((e,{userID:s,nick:t,avatar:o})=>(e[s]={nick:t||"",avatar:o||""},e)),{}):null}))}}var E=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new l(e),this._c2cMessageAction=new u(e),this._messageHelper=new f(e);const{helper:s}=e;s.registerApi("deleteMessage",this),s.registerApi("revokeMessage",this),s.registerApi("resendMessage",this),s.registerApi("findMessage",this)}deleteMessage(s){return e(this,void 0,void 0,(function*(){let e=[],t=[];const{conversationID:o,conversationType:r}=s[0],n=o.replace(r,"");if("@TIM#SYSTEM"===r)throw new this._core.helper.ChatError({code:h});if(s.forEach((s=>{const{conversationID:n,conversationType:i,status:a,_onlineOnlyFlag:c,sequence:d,random:g,time:u}=s||{};if("success"===a&&n===o&&i===r){if(!c){const s="C2C"===i?`${d}_${g}_${u}`:String(d);e.push(s)}t.push(s)}})),0===e.length)return this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}};e.length>30&&(e=e.slice(0,30),t=t.slice(0,30));try{return"C2C"===r?yield this._c2cMessageAction.deleteMessage({to:n,messageIdentifiers:e}):yield this._groupMessageAction.deleteMessage({to:n,messageIdentifiers:e}),this._handleDeleteMessageSuccess(t),{code:0,data:{messageList:t}}}catch(e){const{errorCode:s}=e;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:s})}}))}revokeMessage(s){return e(this,void 0,void 0,(function*(){var e;const t=this._core.ssoLog.createSSOLogData({method:"revokeMessage"}),{conversationType:o,isRevoked:r}=s;let n=null;if("@TIM#SYSTEM"===o)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(r)throw new this._core.helper.ChatError({message:"message has been revoked"});t.setLogInfo({message:`type:${s.type} from:${s.from} to:${s.to}`});try{if(n="C2C"===o?yield this._c2cMessageAction.revokeMessage(s):yield this._groupMessageAction.revokeMessage(s),n){const{RecallRetList:o}=n,r=(null===(e=null==o?void 0:o[0])||void 0===e?void 0:e.RetCode)||0;if(0!==r)throw new this._core.helper.ChatError({code:r});return t.end(),yield this._handleRevokeMessageSuccess(s),{code:0,data:{message:s}}}}catch(e){const{errorCode:s}=e,t=new this._core.helper.ChatError({functionName:"revokeMessage",code:s});throw this._core.ssoLog.getSSOLogData("revokeMessage").setError(t).end(),t}}))}resendMessage(s,t){return e(this,void 0,void 0,(function*(){var e,o;return s.isResend=!0,s.status="unSend",null===(o=null===(e=this._core)||void 0===e?void 0:e.apiMap)||void 0===o?void 0:o.sendMessage(s,t)}))}findMessage(e){return this._core.message.messageStore.findMessage(e)}_handleDeleteMessageSuccess(e){0!==e.length&&(e.forEach((e=>{e.isDeleted=!0;const s=this._core.message.messageStore.getLocalMessageList(e.conversationID);null==s||s.forEach((s=>{s.ID===e.ID&&(s.isDeleted=!0)}))})),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_DELETED,e[0].conversationID))}_handleRevokeMessageSuccess(s){return e(this,void 0,void 0,(function*(){var e;s.isRevoked=!0,s.revoker=null===(e=this._core.store.get("login"))||void 0===e?void 0:e.userId,yield this._messageHelper.updateRevokerInfo([s]),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_REVOKED,[s])}))}};class I{static parseServerPushElement(e){const{MsgContent:s={}}=e,{Index:t,Data:o}=s;return new I({index:t,data:o})}constructor(e){this.type=t.MSG_FACE;const{index:s,data:o}=e;this.content={index:s,data:o}}validateBeforeSend(){var e,s;return"number"==typeof(null===(e=this.content)||void 0===e?void 0:e.index)&&"string"==typeof(null===(s=this.content)||void 0===s?void 0:s.data)?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}convertToBackendFormat(){const{index:e,data:s}=this.content;return{MsgType:this.type,MsgContent:{Index:e,Data:s}}}}var y=new class{init(e){this._core=e,e.message.messageFactory.registerElementClass(t.MSG_FACE,I),e.helper.registerApi("createFaceMessage",this),e.helper.registerApi("createTextAtMessage",this),e.helper.registerApi("createForwardMessage",this)}createFaceMessage(e){if(!e)return null;const{index:s,data:t}=(null==e?void 0:e.payload)||{},o=new I({index:s,data:t}),r=this._getCurrentUserId(),n=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:r}));return n.setElement(o),n}createTextAtMessage(e){const{atUserList:s}=(null==e?void 0:e.payload)||{},t=this._core.apiMap.createTextMessage(e),{OuterConstant:o}=this._core;if(!t)return null;if(Array.isArray(s)){const e=[],r=[];s.forEach((s=>{s!==o.MSG_AT_ALL?(e.push({GroupAtAllFlag:i,GroupAt_Account:s}),r.push(s)):(e.push({GroupAtAllFlag:a}),r.push(o.MSG_AT_ALL))})),t._groupAtInfoList=e,t.atUserList=r}return t}createForwardMessage(e){const{helper:s,OuterConstant:t}=this._core,{to:o,conversationType:r,priority:n,payload:i,needReadReceipt:a,receiverList:c,cloudCustomData:d="",isSupportExtension:g=!1}=e;if(!Array.isArray(i._elements))throw new s.ChatError({functionName:"createForwardMessage",code:2454});if(i.type===t.MSG_GRP_TIP)throw new s.ChatError({functionName:"createForwardMessage",code:2453});const u=this._getCurrentUserId(),l=this._core.message.messageFactory.createMessage({to:o,from:u,conversationType:r,isPlaceMessage:0,priority:n,payload:i,needReadReceipt:a,isSupportExtension:g,cloudCustomData:d,receiverList:c,_relayFlag:!0});return l.setElement(i._elements[0]),l}_getCurrentUserId(){var e;return null===(e=this._core.store.get("login"))||void 0===e?void 0:e.userId}};class S{init(e){this._messageHelper=new f(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_NOTIFY_MESSAGE:o}}=e;s.subscribeInnerEvent(t,o,this._handleC2CNotifyMessage,this)}_handleC2CNotifyMessage(e){const{C2cNotifyMsgArray:s}=e;null==s||s.forEach((e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)}))}_handleC2CRevokeMessage(s){return e(this,void 0,void 0,(function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:e}}=s,t=[],{notificationCenter:o,OuterEvent:r,InnerEvent:n}=this._core;e.forEach((e=>{const{MsgRand:s,MsgSeq:o,To_Account:r,From_Account:n,RevokerInfo:{Revoker_Account:i,Reason:a}}=e,c=this._getCurrentUserId()===n?`C2C${r}`:`C2C${n}`,d=this._messageHelper.generateRevokeMessage({conversationID:c,sequence:o,random:s,revoker:i,revokeReason:a});t.push(d)})),0!==t.length&&o.emitInnerEvent(n.MESSAGE_REVOKED,{revokedMessages:t,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(t),o.emitOuterEvent(r.MESSAGE_REVOKED,{name:r.MESSAGE_REVOKED,data:t})}catch(e){console.debug(e)}}))}_getCurrentUserId(){var e,s;return null===(s=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===s?void 0:s.userId}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_NOTIFY_MESSAGE:t}}=this._core;e.unSubscribeInnerEvent(s,t,this._handleC2CNotifyMessage,this)}}class R{init(e){this._messageHelper=new f(e),this._core=e;const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:t,DESTROY:o},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:r}}=e;s.subscribeInnerEvent(t,r,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(e){const{GroupTips:s}=e;null==s||s.forEach((e=>{var s;Array.isArray(null===(s=null==e?void 0:e.MsgBody)||void 0===s?void 0:s.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)}))}_handleGroupRevokeMessage(s){return e(this,void 0,void 0,(function*(){try{const{RevokerInfo:e,MsgBody:{GroupWithdrawInfoArray:t}}=s,o=[],{notificationCenter:r,OuterEvent:n,InnerEvent:i}=this._core;t.forEach((s=>{const{Random:t,MsgSeq:r,GroupId:n,MsgClientTime:i,TinyId:a,TopicId:c,RevokerInfo:{Revoker_Account:d=(null==e?void 0:e.Revoker_Account)||"",Reason:g=(null==e?void 0:e.Reason)||""}}=s,u=c?`GROUP${c}`:`GROUP${n}`,l=this._messageHelper.generateRevokeMessage({conversationID:u,sequence:r,random:t,tinyID:a,clientTime:i,revoker:d,revokeReason:g});o.push(l)})),0!==o.length&&(r.emitInnerEvent(i.MESSAGE_REVOKED,{revokedMessages:o,updateUnreadCount:!0}),yield this._messageHelper.updateRevokerInfo(o),r.emitOuterEvent(n.MESSAGE_REVOKED,{name:n.MESSAGE_REVOKED,data:o}))}catch(e){console.debug(e)}}))}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{GROUP_NOTIFY_MESSAGE:t}}=this._core;e.unSubscribeInnerEvent(s,t,this._handleGroupNotifyMessage,this)}}var C=new class{constructor(){this._c2cMessageReceiver=new S,this._groupMessageReceiver=new R}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};class D{constructor(e){this._lastMessageSequenceMapOnDisconnect=new Map,this._core=e,this._messageHelper=new f(e)}getRoamingMessagesByAnchor(s){return e(this,void 0,void 0,(function*(){try{const e=this._core.ssoLog.createSSOLogData({method:"getRoamingMessagesByAnchor"}),{conversationID:t,count:n,direction:i,sequence:a}=s,c=t.replace(_,"");let d=a;if(i===r.BACKWARD){if("number"!=typeof a)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};d=a+n-1}const g={GroupId:c,ReqMsgNumber:n,WithRecalledMsg:1,Version:1};d&&(g.ReqMsgSeq=d);const u="group_open_http_svc.group_msg_get",l=this._core.helper.generateProtocolData({servcmd:u,data:g}),h=`${l.head.seq}${u}`,v=yield this._core.channel.sendPacket(l,{requestId:h});if(v){const{RspMsgList:s,NextReqMsgSeq:t=0,IsFinished:r,InvisibleMsgSeq:n}=v;e.setLogInfo({message:`groupID:${c} sequence:${a} reqSeq:${d} direction:${i}\n complete:${r} nextSequence:${t} remoteMsgCount:${s.length} invisibleSequenceList:${n}`}).end();const g=[];for(let e=0;e<s.length;e++){const t=s[e],o=this._parseMessage(t);g.push(o)}g.reverse();return{messageList:g,invisibleSequenceList:n,nextReqMessageIDFromServer:t,hasNoMoreHistoryMessage:[o.NO_MORE_DATA,o.DATA_HAS_EXPIRED].includes(r)}}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getRoamingMessagesByAnchor").setError(s).end()}}))}recoverHistoryMessage(s){return e(this,void 0,void 0,(function*(){const{message:{messageReceiver:t,messageStore:o},notificationCenter:n,OuterEvent:i}=this._core;null==s||s.forEach((s=>e(this,void 0,void 0,(function*(){const{conversationID:e,lastMessage:a}=s;let c=this._getLocalLastMessageSequence(e);const d=a.lastSequence;if(this._shouldRecoverHistory({localLastMessageSequence:c,serverLastMessageSequence:d})){const s=d-c;let a=!1;const g=Math.ceil(s/20);for(let s=0;s<g;s++)try{const s=d-c,g=Math.min(20,s),u=yield this.getRoamingMessagesByAnchor({conversationID:e,sequence:c+g,direction:r.FORWARD,count:g}),{nextReqMessageIDFromServer:l,hasNoMoreHistoryMessage:h,messageList:v}=u;a=h&&l<0,c=v[v.length-1].sequence;const _=[];if(Array.isArray(v)&&(v.forEach((e=>{t.groupMessageReceiver.updateMessageProfile(e);o.storeConversationMessage(e)&&_.push(e)})),_.length>0&&n.emitOuterEvent(i.MESSAGE_RECEIVED,{name:i.MESSAGE_RECEIVED,data:_})),a)break}catch(e){console.debug(e);break}}}))))}))}updateLastMessageSequenceMapOnDisconnect(){const e=this._core.message.messageStore.getContinuousMessagesByConversation();for(const[s,t]of e){if(s.startsWith("C2C"))continue;const e=Array.from(t.values());if((null==e?void 0:e.length)>0){const t=e[e.length-1].sequence;this._lastMessageSequenceMapOnDisconnect.set(s,t)}}}_shouldRecoverHistory(e){const{localLastMessageSequence:s,serverLastMessageSequence:t}=e;if("number"!=typeof s||"number"!=typeof t)return!1;const o=t-s;return 0!==t&&s&&(o>=M&&o<p)}_getLocalLastMessageSequence(e){if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=this._core.message.messageStore.getLocalMessageList(e),t=s[s.length-1];return null==t?void 0:t.sequence}_parseMessage(e){const s=_,t=this._core.message.messageHelper.parseServerGroupMessage(e),o=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},t),{conversationType:s,flow:"in"}));return o.setElement(t.elements),o}}var A=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}init(e){this._core=e,this._groupMessageHistory=new D(e),this._messageHelper=new f(e);const{InnerEvent:s,notificationCenter:t}=e;e.helper.registerApi("getMessageList",this),e.helper.registerApi("getMessageListHopping",this),t.subscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),t.subscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}getMessageList(s){return e(this,void 0,void 0,(function*(){try{const e=this._core.ssoLog.createSSOLogData({method:"getMessageList"});let{conversationID:t,nextReqMessageID:o}=s;const n=m;if("@TIM#SYSTEM"===t)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const i=this._getAvailableLocalMessagesCount({conversationID:t,nextReqMessageID:o});if(this._needFetchHistoryMessageList({conversationID:t,availableLocalMessagesCount:i,targetCount:n})){let s=null;if(t.startsWith(_)&&(s=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:t,sequence:Number(o),count:n,direction:r.FORWARD})),s){const{nextReqMessageIDFromServer:r,hasNoMoreHistoryMessage:n,messageList:a}=s,c=this._messageHelper.filterValidMessages(a),d=this._core.message.messageStore.prependLocalMessageList({messageList:c,conversationID:t}),g=this._core.message.messageStore.getLocalMessageList(t).slice(0,d.length+i),u=g.filter((e=>e.isRevoked));yield this._messageHelper.updateRevokerInfo(u);const l={nextReqMessageID:n?"":String(r),messageList:g,isCompleted:n},h=g.map((e=>e.sequence));return e.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${o} \n availableLocalMessagesCount: ${i} sequenceList: ${JSON.stringify(h)} `}).end(),{code:0,data:l}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}e.setLogInfo({message:`conversationID: ${t} nextReqMessageID: ${o} availableLocalMessagesCount: ${i}}`}).end();return{code:0,data:this._getMessageListFromMemory({conversationID:t,nextReqMessageID:o,count:n})}}catch(e){const s=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getMessageList").setError(s).end(),console.debug(s)}}))}getMessageListHopping(s){return e(this,void 0,void 0,(function*(){var e,t;const{conversationID:o,sequence:n,direction:i=r.FORWARD}=s,{isEmpty:a}=this._core.helper;if(![r.BACKWARD,r.FORWARD].includes(i))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:c=m}=s;c=c>m?m:c;let d=null;if(o.startsWith(_)&&(d=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:o,sequence:n,count:c,direction:i})),d){const{nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:o,messageList:c,invisibleSequenceList:g}=d,u=this._messageHelper.filterValidMessages(c);if(this._core.message.messageStore.storeSparseMessageList(u),i===r.FORWARD){const e=o&&s<1;return{code:0,data:{messageList:u,isCompleted:e,nextMessageSeq:e?"":s}}}if(i===r.BACKWARD){if(a(c)&&a(g))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const s=(null===(e=null==c?void 0:c[c.length-1])||void 0===e?void 0:e.sequence)||0,o=(null===(t=null==g?void 0:g[g.length-1])||void 0===t?void 0:t.sequence)||0;return{code:0,data:{messageList:u.filter((e=>e.sequence>=n)),isCompleted:!1,nextMessageSeq:Math.max(s,o)+1}}}return{code:0,data:d}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}))}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:s}){const t=this._core.message.messageStore.getLocalMessageList(e),{length:o}=t;if(!s)return o;let r=-1;return(null==e?void 0:e.startsWith(v))?r=t.findIndex((e=>e.ID===s)):(null==e?void 0:e.startsWith(_))&&(r=t.findIndex((e=>s.includes("-")?e.ID===s:String(e.sequence)===s))),-1===r?0:r}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:s,targetCount:t}){return!!this._clearedConversations.has(e)||s<=t&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory({conversationID:e,nextReqMessageID:s,count:t}){const o=this._core.message.messageStore.getLocalMessageList(e),r=o.length;let n=r,i={isCompleted:!1,nextReqMessageID:"",messageList:[]},a=0,c=r;return s?s&&(c=o.findIndex((t=>e.startsWith(v)?t.ID===s:String(t.sequence)===s)),a=c>t?c-t:0,n=c):a=r>t?r-t:0,i.nextReqMessageID=0===a?"":this._generateNextReqMessageID({conversationID:e,targetIndex:a}),i.messageList=o.slice(a,c),i.isCompleted=n<=t,i}_generateNextReqMessageID({conversationID:e,targetIndex:s}){const t=this._core.message.messageStore.getLocalMessageList(e);return e.startsWith("C2C")?t[s].ID:String(t[s].sequence)}_recoverHistoryMessage(){const{conversationMap:e}=this._core.store.get("conversation")||{};if(e instanceof Map){const s=[...e.values()].filter((e=>e.type===_));this._groupMessageHistory.recoverHistoryMessage(s)}}_handleSocketDisconnected(){this._groupMessageHistory.updateLastMessageSequenceMapOnDisconnect()}dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.RECOVER_CONVERSATIONS_COMPLETED,this._recoverHistoryMessage,this),e.unSubscribeInnerEvent(s.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}};var q=new class{constructor(){this._core=null}init(e){this._core=e;const{helper:s}=e;s.registerApi("translateText",this)}translateText(s){return e(this,void 0,void 0,(function*(){try{const{sourceLanguage:t,sourceTextList:o,targetLanguage:r}=s,n=yield function(s,t){return e(this,void 0,void 0,(function*(){var e,o;const{sourceTextList:r,sourceLanguage:n,targetLanguage:i}=s,{store:a,helper:c,channel:d}=t,g="im_open_translate.ws_batch_trans_text",u={SourceText:r,Source:n,Target:i,FromAccount:null===(e=a.get("login"))||void 0===e?void 0:e.tinyID,SDKAppID:null===(o=a.get("instance"))||void 0===o?void 0:o.sdkAppId},l=c.generateProtocolData({servcmd:g,data:u}),h=`${l.head.seq}${g}`,v=yield d.sendPacket(l,{requestId:h});if(v){const{CmdErrorCode:e,TargetText:s}=v;return{cmdErrorCode:e,translatedTextList:s}}}))}({sourceLanguage:t,sourceTextList:o,targetLanguage:r},this._core);if(n){const{cmdErrorCode:{ErrorCode:e,ErrorInfo:s},translatedTextList:t}=n;if(0===e)return{code:0,data:{translatedTextList:t}};throw{errorCode:e,errorInfo:s,message:s}}}catch(e){const{errorCode:s,errorInfo:t}=e||{};throw new this._core.helper.ChatError({functionName:"translateText",code:s,message:t})}}))}};return new class{install(e){this._core=e,E.init(e),y.init(e),C.init(e),A.init(e),c.init(e),q.init(e),e.helper.registerValidateConfig({auth:g,params:d}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:s}=this._core;e.unSubscribeInnerEvent(s.DESTROY,this.dispose,this),C.dispose(),A.dispose()}}}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function s(s,e,t,r){return new(t||(t=Promise))((function(i,n){function u(s){try{c(r.next(s))}catch(s){n(s)}}function a(s){try{c(r.throw(s))}catch(s){n(s)}}function c(s){var e;s.done?i(s.value):(e=s.value,e instanceof t?e:new t((function(s){s(e)}))).then(u,a)}c((r=r.apply(s,e||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const e="user-enhancer";var t=new class{init(s){this._core=s;const{helper:e}=s;e.registerApi("getBlacklist",this)}getBlacklist(){return s(this,void 0,void 0,(function*(){return console.log(`${e} getBlacklist`),{code:0,data:[]}}))}};var r=new class{init(s){this._core=s;const{helper:e}=s;e.registerApi("subscribeUserStatus",this),e.registerApi("unsubscribeUserStatus",this)}subscribeUserStatus(s){return console.log(`${e} subscribeUserStatus options: `,s),{code:0,data:{failureUserList:[]}}}unsubscribeUserStatus(s){return console.log(`${e} unsubscribeUserStatus options: `,s),{code:0,data:{failureUserList:[]}}}};const i={subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}}},n={getBlacklist:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};var u=new class{install(s){t.init(s),r.init(s),s.helper.registerValidateConfig({auth:n,params:i})}};export{u as default};
|
package/plugins/user-enhancer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self)["liteChatUser-enhancer"]=t()}(this,(function(){"use strict";function e(e,t,s,r){return new(s||(s=Promise))((function(i,n){function u(e){try{a(r.next(e))}catch(e){n(e)}}function o(e){try{a(r.throw(e))}catch(e){n(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(u,o)}a((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const t="user-enhancer";var s=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi("getBlacklist",this)}getBlacklist(){return e(this,void 0,void 0,(function*(){return console.log(`${t} getBlacklist`),{code:0,data:[]}}))}};var r=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi("subscribeUserStatus",this),t.registerApi("unsubscribeUserStatus",this)}subscribeUserStatus(e){return console.log(`${t} subscribeUserStatus options: `,e),{code:0,data:{failureUserList:[]}}}unsubscribeUserStatus(e){return console.log(`${t} unsubscribeUserStatus options: `,e),{code:0,data:{failureUserList:[]}}}};const i={subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}}},n={getBlacklist:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};return new class{install(e){s.init(e),r.init(e),e.helper.registerValidateConfig({auth:n,params:i})}}}));
|