@tencentcloud/lite-chat 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/standard.js ADDED
@@ -0,0 +1 @@
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).TencentCloudChat=t()}(this,(function(){"use strict";class e{constructor(){this.listeners={}}on(e,t,s){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push({fn:t,context:s})}off(e,t,s){var n;t&&(this.listeners[e]=null===(n=this.listeners[e])||void 0===n?void 0:n.filter((e=>{const n=e.fn===t,o=!s||e.context===s;return!(n&&o)})))}emit(e,...t){const s=this.listeners[e];s&&s.forEach((e=>{const{fn:s,context:n}=e;s.apply(n,t)}))}once(e,t,s){const n=(...o)=>{t.apply(s,o),this.off(e,n)};this.on(e,n)}}var t;!function(e){e.BUSINESS_COMMAND="business_command",e.C2C_REALTIME_MESSAGE="c2c_realtime_message",e.C2C_MESSAGE_MODIFIED="c2c_message_modified",e.C2C_REVOKED_MESSAGE="c2c_message_revoked",e.GROUP_REALTIME_MESSAGE="group_realtime_message",e.GROUP_MESSAGE_MODIFIED="group_message_modified",e.GROUP_MESSAGE_REVOKED="group_message_revoked",e.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",e.MESSAGE_REACTION_UPDATED="message_reaction_updated",e.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",e.GROUP_AT_TIPS="group_at_tips",e.USER_STATUS_UPDATE="user_status_update",e.FRIEND_LIST_MODIFIED="friend_list_modified",e.PROFILE_MODIFIED="profile_modified",e.CONV_MODIFIED="conversation_modified",e.GROUP_TIPS_NOTIFICATION="group_tips_notification",e.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",e.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",e.GROUP_SYSTEM_NOTIFICATION="group_system_notification",e.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",e.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",e.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",e.FOLLOW_LIST_UPDATED="follow_list_updated"}(t||(t={}));const s=[{conditions:[{type:"event",value:100}],subType:t.BUSINESS_COMMAND},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:t.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:t.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:t.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:t.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:t.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:t.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:t.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(e){var s;const n=[];return null===(s=null==e?void 0:e.C2cNotifyMsgArray)||void 0===s||s.forEach((e=>{e.WithdrawC2cMsgNotify&&n.push(t.C2C_REVOKED_MESSAGE),e.C2cReadedReceipt&&n.push(t.C2C_MESSAGE_PEER_READ),e.ReadC2cMsgNotify&&n.push(t.C2C_MESSAGE_READ_SYNC),e.MuteNotificationsSync&&n.push(t.C2C_REMIND_TYPE_SYNC)})),n}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subType:t.GROUP_TIPS_NOTIFICATION},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(e){var s;const n=[];return null===(s=null==e?void 0:e.GroupTips)||void 0===s||s.forEach((e=>{Array.isArray(e.MsgBody.GroupWithdrawInfoArray)&&n.push(t.GROUP_MESSAGE_REVOKED),Array.isArray(e.MsgBody.GroupMsgReceiptList)&&n.push(t.GROUP_MESSAGE_READ_RECEIPT),Array.isArray(e.MsgBody.GroupReadInfoArray)?n.push(t.GROUP_MESSAGE_READ_SYNC):n.push(t.GROUP_SYSTEM_NOTIFICATION)})),n}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subType:t.GROUP_TIPS_NOTIFICATION},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subType:t.GROUP_AT_TIPS},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subType:t.CONV_MODIFIED},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:t.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:t.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:t.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:t.FOLLOW_LIST_UPDATED}];var n;!function(e){e.SERVER_PUSH_MESSAGE="im_open_push.msg_push",e.ERROR="error"}(n||(n={}));const o={[n.SERVER_PUSH_MESSAGE]:function(e){var t;const o=Array.isArray(null===(t=null==e?void 0:e.body)||void 0===t?void 0:t.EventArray)?e.body.EventArray:[],i=[];return o.forEach((t=>{t.Flag=e.body.Flag;const o=s.find((e=>e.conditions.every((e=>{switch(e.type){case"event":return t.Event===e.value;case"hasKey":return Object.prototype.hasOwnProperty.call(t,e.value);default:return!1}}))));if(!o)return null;let r=[];"function"==typeof o.subTypeParser?r=o.subTypeParser(t):o.subType&&(r=o.subType),Array.isArray(r)?r.forEach((e=>{i.push({type:`${n.SERVER_PUSH_MESSAGE}:${e}`,data:t})})):i.push({type:`${n.SERVER_PUSH_MESSAGE}:${r}`,data:t})})),i},[n.ERROR]:function(e){const{errorCode:t}=e;return[{type:`error:${t}`,data:e}]}};const i=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._outerEventEmitter=new e,this._innerEventEmitter=new e,this.InnerEventSubType=t}subscribeInnerEvent(e,t,s,n){var o,i;if(["string","number"].includes(typeof t)){const i=t,r=s;null===(o=this._innerEventEmitter)||void 0===o||o.on(`${e}:${i}`,r,n)}else{const n=t;null===(i=this._innerEventEmitter)||void 0===i||i.on(e,n,s)}}emitInnerEvent(e,t){var s,n;if(null===(s=this._innerEventEmitter)||void 0===s||s.emit(e,t),Object.keys(o).includes(e)){const s=null===(n=o[e])||void 0===n?void 0:n.call(o,t);null==s||s.forEach((e=>{var t;e&&(null===(t=this._innerEventEmitter)||void 0===t||t.emit(e.type,e.data))}))}}unSubscribeInnerEvent(e,t,s,n){var o,i;if(["string","number"].includes(typeof t)){const i=t,r=s;null===(o=this._innerEventEmitter)||void 0===o||o.off(`${e}:${i}`,r,n)}else{const n=t;null===(i=this._innerEventEmitter)||void 0===i||i.off(e,n,s)}}subscribeOuterEvent(e,t,s){var n;null===(n=this._outerEventEmitter)||void 0===n||n.on(e,t,s)}unSubscribeOuterEvent(e,t,s){var n;null===(n=this._outerEventEmitter)||void 0===n||n.off(e,t,s)}emitOuterEvent(e,t){var s;null===(s=this._outerEventEmitter)||void 0===s||s.emit(e,t)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}};function r(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(s[n[o]]=e[n[o]])}return s}function a(e,t,s,n){return new(s||(s=Promise))((function(o,i){function r(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const c=e=>void 0===e,l=e=>"string"==typeof e,u=e=>{var t;return null===(t=Object.prototype.toString.call(e).match(/^\[object (.*)\]$/))||void 0===t?void 0:t[1].toLowerCase()},d=e=>"function"==typeof Array.isArray?Array.isArray(e):"array"===u(e),h=e=>null!==e&&"object"==typeof e,g=e=>d(e)||h(e),p=e=>{if("string"!=typeof e)return!1;const t=e[0];return!/[^a-zA-Z0-9]/.test(t)},_=e=>{if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);if(null===t)return!0;let s=t;for(;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return t===s};function m(e=99999999){return Math.round(Math.random()*e)}const v=(e,t,s,n)=>{if(!g(e)||!g(t))return 0;let o=0;const i=Object.keys(t);let r;for(let a=0,l=i.length;a<l;a++)if(r=i[a],!(c(t[r])||s&&s.includes(r)))if(g(e[r])&&g(t[r]))o+=v(e[r],t[r],s,n);else{if(n&&n.includes(t[r]))continue;e[r]!==t[r]&&(e[r]=t[r],o+=1)}return o};function f(e){let t,s,n=e;e.length%8!=0&&(n="0".repeat(8-e.length%8)+e);let o="";for(let e=0,{length:i}=n;e<i;e+=8)t=parseInt(n.slice(e,e+4),2),s=parseInt(n.slice(e+4,e+8),2),o+=base16Map.get(t)+base16Map.get(s);return o}const I={ANDROID:2,IOS:3,MAC:4,WEB:7,WX_MP:8,QQ_MP:9,TT_MP:10,BAIDU_MP:11,ALI_MP:12,IPAD:13,UNI_NATIVE_APP:15,DONUT_NATIVE_APP:19,NS_NATIVE_APP:20,RN_NATIVE_APP:21},S=["heartbeat.alive","im_open_status.wslogin","im_open_status.wslogout","group_open_long_polling_http_svc.get_msg","group_open_long_polling_http_noauth_svc.get_msg"];var E=Object.freeze({__proto__:null,ENUM_PLATFORM:I,NOT_NEED_CRC_SERVCMD:S});const C="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),y=C&&"function"==typeof wx.createGamePortal,M="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),O="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),T="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),A="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),D="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,R="undefined"!=typeof uni&&"undefined"==typeof window&&"function"==typeof uni.requireNativePlugin,b=C&&"object"==typeof wx.miniapp,N="undefined"!=typeof uni,L=C||M||O||T||A||R||D,w="undefined"==typeof window&&!L&&"undefined"!=typeof global&&void 0!==global.NativeScriptGlobals,P="undefined"!=typeof global&&(void 0!==global.nativeModuleProxy||void 0!==global.ReactNative),U="undefined"!=typeof wx&&"function"==typeof wx.getAccountInfoSync&&Boolean(wx.getAccountInfoSync().plugin),G="undefined"!=typeof uni?!L:"undefined"!=typeof window&&!L&&!P,k=M?qq:O?tt:T?swan:A?my:C?wx:R?uni:D?jd:{},F=G&&window&&window.navigator&&window.navigator.userAgent||"",$=/(micromessenger|webbrowser)/i.test(F),q=function(){let e="WEB";return $?e="WEB":M?e="QQ_MP":O?e="TT_MP":T?e="BAIDU_MP":A?e="ALI_MP":C?e=b?"DONUT_NATIVE_APP":"WX_MP":R?e="UNI_NATIVE_APP":w?e="NS_NATIVE_APP":P&&(e="RN_NATIVE_APP"),I[e]}(),x=/iPad/i.test(F),V=/iPhone/i.test(F)&&!x,B=/iPod/i.test(F),j=V||x||B,W=function(){const e=F.match(/OS (\d+)_/i);return e&&e[1]?e[1]:null}(),K=/Android/i.test(F),H=function(){const e=F.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!e)return null;const t=e[1]&&parseFloat(e[1]),s=e[2]&&parseFloat(e[2]);return t&&s?parseFloat(`${e[1]}.${e[2]}`):t||null}(),Y=/Firefox/i.test(F),z=/Edge/i.test(F),J=!z&&/Chrome/i.test(F),Z=/MSIE/.test(F)||F.indexOf("Trident")>-1&&F.indexOf("rv:11.0")>-1,X=function(){const e=/MSIE\s(\d+)\.\d/.exec(F);let t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(F)&&/rv:11.0/.test(F)&&(t=11),t}(),Q=/Safari/i.test(F)&&!J&&!K&&!z,ee=/Windows/i.test(F),te=/MAC OS X/i.test(F),se=G&&"undefined"!=typeof Worker&&!Z,ne=K||j,oe=G&&void 0!==window.tencent_cloud_im_csig_flutter_for_web_25F_cy,ie=function(){if("undefined"==typeof window||void 0===window.navigator)return!1;const{standalone:e}=window.navigator;return!(!j||e||Q)}();function re(){let e="unknown";if(te&&(e="mac"),ee&&(e="windows"),j&&(e="ios"),K&&(e="android"),L)try{const{platform:t}=wx.getSystemInfoSync();void 0!==t&&(e=t)}catch(e){console.error(e)}return e}const ae=2800,ce=2801,le=3e3,ue="application/x-www-form-urlencoded;charset=UTF-8";function de(e){return a(this,arguments,void 0,(function*({method:e,url:t,data:s,timeout:n=le}){return new Promise(L?(o,i)=>{k.request({url:t,data:s,method:e,timeout:n,header:{"content-type":ue},success:e=>o(e.data),fail:()=>i(new Error(`{"message":"Network error","code":${ae}}`))})}:(o,i)=>{const r=new XMLHttpRequest,a=setTimeout((()=>{r.abort(),i(new Error(`{"message":"Request timeout","code":${ce}}`))}),n);r.onreadystatechange=function(){if(4===r.readyState)if(clearTimeout(a),200===r.status||304===r.status)try{o(r.responseText?JSON.parse(r.responseText):null)}catch(e){o(r.responseText)}else i(new Error(`{"message":"Network error","code":${ae}}`))},r.open(e,t,!0),r.setRequestHeader("Content-type",ue),r.send(s||null)})}))}function he(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(_(e)){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}return("[object Map]"===Object.prototype.toString.call(e)||"[object Set]"===Object.prototype.toString.call(e)||"[object File]"===Object.prototype.toString.call(e))&&0===e.size}function ge(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Map){const t=new Map;return e.forEach(((e,s)=>{t.set(ge(s),ge(e))})),t}if(e instanceof Set){const t=new Set;return e.forEach((e=>{t.add(ge(e))})),t}if(Array.isArray(e))return e.map((e=>ge(e)));const t=Object.getPrototypeOf(e),s=Object.create(t);return[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)].forEach((t=>{const n=Object.getOwnPropertyDescriptor(e,t);n&&(n.get||n.set?Object.defineProperty(s,t,n):s[t]=ge(e[t]))})),s}function pe(){let e,t;return{promise:new Promise(((s,n)=>{e=s,t=n})),resolve:e,reject:t}}var _e=Object.freeze({__proto__:null,ANDROID_VERSION:H,IE_VERSION:X,IN_ALIPAY_MINI_APP:A,IN_BAIDU_MINI_APP:T,IN_BROWSER:G,IN_DONUT_NATIVE_APP:b,IN_JD_MINI_APP:D,IN_MINI_APP:L,IN_NS_NATIVE_APP:w,IN_QQ_MINI_APP:M,IN_RN_APP:P,IN_TT_MINI_APP:O,IN_UNI_APP:N,IN_UNI_NATIVE_APP:R,IN_WX_MINI_APP:C,IN_WX_MINI_GAME:y,IN_WX_MINI_PLUGIN:U,IOS_VERSION:W,IS_ANDROID:K,IS_CHROME:J,IS_EDGE:z,IS_FIREFOX:Y,IS_IE:Z,IS_IOS:j,IS_IPAD:x,IS_IPHONE:V,IS_IPOD:B,IS_MAC:te,IS_SAFARI:Q,IS_WECHAT:$,IS_WIN:ee,IS_WORKER_AVAILABLE:se,MINI_APP_NAMESPACE:k,USER_AGENT:F,base16EncodeBinaryString:f,deepCopyWithMethods:ge,deepMerge:v,generatePromise:pe,getPlatformType:re,getType:u,httpRequest:de,isArray:d,isArrayOrObject:g,isEmpty:he,isFlutterWeb:oe,isH5:ne,isIOSWebView:ie,isNumber:e=>null!==e&&("number"==typeof e&&!Number.isNaN(e-0)||"object"==typeof e&&e.constructor===Number),isObject:h,isPlainObject:_,isString:l,isUndefined:c,isValidRequestKey:p,platform:q,randomInt:m,randomString:function(){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let s=32;s>0;--s)t+=e[Math.floor(62*Math.random())];return t}});class me{constructor(){this._socket=null}connectSocket(e){return this._socket=new WebSocket(e),this._socket}send(e){var t,s;try{null===(t=this._socket)||void 0===t||t.send(e)}catch(e){null===(s=this._onSendFail)||void 0===s||s.call(this,e)}}bindSocketHandlers(e){const{onOpen:t,onMessage:s,onClose:n,onError:o,onSendFail:i}=e;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=t,this._socket.onmessage=s,this._socket.onclose=n,this._socket.onerror=o,this._onSendFail=i)}unbindSocketHandlers(){this._socket&&(this._socket.onopen=null,this._socket.onmessage=null,this._socket.onclose=null,this._socket.onerror=null)}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}class ve{connectSocket(e){return this._socket=wx.connectSocket({url:e,header:{"content-type":"application/json"},complete:()=>{}}),this._socket}send(e){var t;null===(t=this._socket)||void 0===t||t.send({data:e,fail:this._onSendFail})}bindSocketHandlers(e){const{onOpen:t,onMessage:s,onClose:n,onError:o,onSendFail:i}=e;this._socket.onClose(n),this._socket.onOpen(t),this._socket.onMessage(s),this._socket.onError(o),this._onSendFail=i}unbindSocketHandlers(){this._socket&&(this._socket.onClose((()=>{})),this._socket.onOpen((()=>{})),this._socket.onMessage((()=>{})),this._socket.onError((()=>{})))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}const fe="CONNECT",Ie="SEND",Se="DISCONNECT",Ee="OPEN",Ce="MESSAGE",ye="CLOSE",Me="ERROR",Oe="SEND_FAIL";class Te{constructor(){this._worker=null,this._blobUrl=null}connectSocket(e){const t=new Blob(["\n let _socket = null;\n\n self.onmessage = (event) => {\n const { type, url, data } = event.data;\n\n switch (type) {\n case 'CONNECT':\n connectSocket(url);\n break;\n case 'SEND':\n send(data);\n break;\n case 'DISCONNECT':\n disconnect();\n break;\n }\n };\n\n function connectSocket(url) {\n _socket = new WebSocket(url);\n _socket.binaryType = 'arraybuffer';\n bindSocketHandlers();\n return _socket;\n }\n\n function send(packet) {\n try {\n _socket?.send(packet);\n } catch (error) {\n self.postMessage({\n type: 'SEND_FAIL', \n error: {\n message: error.message,\n name: error.name,\n },\n });\n }\n }\n\n function bindSocketHandlers() {\n if (_socket) {\n _socket.onopen = (event) => {\n self.postMessage({\n type: 'OPEN',\n data: {\n type: event.type,\n timeStamp: event.timeStamp,\n },\n });\n };\n\n _socket.onmessage = (event) => {\n self.postMessage({ \n type: 'MESSAGE',\n data: event.data,\n });\n };\n\n _socket.onclose = (event) => {\n self.postMessage({ \n type: 'CLOSE', \n data: { \n code: event.code,\n reason: event.reason,\n timeStamp: event.timeStamp,\n },\n });\n };\n\n _socket.onerror = (error) => {\n self.postMessage({\n type: 'ERROR',\n data: {\n message: error.message,\n name: error.name\n },\n });\n };\n }\n }\n\n function unbindSocketHandlers() {\n if (_socket) {\n _socket.onopen = null;\n _socket.onmessage = null;\n _socket.onclose = null;\n _socket.onerror = null;\n }\n }\n\n function disconnect() {\n if (_socket) {\n _socket.close();\n _socket = null;\n }\n }\n"],{type:"application/javascript"});this._worker=new Worker(URL.createObjectURL(t)),this._worker.postMessage({type:fe,url:e})}send(e){var t,s;try{null===(t=this._worker)||void 0===t||t.postMessage({type:Ie,data:e})}catch(e){null===(s=this._onSendFail)||void 0===s||s.call(this,e)}}bindSocketHandlers(e){const{onOpen:t,onMessage:s,onClose:n,onError:o,onSendFail:i}=e;if(this._worker){const e={[Ee]:t,[Ce]:s,[ye]:n,[Me]:o,[Oe]:i};this._onSendFail=i,this._worker.onmessage=t=>{var s;const{type:n}=(null==t?void 0:t.data)||{};"function"==typeof e[n]&&(null===(s=e[n])||void 0===s||s.call(e,null==t?void 0:t.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Se}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}var Ae,De=new class{constructor(){this._store=new Map}get(e){return this._store.get(e)}getStorage(e){if(L){if(A){return my.getStorageSync({key:e}).data}return k.getStorageSync(e)}return this._canUseLocalStorage()?localStorage.getItem(e):{}}set(e,t){const s=this._store.get(e)||{};t instanceof Map?this._store.set(e,t):this._store.set(e,Object.assign(Object.assign({},s),t))}setStorage(e,t){L?A?my.setStorageSync({key:e,data:JSON.stringify(t)}):k.setStorageSync(e,JSON.stringify(t)):this._canUseLocalStorage()&&localStorage.setItem(e,JSON.stringify(t))}clear(e){"string"==typeof e?this._store.set(e,{}):this._store.clear()}clearLocalStorage(e){this._canUseLocalStorage()&&("string"==typeof e?localStorage.setItem(e,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return"undefined"!=typeof window&&(navigator&&navigator.cookieEnabled&&localStorage)}};!function(e){e[e.CONNECTED=0]="CONNECTED",e[e.CONNECTING=1]="CONNECTING",e[e.DISCONNECTED=2]="DISCONNECTED"}(Ae||(Ae={}));class Re{constructor(t){this._url="",this._readyState=Ae.DISCONNECTED,this._url=t,this._id=m(),this._emitter=new e,C?this._socket=new ve:this._canUseWebWorker()?this._socket=new Te:this._socket=new me,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[Ae.CONNECTED,Ae.CONNECTING].includes(this._readyState)||(this._readyState=Ae.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(e){this._readyState!==Ae.CONNECTED?this.reconnect():this._socket.send(e)}reconnect(){[Ae.CONNECTED,Ae.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(e,t,s){this._emitter.on(e,t,s)}off(e,t,s){this._emitter.off(e,t,s)}isConnected(){return this._readyState===Ae.CONNECTED}disconnect(){this._readyState=Ae.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(e){this._readyState===Ae.CONNECTING&&(this._readyState=Ae.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:e}))}_onMessage(e){this._emitter.emit("message",e)}_onClose(e){this._readyState=Ae.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:e})}_onError(e){this._readyState=Ae.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:e})}_onSendFail(e){this._readyState=Ae.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:e})}_bindSocketHandlers(){this._socket.bindSocketHandlers({onOpen:this._onOpen.bind(this),onMessage:this._onMessage.bind(this),onClose:this._onClose.bind(this),onError:this._onError.bind(this),onSendFail:this._onSendFail.bind(this)})}_unbindSocketHandlers(){this._socket.unbindSocketHandlers()}_canUseWebWorker(){const e=De.get("cloudConfig")||{};return(c(e.isWorkerEnabled)||"1"===e.isWorkerEnabled)&&se}}const be="CHINA",Ne="SINGAPORE",Le="KOREA",we="GERMANY",Pe="IND",Ue="JPN",Ge="USA",ke="INDONESIA",Fe={TEST:{CHINA:{DEFAULT:"wss://wss-dev.tim.qq.com"},OVERSEA:{DEFAULT:"wss://wss-dev.tim.qq.com"},SINGAPORE:{DEFAULT:"wss://wsssgp-dev.im.qcloud.com"},KOREA:{DEFAULT:"wss://wsskr-dev.im.qcloud.com"},GERMANY:{DEFAULT:"wss://wssger-dev.im.qcloud.com"},IND:{DEFAULT:"wss://wssind-dev.im.qcloud.com"},JPN:{DEFAULT:"wss://wssjpn-dev.im.qcloud.com"},USA:{DEFAULT:"wss://wssusa-dev.im.qcloud.com"},INDONESIA:{DEFAULT:"wss://wssidn-dev.im.qcloud.com"}},PRODUCTION:{CHINA:{INITIAL:"wss://*w4c.my-imcloud.com",DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",STAT:"https://events.im.qcloud.com",ANYCAST:"wss://162.14.13.203"},OVERSEA:{INITIAL:"wss://*w4c.my-imcloud.com",DEFAULT:"wss://wss.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",STAT:"https://api.my-imcloud.com"},SINGAPORE:{INITIAL:"wss://*w4s.my-imcloud.com",DEFAULT:"wss://wsssgp.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",STAT:"https://apisgp.my-imcloud.com",ANYCAST:"wss://162.14.19.159"},KOREA:{INITIAL:"wss://*w4k.my-imcloud.com",DEFAULT:"wss://wsskr.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",STAT:"https://apikr.my-imcloud.com",ANYCAST:"wss://162.14.13.104"},GERMANY:{INITIAL:"wss://*w4g.my-imcloud.com",DEFAULT:"wss://wssger.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",STAT:"https://apiger.my-imcloud.com",ANYCAST:"wss://162.14.3.17"},IND:{INITIAL:"wss://*w4i.my-imcloud.com",DEFAULT:"wss://wssind.my-imcloud.com",BACKUP:"wss://wssind.im.qcloud.com",STAT:"https://apiind.my-imcloud.com",ANYCAST:"wss://162.14.18.188"},JPN:{INITIAL:"wss://*w4j.my-imcloud.com",DEFAULT:"wss://wssjpn.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",STAT:"https://apijpn.my-imcloud.com"},USA:{INITIAL:"wss://*w4u.my-imcloud.com",DEFAULT:"wss://wssusa.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",STAT:"https://apiusa.my-imcloud.com",ANYCAST:"wss://162.14.10.42"},INDONESIA:{INITIAL:"wss://*w4y.my-imcloud.com",DEFAULT:"wss://wssidn.im.qcloud.com",BACKUP:"wss://wssidn.my-imcloud.com",STAT:"https://apiidn.my-imcloud.com",ANYCAST:"wss://43.129.34.169"}}},$e={[Ne]:[[2e7,3e7],[172e7,173e7]],[Le]:[[3e7,4e7],[173e7,174e7]],[we]:[[4e7,5e7],[174e7,175e7]],[Pe]:[[5e7,6e7],[175e7,176e7]],[Ue]:[[6e7,7e7],[176e7,177e7]],[Ge]:[[7e7,8e7],[177e7,178e7]],[ke]:[[8e7,9e7],[178e7,179e7]]};function qe(e){for(const t of Object.keys($e))for(const[s,n]of $e[t])if(e>=s&&e<n)return t;return be}var xe,Ve="1.2.1";!function(e){e.INITIAL="INITIAL",e.DEFAULT="DEFAULT",e.BACKUP="BACKUP",e.ANYCAST="ANYCAST"}(xe||(xe={}));let Be=xe.INITIAL;function je(){const e=Math.random();return 0===e?je():e}function We(e,t){const{isBinary:s=!1}=t||{},n=De.get("instance"),{sdkAppId:o,instanceId:i}=n,r=je(),a=re(),c=function(){const e=re();let t=-1;"ios"===e?t=W||-1:"android"===e&&(t=H||-1);return t}(),l=(u={sdkappid:o,instanceid:i,random:r,platform:q,host:a,version:c,sdkversion:Ve},Object.keys(u).map((e=>`${e}=${u[e]}`)).join("&"));var u;return s?`${e}/binfo?${l}&compress=gzip`:`${e}/info?${l}`}var Ke=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(e,t){const s=Date.now(),n=s-e;this._timeOffsetWithServer=t+n-s}};const He=16;var Ye=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(e){const{id:t}=e;this.removeTask(t),this._tasks.push(e),this._taskMap.set(t,e),this._sort(),this._scheduleNextTask()}_createTask(e){const{id:t,callback:s,context:n,isOnce:o=!1,intervalMs:i=He}=e,r=Math.max(i,He);return{id:t,nextExecuteTime:Date.now()+r,intervalMs:i,callback:s,context:n,isOnce:o}}addTask(e){const t=this._createTask(e);this._addTaskToScheduler(t)}addOnceTask(e){const t=this._createTask(Object.assign(Object.assign({},e),{isOnce:!0}));this._addTaskToScheduler(t)}removeTask(e){const t=this._tasks.findIndex((t=>t.id===e));t>-1&&(this._tasks.splice(t,1),this._taskMap.delete(e),this._scheduleNextTask())}updateTaskInterval(e,t){const s=this._taskMap.get(e);s&&(s.intervalMs=t,s.nextExecuteTime=Date.now()+t,this._sort(),this._scheduleNextTask())}clearAllTasks(){this._tasks=[],this._taskMap.clear(),this._timer&&(clearTimeout(this._timer),this._timer=null)}dispose(){this.clearAllTasks()}_sort(){this._tasks.sort(((e,t)=>e.nextExecuteTime-t.nextExecuteTime))}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const e=this._tasks[0];if(e){const t=Math.max(0,e.nextExecuteTime-Date.now());this._timer=setTimeout((()=>this._execute()),t)}}_execute(){const e=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=e;){const t=this._tasks[0];try{t.context?t.callback.call(t.context):t.callback(),t.isOnce?this.removeTask(t.id):(t.nextExecuteTime=e+t.intervalMs,this._sort())}catch(e){console.warn(`Task ${t.id} execution failed:`,e),t.isOnce&&this.removeTask(t.id)}}this._scheduleNextTask()}};function ze(e){const t=[];for(let s=0;s<e.length;s+=1){const n=e.charCodeAt(s);if(n>=55296&&n<=56319){const o=e.charCodeAt(++s)-56320+(n-55296<<10)+65536;t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o)}else n<=127?t.push(n):n<=2047?t.push(192|n>>6,128|63&n):t.push(224|n>>12,128|n>>6&63,128|63&n)}return new Uint8Array(t)}function Je(e){const t=Array.isArray(e)?[]:Object.create(null);for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&p(s)&&null!=e[s]&&(null===e[s]||"object"!=typeof e[s]?t[s]=e[s]:t[s]=Je(e[s]));return t}function Ze(e,t){if(S.includes(e))return 0;const s=ze(JSON.stringify(t));let n=4294967295;const{length:o}=s;for(let e=0;e<o;e++){n^=s[e];for(let e=0;e<8;e++)1&~n?n>>>=1:n=n>>>1^3988292384}return(4294967295^n)>>>0}function Xe(e){const{servcmd:t,data:s}=e,n=function(e){const t=De.get("login")||{},s=De.get("instance")||{};return{servcmd:e,ver:"v4",platform:q,websdkappid:537048168,websdkversion:"1.7.3",a2:t.a2Key||void 0,tinyid:t.tinyID||void 0,status_instid:t.statusInstanceId||0,sdkappid:s.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:t.a2Key?void 0:t.userId,usersig:t.a2Key?void 0:t.userSig,sdkability:75689843,sdkability_ext:f(""),cappid:t.cappid||0,tjgID:"",seq:st(),cs:0}}(t),o=Je(s);return n.cs=Ze(t,o),{head:n,body:o}}function Qe(e){const{servcmd:t,data:s}=e,n=function(e){const t=De.get("login")||{},s=De.get("instance")||{};return{servcmd:e,ver:"v4",platform:q,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:s.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:t.statusInstanceId||0,sdkability:75689843,sdkability_ext:f(""),cappid:t.cappid||0,seq:st(),cs:0}}(t),o=Je(s);return n.cs=Ze(t,o),{head:n,body:o}}let et=m();function st(){return et=et<2415919103?et+1:m(),et}var nt,ot=Object.freeze({__proto__:null,generateCosSpecifiedData:function(e){const{servcmd:t,data:s}=e,n=function(e){const t=De.get("login")||{},s=De.get("instance")||{};return{servcmd:e,ver:"v4",platform:q,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:s.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:t.userId,usersig:t.userSig,status_instid:t.statusInstanceId||0,sdkability:75689843,sdkability_ext:f(""),cappid:t.cappid||0,seq:st(),cs:0}}(t),o=Je(s);return n.cs=Ze(t,o),{head:n,body:o}},generateProtocolData:Xe,generateSSOLogProtocolData:Qe,generateSequence:st,taskScheduler:Ye,timeManager:Ke});!function(e){e[e.info=4]="info",e[e.warning=5]="warning",e[e.error=6]="error"}(nt||(nt={}));const it={method:"extension",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",uiPlatform:"ui_platform",timestamp:"timestamp"};class rt{constructor(e){this.level=nt.info,this._canSendLog=!0,this._logCreatedAt=Ke.getServerTimeMs(),this.timestamp=0,this.networkType=8,this.code=0,this.moreMessage="",this.method="",this.message="",this.costTime=0,this.duplicate=!1,this.eventType=0,this.uiPlatform=void 0;const{method:t,eventType:s=0}=e||{};this.eventType=s,this.method=t}setMoreMessage(e){this.moreMessage=`${this.moreMessage} ${e}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Ke.getTimeOffsetWithServer()}end(e=!1){if(!this._canSendLog)return;const t=Ke.getServerTimeMs();0===this.costTime&&(this.costTime=t-this._logCreatedAt),this.setMoreMessage(`startts:${this._logCreatedAt} endts:${t}`),e?(this._canSendLog=!1,this.timestamp=Ke.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe())):setTimeout((()=>{this._canSendLog=!1,this.timestamp=Ke.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe())}),0)}setError(e){var t;if(!(e instanceof Error))return console.warn("SSOLogData.setError value not instanceof Error, please check!"),this;if(!this._canSendLog)return this;return(null===(t=De.get("netWorkMonitor"))||void 0===t?void 0:t.isNetworkOnline)&&(e.errorCode&&(this.code=e.errorCode),e.errorMessage&&this.setMoreMessage(e.errorMessage)),this.level=nt.error,this}setLogInfo(e){return Object.keys(e).forEach((t=>{Object.keys(it).includes(t)&&(this[t]=e[t])})),this}setSSOLogModule(e){this._ssoLogModule=e}_convertSSOLogDataKeyToServe(){const e={};return Object.keys(this).forEach((t=>{const s=t;it[s]&&(e[it[s]]=this[s])})),e}}var at;function ct(){const e=De.get("login")||{},t=De.get("instance")||{};return{sdk_type:30,sdk_app_id:t.sdkAppId,sdk_version:"1.2.1",tiny_id:Number(e.tinyID),user_id:e.userId,platform:q,instance_id:t.instanceId,trace_id:(new Date).getTime()}}!function(e){e.RECONNECTED="reconnected",e.CLOUD_CONFIG_UPDATE="cloud_config_update",e.SOCKET_DISCONNECTED="socket_disconnected"}(at||(at={}));var lt=at;const ut=20,dt=6e4,ht=[4,5,6],gt=[],pt=[],_t="report-logger";var mt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=ut,this._maxThreshold=100,this._waitingTime=dt,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,i.subscribeInnerEvent(lt.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),Ye.addTask({id:_t,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(e){const{evt_rpt_threshold:t=ut,evt_rpt_waiting:s=dt,evt_rpt_level:n=ht,evt_rpt_sdkappid_bl:o=gt,evt_rpt_tinyid_wl:i=pt}=e||{};this._sdkAppIdBlackList=o,this._waitingTime=s,this._minThreshold=t,this._reportLevel=n,this._tinyIdWhiteList=i}createSSOLogData(e){const t=new rt(e);return t.setSSOLogModule(this),this._ssoLogMap.set(e.method,t),t}getSSOLogData(e){return this._ssoLogMap.get(e)||{}}pushToLogQueue(e){e&&(this._logQueue.push(e),this._shouldUploadImmediately()&&this._uploadSSOLogData())}_shouldUploadImmediately(){return this._logQueue.length>=this._minThreshold}_isReportDue(){return Date.now()>=this._lastReportAt+this._waitingTime}_checkAndReportIfDue(){this._isReportDue()&&this._logQueue.length>0&&this._uploadSSOLogData()}_uploadSSOLogData(){return a(this,void 0,void 0,(function*(){if(0===this._logQueue.length)return;const e=this._logQueue.slice(),t=this._filterLogs(e);if(this._logQueue=[],0===t.length)return void(this._lastReportAt=Date.now());const s={Header:ct(),Event:t};yield function(e){const t="imopenstat.tim_web_report_v2",s=Qe({servcmd:t,data:e}),n=`${s.head.seq}${t}`;Gt.sendPacket(s,{requestId:n})}(s),this._lastReportAt=Date.now()}))}_savePlatFormInfo(){var e,t;if(C){const s=null===(t=null===(e=wx.getAccountInfoSync)||void 0===e?void 0:e.call(wx))||void 0===t?void 0:t.miniProgram;if(s){const{appId:e,envVersion:t}=s;De.set("instance",{appId:e,envVersion:t})}}else G&&De.set("instance",{href:window.location.href})}_filterLogs(e){const{tinyID:t}=De.get("login")||{},{sdkAppId:s}=De.get("instance")||{};return this._sdkAppIdBlackList.includes(s)&&!this._tinyIdWhiteList.includes(t)?[]:e.filter((e=>this._reportLevel.includes(e.level)))}reset(){console.log("SSO_LOG_MODULE.reset"),Ye.removeTask(_t),i.unSubscribeInnerEvent(lt.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this._uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=ut,this._maxThreshold=100,this._waitingTime=dt,this._logQueue=[]}};const vt=15e3,ft="Channel",It="channel_schedule_task",St="channel_reconnect_task",Et="connected",Ct="connecting",yt="disconnected",Mt=500,Ot="network_status_change",Tt="activity_status_change",At="send_fail",Dt="reconnect_failed",Rt="socket_error",bt="socket_close";function Nt(e){return Nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nt(e)}function Lt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var wt,Pt={exports:{}};var Ut=(wt||(wt=1,function(e){e.exports=function e(t,s,n){function o(r,a){if(!s[r]){if(!t[r]){if(!a&&Lt)return Lt(r);if(i)return i(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var l=s[r]={exports:{}};t[r][0].call(l.exports,(function(e){return o(t[r][1][e]||e)}),l,l.exports,e,t,s,n)}return s[r].exports}for(var i=Lt,r=0;r<n.length;r++)o(n[r]);return o}({1:[function(e,t,s){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;s.assign=function(e){for(var t,s,n=Array.prototype.slice.call(arguments,1);n.length;){var o=n.shift();if(o){if("object"!=Nt(o))throw new TypeError(o+"must be non-object");for(var i in o)t=o,s=i,Object.prototype.hasOwnProperty.call(t,s)&&(e[i]=o[i])}}return e},s.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,s,n,o){if(t.subarray&&e.subarray)e.set(t.subarray(s,s+n),o);else for(var i=0;i<n;i++)e[o+i]=t[s+i]},flattenChunks:function(e){var t,s,n,o,i,r;for(t=n=0,s=e.length;t<s;t++)n+=e[t].length;for(r=new Uint8Array(n),t=o=0,s=e.length;t<s;t++)i=e[t],r.set(i,o),o+=i.length;return r}},i={arraySet:function(e,t,s,n,o){for(var i=0;i<n;i++)e[o+i]=t[s+i]},flattenChunks:function(e){return[].concat.apply([],e)}};s.setTyped=function(e){e?(s.Buf8=Uint8Array,s.Buf16=Uint16Array,s.Buf32=Int32Array,s.assign(s,o)):(s.Buf8=Array,s.Buf16=Array,s.Buf32=Array,s.assign(s,i))},s.setTyped(n)},{}],2:[function(e,t,s){var n=e("./common"),o=!0,i=!0;try{String.fromCharCode.apply(null,[0])}catch(e){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){i=!1}for(var r=new n.Buf8(256),a=0;a<256;a++)r[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function c(e,t){if(t<65534&&(e.subarray&&i||!e.subarray&&o))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var s="",r=0;r<t;r++)s+=String.fromCharCode(e[r]);return s}r[254]=r[254]=1,s.string2buf=function(e){var t,s,o,i,r,a=e.length,c=0;for(i=0;i<a;i++)55296==(64512&(s=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(o=e.charCodeAt(i+1)))&&(s=65536+(s-55296<<10)+(o-56320),i++),c+=s<128?1:s<2048?2:s<65536?3:4;for(t=new n.Buf8(c),i=r=0;r<c;i++)55296==(64512&(s=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(o=e.charCodeAt(i+1)))&&(s=65536+(s-55296<<10)+(o-56320),i++),s<128?t[r++]=s:(s<2048?t[r++]=192|s>>>6:(s<65536?t[r++]=224|s>>>12:(t[r++]=240|s>>>18,t[r++]=128|s>>>12&63),t[r++]=128|s>>>6&63),t[r++]=128|63&s);return t},s.buf2binstring=function(e){return c(e,e.length)},s.binstring2buf=function(e){for(var t=new n.Buf8(e.length),s=0,o=t.length;s<o;s++)t[s]=e.charCodeAt(s);return t},s.buf2string=function(e,t){var s,n,o,i,a=t||e.length,l=new Array(2*a);for(s=n=0;s<a;)if((o=e[s++])<128)l[n++]=o;else if(4<(i=r[o]))l[n++]=65533,s+=i-1;else{for(o&=2===i?31:3===i?15:7;1<i&&s<a;)o=o<<6|63&e[s++],i--;1<i?l[n++]=65533:o<65536?l[n++]=o:(o-=65536,l[n++]=55296|o>>10&1023,l[n++]=56320|1023&o)}return c(l,n)},s.utf8border=function(e,t){var s;for((t=t||e.length)>e.length&&(t=e.length),s=t-1;0<=s&&128==(192&e[s]);)s--;return s<0||0===s?t:s+r[e[s]]>t?s:t}},{"./common":1}],3:[function(e,t,s){t.exports=function(e,t,s,n){for(var o=65535&e,i=e>>>16&65535,r=0;0!==s;){for(s-=r=2e3<s?2e3:s;i=i+(o=o+t[n++]|0)|0,--r;);o%=65521,i%=65521}return o|i<<16}},{}],4:[function(e,t,s){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],5:[function(e,t,s){var n=function(){for(var e,t=[],s=0;s<256;s++){e=s;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t}();t.exports=function(e,t,s,o){var i=n,r=o+s;e^=-1;for(var a=o;a<r;a++)e=e>>>8^i[255&(e^t[a])];return~e}},{}],6:[function(e,t,s){t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],7:[function(e,t,s){t.exports=function(e,t){var s,n,o,i,r,a,c,l,u,d,h,g,p,_,m,v,f,I,S,E,C,y,M,O,T;s=e.state,n=e.next_in,O=e.input,o=n+(e.avail_in-5),i=e.next_out,T=e.output,r=i-(t-e.avail_out),a=i+(e.avail_out-257),c=s.dmax,l=s.wsize,u=s.whave,d=s.wnext,h=s.window,g=s.hold,p=s.bits,_=s.lencode,m=s.distcode,v=(1<<s.lenbits)-1,f=(1<<s.distbits)-1;e:do{p<15&&(g+=O[n++]<<p,p+=8,g+=O[n++]<<p,p+=8),I=_[g&v];t:for(;;){if(g>>>=S=I>>>24,p-=S,0==(S=I>>>16&255))T[i++]=65535&I;else{if(!(16&S)){if(!(64&S)){I=_[(65535&I)+(g&(1<<S)-1)];continue t}if(32&S){s.mode=12;break e}e.msg="invalid literal/length code",s.mode=30;break e}E=65535&I,(S&=15)&&(p<S&&(g+=O[n++]<<p,p+=8),E+=g&(1<<S)-1,g>>>=S,p-=S),p<15&&(g+=O[n++]<<p,p+=8,g+=O[n++]<<p,p+=8),I=m[g&f];s:for(;;){if(g>>>=S=I>>>24,p-=S,!(16&(S=I>>>16&255))){if(!(64&S)){I=m[(65535&I)+(g&(1<<S)-1)];continue s}e.msg="invalid distance code",s.mode=30;break e}if(C=65535&I,p<(S&=15)&&(g+=O[n++]<<p,(p+=8)<S&&(g+=O[n++]<<p,p+=8)),c<(C+=g&(1<<S)-1)){e.msg="invalid distance too far back",s.mode=30;break e}if(g>>>=S,p-=S,(S=i-r)<C){if(u<(S=C-S)&&s.sane){e.msg="invalid distance too far back",s.mode=30;break e}if(M=h,(y=0)===d){if(y+=l-S,S<E){for(E-=S;T[i++]=h[y++],--S;);y=i-C,M=T}}else if(d<S){if(y+=l+d-S,(S-=d)<E){for(E-=S;T[i++]=h[y++],--S;);if(y=0,d<E){for(E-=S=d;T[i++]=h[y++],--S;);y=i-C,M=T}}}else if(y+=d-S,S<E){for(E-=S;T[i++]=h[y++],--S;);y=i-C,M=T}for(;2<E;)T[i++]=M[y++],T[i++]=M[y++],T[i++]=M[y++],E-=3;E&&(T[i++]=M[y++],1<E&&(T[i++]=M[y++]))}else{for(y=i-C;T[i++]=T[y++],T[i++]=T[y++],T[i++]=T[y++],2<(E-=3););E&&(T[i++]=T[y++],1<E&&(T[i++]=T[y++]))}break}}break}}while(n<o&&i<a);n-=E=p>>3,g&=(1<<(p-=E<<3))-1,e.next_in=n,e.next_out=i,e.avail_in=n<o?o-n+5:5-(n-o),e.avail_out=i<a?a-i+257:257-(i-a),s.hold=g,s.bits=p}},{}],8:[function(e,t,s){var n=e("../utils/common"),o=e("./adler32"),i=e("./crc32"),r=e("./inffast"),a=e("./inftrees"),c=1,l=2,u=0,d=-2,h=1,g=852,p=592;function _(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function m(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=h,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(g),t.distcode=t.distdyn=new n.Buf32(p),t.sane=1,t.back=-1,u):d}function f(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,v(e)):d}function I(e,t){var s,n;return e&&e.state?(n=e.state,t<0?(s=0,t=-t):(s=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?d:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=s,n.wbits=t,f(e))):d}function S(e,t){var s,n;return e?(n=new m,(e.state=n).window=null,(s=I(e,t))!==u&&(e.state=null),s):d}var E,C,y=!0;function M(e){if(y){var t;for(E=new n.Buf32(512),C=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a(c,e.lens,0,288,E,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(l,e.lens,0,32,C,0,e.work,{bits:5}),y=!1}e.lencode=E,e.lenbits=9,e.distcode=C,e.distbits=5}function O(e,t,s,o){var i,r=e.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new n.Buf8(r.wsize)),o>=r.wsize?(n.arraySet(r.window,t,s-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(o<(i=r.wsize-r.wnext)&&(i=o),n.arraySet(r.window,t,s-o,i,r.wnext),(o-=i)?(n.arraySet(r.window,t,s-o,o,0),r.wnext=o,r.whave=r.wsize):(r.wnext+=i,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=i))),0}s.inflateReset=f,s.inflateReset2=I,s.inflateResetKeep=v,s.inflateInit=function(e){return S(e,15)},s.inflateInit2=S,s.inflate=function(e,t){var s,g,p,m,v,f,I,S,E,C,y,T,A,D,R,b,N,L,w,P,U,G,k,F,$=0,q=new n.Buf8(4),x=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return d;12===(s=e.state).mode&&(s.mode=13),v=e.next_out,p=e.output,I=e.avail_out,m=e.next_in,g=e.input,f=e.avail_in,S=s.hold,E=s.bits,C=f,y=I,G=u;e:for(;;)switch(s.mode){case h:if(0===s.wrap){s.mode=13;break}for(;E<16;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(2&s.wrap&&35615===S){q[s.check=0]=255&S,q[1]=S>>>8&255,s.check=i(s.check,q,2,0),E=S=0,s.mode=2;break}if(s.flags=0,s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&S)<<8)+(S>>8))%31){e.msg="incorrect header check",s.mode=30;break}if(8!=(15&S)){e.msg="unknown compression method",s.mode=30;break}if(E-=4,U=8+(15&(S>>>=4)),0===s.wbits)s.wbits=U;else if(U>s.wbits){e.msg="invalid window size",s.mode=30;break}s.dmax=1<<U,e.adler=s.check=1,s.mode=512&S?10:12,E=S=0;break;case 2:for(;E<16;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(s.flags=S,8!=(255&s.flags)){e.msg="unknown compression method",s.mode=30;break}if(57344&s.flags){e.msg="unknown header flags set",s.mode=30;break}s.head&&(s.head.text=S>>8&1),512&s.flags&&(q[0]=255&S,q[1]=S>>>8&255,s.check=i(s.check,q,2,0)),E=S=0,s.mode=3;case 3:for(;E<32;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.head&&(s.head.time=S),512&s.flags&&(q[0]=255&S,q[1]=S>>>8&255,q[2]=S>>>16&255,q[3]=S>>>24&255,s.check=i(s.check,q,4,0)),E=S=0,s.mode=4;case 4:for(;E<16;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.head&&(s.head.xflags=255&S,s.head.os=S>>8),512&s.flags&&(q[0]=255&S,q[1]=S>>>8&255,s.check=i(s.check,q,2,0)),E=S=0,s.mode=5;case 5:if(1024&s.flags){for(;E<16;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.length=S,s.head&&(s.head.extra_len=S),512&s.flags&&(q[0]=255&S,q[1]=S>>>8&255,s.check=i(s.check,q,2,0)),E=S=0}else s.head&&(s.head.extra=null);s.mode=6;case 6:if(1024&s.flags&&(f<(T=s.length)&&(T=f),T&&(s.head&&(U=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Array(s.head.extra_len)),n.arraySet(s.head.extra,g,m,T,U)),512&s.flags&&(s.check=i(s.check,g,T,m)),f-=T,m+=T,s.length-=T),s.length))break e;s.length=0,s.mode=7;case 7:if(2048&s.flags){if(0===f)break e;for(T=0;U=g[m+T++],s.head&&U&&s.length<65536&&(s.head.name+=String.fromCharCode(U)),U&&T<f;);if(512&s.flags&&(s.check=i(s.check,g,T,m)),f-=T,m+=T,U)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=8;case 8:if(4096&s.flags){if(0===f)break e;for(T=0;U=g[m+T++],s.head&&U&&s.length<65536&&(s.head.comment+=String.fromCharCode(U)),U&&T<f;);if(512&s.flags&&(s.check=i(s.check,g,T,m)),f-=T,m+=T,U)break e}else s.head&&(s.head.comment=null);s.mode=9;case 9:if(512&s.flags){for(;E<16;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(S!==(65535&s.check)){e.msg="header crc mismatch",s.mode=30;break}E=S=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=12;break;case 10:for(;E<32;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}e.adler=s.check=_(S),E=S=0,s.mode=11;case 11:if(0===s.havedict)return e.next_out=v,e.avail_out=I,e.next_in=m,e.avail_in=f,s.hold=S,s.bits=E,2;e.adler=s.check=1,s.mode=12;case 12:if(5===t||6===t)break e;case 13:if(s.last){S>>>=7&E,E-=7&E,s.mode=27;break}for(;E<3;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}switch(s.last=1&S,E-=1,3&(S>>>=1)){case 0:s.mode=14;break;case 1:if(M(s),s.mode=20,6!==t)break;S>>>=2,E-=2;break e;case 2:s.mode=17;break;case 3:e.msg="invalid block type",s.mode=30}S>>>=2,E-=2;break;case 14:for(S>>>=7&E,E-=7&E;E<32;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if((65535&S)!=(S>>>16^65535)){e.msg="invalid stored block lengths",s.mode=30;break}if(s.length=65535&S,E=S=0,s.mode=15,6===t)break e;case 15:s.mode=16;case 16:if(T=s.length){if(f<T&&(T=f),I<T&&(T=I),0===T)break e;n.arraySet(p,g,m,T,v),f-=T,m+=T,I-=T,v+=T,s.length-=T;break}s.mode=12;break;case 17:for(;E<14;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(s.nlen=257+(31&S),S>>>=5,E-=5,s.ndist=1+(31&S),S>>>=5,E-=5,s.ncode=4+(15&S),S>>>=4,E-=4,286<s.nlen||30<s.ndist){e.msg="too many length or distance symbols",s.mode=30;break}s.have=0,s.mode=18;case 18:for(;s.have<s.ncode;){for(;E<3;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.lens[x[s.have++]]=7&S,S>>>=3,E-=3}for(;s.have<19;)s.lens[x[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,k={bits:s.lenbits},G=a(0,s.lens,0,19,s.lencode,0,s.work,k),s.lenbits=k.bits,G){e.msg="invalid code lengths set",s.mode=30;break}s.have=0,s.mode=19;case 19:for(;s.have<s.nlen+s.ndist;){for(;b=($=s.lencode[S&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((R=$>>>24)<=E);){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(N<16)S>>>=R,E-=R,s.lens[s.have++]=N;else{if(16===N){for(F=R+2;E<F;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(S>>>=R,E-=R,0===s.have){e.msg="invalid bit length repeat",s.mode=30;break}U=s.lens[s.have-1],T=3+(3&S),S>>>=2,E-=2}else if(17===N){for(F=R+3;E<F;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}E-=R,U=0,T=3+(7&(S>>>=R)),S>>>=3,E-=3}else{for(F=R+7;E<F;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}E-=R,U=0,T=11+(127&(S>>>=R)),S>>>=7,E-=7}if(s.have+T>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=30;break}for(;T--;)s.lens[s.have++]=U}}if(30===s.mode)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=30;break}if(s.lenbits=9,k={bits:s.lenbits},G=a(c,s.lens,0,s.nlen,s.lencode,0,s.work,k),s.lenbits=k.bits,G){e.msg="invalid literal/lengths set",s.mode=30;break}if(s.distbits=6,s.distcode=s.distdyn,k={bits:s.distbits},G=a(l,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,k),s.distbits=k.bits,G){e.msg="invalid distances set",s.mode=30;break}if(s.mode=20,6===t)break e;case 20:s.mode=21;case 21:if(6<=f&&258<=I){e.next_out=v,e.avail_out=I,e.next_in=m,e.avail_in=f,s.hold=S,s.bits=E,r(e,y),v=e.next_out,p=e.output,I=e.avail_out,m=e.next_in,g=e.input,f=e.avail_in,S=s.hold,E=s.bits,12===s.mode&&(s.back=-1);break}for(s.back=0;b=($=s.lencode[S&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((R=$>>>24)<=E);){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(b&&!(240&b)){for(L=R,w=b,P=N;b=($=s.lencode[P+((S&(1<<L+w)-1)>>L)])>>>16&255,N=65535&$,!(L+(R=$>>>24)<=E);){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}S>>>=L,E-=L,s.back+=L}if(S>>>=R,E-=R,s.back+=R,s.length=N,0===b){s.mode=26;break}if(32&b){s.back=-1,s.mode=12;break}if(64&b){e.msg="invalid literal/length code",s.mode=30;break}s.extra=15&b,s.mode=22;case 22:if(s.extra){for(F=s.extra;E<F;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.length+=S&(1<<s.extra)-1,S>>>=s.extra,E-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=23;case 23:for(;b=($=s.distcode[S&(1<<s.distbits)-1])>>>16&255,N=65535&$,!((R=$>>>24)<=E);){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(!(240&b)){for(L=R,w=b,P=N;b=($=s.distcode[P+((S&(1<<L+w)-1)>>L)])>>>16&255,N=65535&$,!(L+(R=$>>>24)<=E);){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}S>>>=L,E-=L,s.back+=L}if(S>>>=R,E-=R,s.back+=R,64&b){e.msg="invalid distance code",s.mode=30;break}s.offset=N,s.extra=15&b,s.mode=24;case 24:if(s.extra){for(F=s.extra;E<F;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}s.offset+=S&(1<<s.extra)-1,S>>>=s.extra,E-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=30;break}s.mode=25;case 25:if(0===I)break e;if(T=y-I,s.offset>T){if((T=s.offset-T)>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=30;break}T>s.wnext?(T-=s.wnext,A=s.wsize-T):A=s.wnext-T,T>s.length&&(T=s.length),D=s.window}else D=p,A=v-s.offset,T=s.length;for(I<T&&(T=I),I-=T,s.length-=T;p[v++]=D[A++],--T;);0===s.length&&(s.mode=21);break;case 26:if(0===I)break e;p[v++]=s.length,I--,s.mode=21;break;case 27:if(s.wrap){for(;E<32;){if(0===f)break e;f--,S|=g[m++]<<E,E+=8}if(y-=I,e.total_out+=y,s.total+=y,y&&(e.adler=s.check=s.flags?i(s.check,p,y,v-y):o(s.check,p,y,v-y)),y=I,(s.flags?S:_(S))!==s.check){e.msg="incorrect data check",s.mode=30;break}E=S=0}s.mode=28;case 28:if(s.wrap&&s.flags){for(;E<32;){if(0===f)break e;f--,S+=g[m++]<<E,E+=8}if(S!==(4294967295&s.total)){e.msg="incorrect length check",s.mode=30;break}E=S=0}s.mode=29;case 29:G=1;break e;case 30:G=-3;break e;case 31:return-4;default:return d}return e.next_out=v,e.avail_out=I,e.next_in=m,e.avail_in=f,s.hold=S,s.bits=E,(s.wsize||y!==e.avail_out&&s.mode<30&&(s.mode<27||4!==t))&&O(e,e.output,e.next_out,y-e.avail_out)?(s.mode=31,-4):(C-=e.avail_in,y-=e.avail_out,e.total_in+=C,e.total_out+=y,s.total+=y,s.wrap&&y&&(e.adler=s.check=s.flags?i(s.check,p,y,e.next_out-y):o(s.check,p,y,e.next_out-y)),e.data_type=s.bits+(s.last?64:0)+(12===s.mode?128:0)+(20===s.mode||15===s.mode?256:0),(0===C&&0===y||4===t)&&G===u&&(G=-5),G)},s.inflateEnd=function(e){if(!e||!e.state)return d;var t=e.state;return t.window&&(t.window=null),e.state=null,u},s.inflateGetHeader=function(e,t){var s;return e&&e.state&&2&(s=e.state).wrap?((s.head=t).done=!1,u):d},s.inflateSetDictionary=function(e,t){var s,n=t.length;return e&&e.state?0!==(s=e.state).wrap&&11!==s.mode?d:11===s.mode&&o(1,t,n,0)!==s.check?-3:O(e,t,n,n)?(s.mode=31,-4):(s.havedict=1,u):d},s.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(e,t,s){var n=e("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],i=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],r=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,s,c,l,u,d,h){var g,p,_,m,v,f,I,S,E,C=h.bits,y=0,M=0,O=0,T=0,A=0,D=0,R=0,b=0,N=0,L=0,w=null,P=0,U=new n.Buf16(16),G=new n.Buf16(16),k=null,F=0;for(y=0;y<=15;y++)U[y]=0;for(M=0;M<c;M++)U[t[s+M]]++;for(A=C,T=15;1<=T&&0===U[T];T--);if(T<A&&(A=T),0===T)return l[u++]=20971520,l[u++]=20971520,h.bits=1,0;for(O=1;O<T&&0===U[O];O++);for(A<O&&(A=O),y=b=1;y<=15;y++)if(b<<=1,(b-=U[y])<0)return-1;if(0<b&&(0===e||1!==T))return-1;for(G[1]=0,y=1;y<15;y++)G[y+1]=G[y]+U[y];for(M=0;M<c;M++)0!==t[s+M]&&(d[G[t[s+M]]++]=M);if(0===e?(w=k=d,f=19):1===e?(w=o,P-=257,k=i,F-=257,f=256):(w=r,k=a,f=-1),y=O,v=u,R=M=L=0,_=-1,m=(N=1<<(D=A))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(I=y-R,d[M]<f?(S=0,E=d[M]):d[M]>f?(S=k[F+d[M]],E=w[P+d[M]]):(S=96,E=0),g=1<<y-R,O=p=1<<D;l[v+(L>>R)+(p-=g)]=I<<24|S<<16|E,0!==p;);for(g=1<<y-1;L&g;)g>>=1;if(0!==g?(L&=g-1,L+=g):L=0,M++,0==--U[y]){if(y===T)break;y=t[s+d[M]]}if(A<y&&(L&m)!==_){for(0===R&&(R=A),v+=O,b=1<<(D=y-R);D+R<T&&!((b-=U[D+R])<=0);)D++,b<<=1;if(N+=1<<D,1===e&&852<N||2===e&&592<N)return 1;l[_=L&m]=A<<24|D<<16|v-u}}return 0!==L&&(l[v+L]=y-R<<24|64<<16),h.bits=A,0}},{"../utils/common":1}],10:[function(e,t,s){t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],11:[function(e,t,s){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],"/lib/inflate.js":[function(e,t,s){var n=e("./zlib/inflate"),o=e("./utils/common"),i=e("./utils/strings"),r=e("./zlib/constants"),a=e("./zlib/messages"),c=e("./zlib/zstream"),l=e("./zlib/gzheader"),u=Object.prototype.toString;function d(e){if(!(this instanceof d))return new d(e);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&!(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var s=n.inflateInit2(this.strm,t.windowBits);if(s!==r.Z_OK)throw new Error(a[s]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(s=n.inflateSetDictionary(this.strm,t.dictionary))!==r.Z_OK))throw new Error(a[s])}function h(e,t){var s=new d(t);if(s.push(e,!0),s.err)throw s.msg||a[s.err];return s.result}d.prototype.push=function(e,t){var s,a,c,l,d,h=this.strm,g=this.options.chunkSize,p=this.options.dictionary,_=!1;if(this.ended)return!1;a=t===~~t?t:!0===t?r.Z_FINISH:r.Z_NO_FLUSH,"string"==typeof e?h.input=i.binstring2buf(e):"[object ArrayBuffer]"===u.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new o.Buf8(g),h.next_out=0,h.avail_out=g),(s=n.inflate(h,r.Z_NO_FLUSH))===r.Z_NEED_DICT&&p&&(s=n.inflateSetDictionary(this.strm,p)),s===r.Z_BUF_ERROR&&!0===_&&(s=r.Z_OK,_=!1),s!==r.Z_STREAM_END&&s!==r.Z_OK)return this.onEnd(s),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&s!==r.Z_STREAM_END&&(0!==h.avail_in||a!==r.Z_FINISH&&a!==r.Z_SYNC_FLUSH)||("string"===this.options.to?(c=i.utf8border(h.output,h.next_out),l=h.next_out-c,d=i.buf2string(h.output,c),h.next_out=l,h.avail_out=g-l,l&&o.arraySet(h.output,h.output,c,l,0),this.onData(d)):this.onData(o.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(_=!0)}while((0<h.avail_in||0===h.avail_out)&&s!==r.Z_STREAM_END);return s===r.Z_STREAM_END&&(a=r.Z_FINISH),a===r.Z_FINISH?(s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===r.Z_OK):a!==r.Z_SYNC_FLUSH||(this.onEnd(r.Z_OK),!(h.avail_out=0))},d.prototype.onData=function(e){this.chunks.push(e)},d.prototype.onEnd=function(e){e===r.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},s.Inflate=d,s.inflate=h,s.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},s.ungzip=h},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")}(Pt)),Pt.exports);var Gt=new class{constructor(){this._socketAdapter=null,this._url="",this._isReconnecting=!1,this._pendingRequests=new Map,this._nextHeartbeatAt=0,this._lastDiagnoseAt=0,this._isHeartbeatInProgress=!1,this._connectionEstablishedTime=0,this._connectionStartTime=0,this._connectionId=-1,this._isBinarySupported=!0,this._intendedDelay=Mt,this._currentConnectState=Et,this._beforeSendInterceptors=[]}init(){Ye.addTask({id:It,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(e){const t=De.get("instance"),{sdkAppId:s,testEnv:n}=t,o=qe(s);return We(n?Fe.TEST[o].DEFAULT:Fe.PRODUCTION[o].INITIAL.replace("*",`${s}`),{isBinary:e})}(this._isBinarySupported),i.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),i.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(e,t){var s;const{requestId:n,timeout:o=vt,canResend:i=!0}=t||{};if(he(e))return console.warn(`${ft}.sendPacket: packet is empty `,e),null;this._executeBeforeSendInterceptors(e);const r=JSON.stringify(e);let a=null;if(n){const{resolve:e,reject:t,promise:s}=pe();a=s,this._pendingRequests.set(n,{resolve:e,reject:t,timestamp:Date.now(),uplinkData:r,timeout:o,canResend:i})}const c=this._isBinarySupported?ze(r).buffer:r;return null===(s=this._socketAdapter)||void 0===s||s.send(c),a}connect(){var e;this._socketAdapter=new Re(this._url),this._connectionEstablishedTime=0,this._addEventListeners(),this._connectionStartTime=Date.now();const t=null===(e=this._socketAdapter)||void 0===e?void 0:e.getId(),s=`${ft}.connect isWorkerEnabled: false socketID:${t} url:${this._url}`;this._ssoLog({method:"connect",message:s}),console.log(s)}disconnect(){var e,t;const s=null===(e=this._socketAdapter)||void 0===e?void 0:e.getId(),n=`${ft}.disconnect socketID:${s}`;this._ssoLog({method:"disconnect",message:n}),console.log(n),this._removeEventListeners(),null===(t=this._socketAdapter)||void 0===t||t.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${ft}.dispose`),Ye.removeTask(It),Ye.removeTask(St),i.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),i.unSubscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.disconnect(),this._socketAdapter=null,this._isReconnecting=!1,this._isHeartbeatInProgress=!1,this._pendingRequests.clear(),this._nextHeartbeatAt=0,this._lastDiagnoseAt=0,this._intendedDelay=Mt,this._url=""}registerBeforeSendInterceptor(e,t){this._beforeSendInterceptors.push(e.bind(t))}_executeBeforeSendInterceptors(e){for(const t of this._beforeSendInterceptors){const{servcmd:s=""}=null==e?void 0:e.head;t(s.includes(".")?s.split(".").pop():"")}}_shouldSkipReconnect(){const e=this._currentConnectState===Ct&&this._isReconnecting;return!this._socketAdapter||e}reconnect(){return a(this,void 0,void 0,(function*(){const e=`${ft} reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:e}),console.log(e),!this._shouldSkipReconnect()){this._url=function(e){const t=De.get("instance"),{sdkAppId:s,testEnv:n}=t,o=qe(s);if(n)return We(Fe.TEST[o].DEFAULT,{isBinary:e});const i=Fe.PRODUCTION[o],r=G&&i.ANYCAST;return We({[xe.INITIAL]:()=>(Be=xe.DEFAULT,i.DEFAULT),[xe.DEFAULT]:()=>(Be=xe.BACKUP,i.BACKUP),[xe.BACKUP]:()=>(Be=r?xe.ANYCAST:xe.DEFAULT,r?i.ANYCAST:i.DEFAULT),[xe.ANYCAST]:()=>(Be=xe.DEFAULT,i.ANYCAST="",i.DEFAULT)}[Be](),{isBinary:e})}(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(e){this._isReconnecting=!1,this._handleConnectStateChange({state:yt,reason:Dt}),console.warn(`${ft} reconnect failed: `,e)}}}))}_addEventListeners(){var e,t,s,n,o;null===(e=this._socketAdapter)||void 0===e||e.on("connect",this._onConnect,this),null===(t=this._socketAdapter)||void 0===t||t.on("message",this._onMessage,this),null===(s=this._socketAdapter)||void 0===s||s.on("close",this._onClose,this),null===(n=this._socketAdapter)||void 0===n||n.on("error",this._onError,this),null===(o=this._socketAdapter)||void 0===o||o.on("sendFail",this._onSendFail,this)}_removeEventListeners(){var e,t,s,n,o;null===(e=this._socketAdapter)||void 0===e||e.off("connect",this._onConnect,this),null===(t=this._socketAdapter)||void 0===t||t.off("message",this._onMessage,this),null===(s=this._socketAdapter)||void 0===s||s.off("close",this._onClose,this),null===(n=this._socketAdapter)||void 0===n||n.off("error",this._onError,this),null===(o=this._socketAdapter)||void 0===o||o.off("sendFail",this._onSendFail,this)}_onClose(e){const{socketId:t,event:s}=e||{},n=0!==this._connectionEstablishedTime?Date.now()-this._connectionEstablishedTime:0,o=`${ft} onClose closeSocketID: ${t} currentSocketID: ${this._connectionId} connectionDuration: ${n} code:${null==s?void 0:s.code} reason:${null==s?void 0:s.reason}`;this._ssoLog({method:"onClose",message:o}),console.warn(o),t===this._connectionId&&this._handleConnectStateChange({state:yt,reason:bt}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(e){const{socketId:t,error:s}=e||{},n=`${ft} onError sourceSocketID: ${t} currentSocketID:${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(s)}`;this._ssoLog({method:"onError",message:n}),console.warn(n),t===this._connectionId&&this._handleConnectStateChange({state:yt,reason:Rt}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(e){const{socketId:t,error:s}=e||{},n=`${ft} onSendFail sendFailSocketId: ${t} currentSocketID:${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${s}`;this._ssoLog({method:"onSendFail",message:n}),console.warn(n),t===this._connectionId&&this._handleConnectStateChange({state:yt,reason:At}),this._isReconnecting&&(this._isReconnecting=!1)}_onMessage(e){let t,s;this._updateHeartbeatTime();try{t=this._isBinarySupported?this._isCompressedData(e.data)?(e=>{const t=new Uint8Array(e).slice(4);let s;try{s=Ut.inflate(t,{to:"string"})}catch(e){console.error("inflate error",e)}return s})(e.data):function(e){const t=new Uint8Array(e);let s="",n=0;const{length:o}=t;for(;n<o;){let e=t[n],i=0,r=0;if(e<=127?(i=0,r=255&e):e<=223?(i=1,r=31&e):e<=239?(i=2,r=15&e):e<=244&&(i=3,r=7&e),o-n-i>0)for(let s=0;s<i;s+=1)e=t[n+s+1],r=r<<6|63&e;else r=65533,i=o-n;s+=String.fromCodePoint(r),n+=i+1}return s}(e.data):e.data,s=JSON.parse(t)}catch(t){const s=e.data;return this._ssoLog({method:"jsonParseError",message:s}),void console.error(t)}if(!s||!s.head)return;const{seq:n,servcmd:o}=s.head,i=`${n}${o}`;this._pendingRequests.has(i)?this._handleRequestResponse(s):this._handlePushMessage(s)}_handleRequestResponse(e){const{seq:t,servcmd:s}=e.head,{int32_error_code:n,str_error_message:o,ErrorCode:r=n,ErrorInfo:a=o}=(null==e?void 0:e.body)||{},c=`${t}${s}`,{resolve:l,reject:u,timestamp:d,headSeq:h}=this._pendingRequests.get(c);if(this._pendingRequests.delete(c),r&&0!==r)return i.emitInnerEvent("error",{errorCode:r,errorInfo:a}),void u({errorCode:r,errorInfo:a});l(e.body)}_handlePushMessage(e){const{servcmd:t}=e.head,{NeedAck:s,SessionData:n}=e.body;1===s&&this._sendAck(n),i.emitInnerEvent(t,e)}_checkPendingRequestsAndResend(){var e;console.log(`${ft}._checkPendingRequestsAndResend reConnectFlag:${this._isReconnecting} promiseMap.size:${this._pendingRequests.size}`),null===(e=this._pendingRequests)||void 0===e||e.forEach(((e,t)=>{var s;const{uplinkData:n,canResend:o,resolve:i,reject:r,timeout:a}=e;if(o){this._pendingRequests.set(t,{resolve:i,reject:r,timestamp:Date.now(),uplinkData:n,timeout:a,canResend:o});const e=this._isBinarySupported?ze(n).buffer:n;null===(s=this._socketAdapter)||void 0===s||s.send(e)}else this._pendingRequests.delete(t)}))}_onConnect(e){const{socketId:t,event:s={}}=e||{};this._connectionId=t,this._connectionEstablishedTime=Date.now();const n=Date.now()-this._connectionStartTime,o=`${ft} onConnect cost:${n} ms. socketID:${t} res:${JSON.stringify(s)}`;if(this._ssoLog({method:"onConnect",message:o}),console.log(o),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const e=`${ft} reconnect success`;this._ssoLog({method:"reconnectSuccess",message:e}),console.log(e),i.emitInnerEvent(lt.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:Et})}_sendAck(e){const t=Xe({servcmd:"openim.ws_msg_push_ack",data:{SessionData:e}});this.sendPacket(t)}_executeScheduledTaskIfReady(){return a(this,void 0,void 0,(function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()}))}_canSendHeartbeat(){var e;return(null===(e=this._socketAdapter)||void 0===e?void 0:e.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return a(this,void 0,void 0,(function*(){var e;const t=Xe({servcmd:"heartbeat.alive",data:{}});try{const e=`${t.head.seq}${t.head.servcmd}`;yield this.sendPacket(t,{requestId:e,timeout:3e3})}catch(t){const s=null===(e=De.get("netWorkMonitor"))||void 0===e?void 0:e.isNetWorkOnline,n=`${ft} sendHeartbeat failed. isNetWorkOnline:${s} error: ${t}`;this._ssoLog({method:"sendHeartbeatError",message:n}),console.debug(n),this._handleConnectStateChange({state:yt,reason:At})}}))}_sendHeartbeatIfReady(){return a(this,void 0,void 0,(function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)}))}_updateHeartbeatTime(){this._nextHeartbeatAt=R?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(e){const t=`${ft} networkStatusChange ${JSON.stringify(e)}`;this._ssoLog({method:"networkStatusChange",message:t}),console.warn(t);const{isNetworkOnline:s,networkType:n}=e;s&&"none"!==n?this._handleConnectStateChange({state:Et,reason:Ot}):this._handleConnectStateChange({state:yt,reason:Ot})}isPrivateNetWork(){const e=De.get("instance")||{};return e.proxyServer&&!e.fileDownloadProxy}_handleConnectStateChange(e){const{state:t,reason:s}=e;if(this._currentConnectState!==t){const e=`${ft}._handleConnectStateChange from ${this._currentConnectState} to ${t} reason: ${s}`;this._ssoLog({method:"handleConnectStateChange",message:e}),console.log(e),this._currentConnectState=t,i.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:t}}),t===yt&&i.emitInnerEvent(lt.SOCKET_DISCONNECTED),t!==yt&&t!==Et||(this._resetReconnectDelay(),Ye.addTask({id:St,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this}))}}_handleActivityStatusChange(e){var t,s;const n=null===(s=null===(t=this._socketAdapter)||void 0===t?void 0:t._ws)||void 0===s?void 0:s.readyState,o=`${ft} activityStatusChange ${JSON.stringify(e)} readyState: ${n}`;this._ssoLog({method:"activityStatusChange",message:o}),console.warn(o),3===n&&this._handleConnectStateChange({state:yt,reason:Tt})}_resetReconnectDelay(){var e;Ye.removeTask(St);const t=null===(e=De.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Mt:1e3}_scheduleReconnectWithBackoff(){var e;const t=null===(e=De.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Math.min(5e3,Math.max(Mt,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const s=(new Date).toTimeString().slice(0,8),n=`${ft}.scheduleReconnectWithBackoff timeStr: ${s} intendedDelay: ${this._intendedDelay}`;this._ssoLog({method:"scheduleReconnectWithBackoff",message:n}),console.log(n),this.reconnect(),Ye.updateTaskInterval(St,this._intendedDelay)}_ssoLog(e){const{method:t,message:s}=e;mt.createSSOLogData({method:t}).setLogInfo({message:s}).end()}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(e){a(this,void 0,void 0,(function*(){const t=e.split("/")[2];if(!t.startsWith("ws"))return;const s=`https://${t}/v3/netcheck/getconninfo?${e.slice(e.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield de({method:"GET",url:s,data:{}})}catch(e){console.warn("diagnoseBySSO failed. error:",e)}}))}(this._url),function(e){a(this,void 0,void 0,(function*(){const t=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${e.slice(e.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield de({method:"GET",url:t,data:{}})}catch(e){console.warn("diagnoseByCDN failed. error:",e)}}))}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[e,t]of this._pendingRequests.entries()){const{reject:s,timestamp:n,timeout:o}=t;Date.now()-n>=o&&(this._pendingRequests.delete(e),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),s({errorCode:ce,errorInfo:"NETWORK_TIMEOUT",data:{requestId:e}}))}}_updateIsBinarySupported(){var e;if(null===(e=De.get("instance"))||void 0===e?void 0:e.devMode)return void(this._isBinarySupported=!1);const t=re();(A||C&&"windows"===t||R)&&(this._isBinarySupported=!1)}_isCompressedData(e){const t=new Uint8Array(e);return 67===t[0]&&79===t[1]&&77===t[2]&&80===t[3]}};const kt={init:function(e){De.set("instance",e),Gt.init()},destroy:function(){Gt.dispose(),De.clear(),Ye.dispose()},notificationCenter:i,channel:Gt,store:De,ssoLog:mt,utils:_e,common:ot,constants:E};var Ft;!function(e){e.SDK_READY="sdkStateReady",e.SDK_NOT_READY="sdkStateNotReady",e.SDK_DESTROY="sdkDestroy",e.MESSAGE_RECEIVED="onMessageReceived",e.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",e.MESSAGE_MODIFIED="onMessageModified",e.MESSAGE_REVOKED="onMessageRevoked",e.MESSAGE_READ_BY_PEER="onMessageReadByPeer",e.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",e.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",e.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",e.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",e.CONVERSATION_LIST_UPDATED="onConversationListUpdated",e.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",e.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",e.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",e.GROUP_LIST_UPDATED="onGroupListUpdated",e.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",e.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",e.TOPIC_CREATED="onTopicCreated",e.TOPIC_DELETED="onTopicDeleted",e.TOPIC_UPDATED="onTopicUpdated",e.PROFILE_UPDATED="onProfileUpdated",e.USER_STATUS_UPDATED="onUserStatusUpdated",e.BLACKLIST_UPDATED="blacklistUpdated",e.FRIEND_LIST_UPDATED="onFriendListUpdated",e.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",e.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",e.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",e.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",e.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",e.KICKED_OUT="kickedOut",e.ERROR="error",e.NET_STATE_CHANGE="netStateChange",e.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated"}(Ft||(Ft={}));var $t,qt=Ft;!function(e){e.LOGOUT="logout",e.DESTROY="destroy",e.CLOUD_CONFIG_UPDATE="cloud_config_update",e.PROFILE_UPDATE="profile_updated",e.ERROR="error",e.RECONNECTED="reconnected",e.FORCE_OFFLINE="im_open_status.stat_forceoffline",e.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",e.OVERLOAD_PUSH="OverLoadPush.notify2",e.NEW_MESSAGE="new_message",e.MESSAGE_PUSH="im_open_push.msg_push",e.MESSAGE_DELETED="message_deleted",e.MESSAGE_REVOKED="message_revoked",e.MESSAGE_MODIFIED="message_modified",e.SOCKET_DISCONNECTED="socket_disconnected",e.CONVERSATION_UPDATED="conversation_updated"}($t||($t={}));var xt,Vt=$t;!function(e){e.NEW_INVITATION_RECEIVED="newInvitationReceived",e.INVITEE_ACCEPTED="ts_invitee_accepted",e.INVITEE_REJECTED="ts_invitee_rejected",e.INVITATION_CANCELLED="ts_invitation_cancelled",e.INVITATION_TIMEOUT="ts_invitation_timeout",e.INVITATION_MODIFIED="ts_invitation_modified"}(xt||(xt={}));var Bt=xt;const jt=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),Wt={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem"};var Kt;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(Kt||(Kt={}));const Ht={modify:Vt.MESSAGE_MODIFIED,delete:Vt.MESSAGE_DELETED,revoke:Vt.MESSAGE_REVOKED},Yt=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Wt),{MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest"}),{RECEIVE_WITH_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_MSG_EXCEPT_AT:"NotReceiveMsgExceptAt",MSG_AT_ALL:"__kImSDK_MesssageAtALL__"}),{MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard"}),{MessageStatus:Kt}),zt={GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3,USER_NOT_FOUND:"@TLS#NOT_FOUND"},Jt=Object.assign({},zt),Zt=Object.assign(Object.assign(Object.assign(Object.assign({},{CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"}),{CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3}),{CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8}),{READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage"}),Xt=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},{SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay"}),{ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny"}),{SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both"}),{SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both"}),{SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd"}),{SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single"}),{FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut"}),Qt={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},es=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},{GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"}),{GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom"}),{GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11}),{JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval"}),{INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess"}),{GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers"}),{GROUP_ID_PREFIX:Qt}),ts=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},jt),Yt),Jt),Zt),Xt),es),{IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"}),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected"}),ss={NO_SDKAPPID:2e3,NO_TINYID:2022,NO_A2KEY:2023,USER_NOT_LOGGED_IN:2024,REPEAT_LOGIN:2025,MSG_SEND_FAIL:2100,MSG_INSTANCE_REQUIRED:2105,MSG_INVALID_CONV_TYPE:2106,MSG_REVOKE_FAIL:2110,MSG_DELETE_FAIL:2111,MSG_UNREAD_ALL_FAIL:2112,READ_RECEIPT_MSG_LIST_EMPTY:2114,CANNOT_DELETE_GRP_SYSTEM_NOTICE:2116,NOT_MY_FRIEND:2700,NETWORK_ERROR:2800,NETWORK_TIMEOUT:2801,NO_NETWORK:2805,UNCAUGHT_ERROR:2903,SDK_IS_NOT_READY:2999,LOGGING_IN:3e3,LOGIN_FAILED:3001,KICKED_OUT_MULT_DEVICE:3002,KICKED_OUT_MULT_ACCOUNT:3003,KICKED_OUT_USERSIG_EXPIRED:3004,LOGGED_OUT:3005,KICKED_OUT_REST_API:3006,NO_USE:3122,OPTIONS_IS_EMPTY:3153,MSG_A2KEY_EXPIRED:20002,ACCOUNT_A2KEY_EXPIRED:70001,HELLO_ANSWER_KICKED_OUT:1002,OPEN_SERVICE_OVERLOAD_ERROR:60022},ns={SYNC_SERVER_INFO_AFTER_RE_ONLINE:"sync-server-info-after-re-online",SYNC_SERVER_INFO_AFTER_LOGIN:"sync-server-info-after-login",RECEIVE_C2C_NEW_MESSAGE:"receive-c2c-new-message",RECEIVE_GROUP_NEW_MESSAGE:"receive-group-new-message"},os={USER_STATUS_UPDATE:"user-status-update",CONVERSATION_RECOVER:"conversation-recover",HISTORY_MESSAGE_RECOVER:"history-message-recover",BLACKLIST_RECOVER:"blacklist-recover",FRIEND_RECOVER:"friend-recover",GROUP_ATTRIBUTE_CACHE_CLEAR:"group-attribute-cache-clear",UNREAD_MESSAGE_RECOVER:"unread-message-recover",HANDLE_NEW_MESSAGE:"handle-new-message",HANDLE_CONVERSATION_PROFILE_UPDATED:"handle-conversation-profile-updated",COMMERCIAL_CONFIG_UPDATE:"commercial-config-update",UNREAD_MESSAGE_SYNC:"unread-message-sync",FRIEND_AND_BLACKLIST_SYNC:"friend-and-blacklist-sync",SIGNALING_MESSAGE_RECOVER:"signaling-message-recover",GROUP_LIST_SYNC:"group-list-sync",CONVERSATION_LIST_SYNC:"conversation-list-sync",USER_PROFILE_SYNC:"user-profile-sync",CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED:"conversation-update-after-unread-sync-finished",CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED:"conversation-update-after-group-list-sync-finished",HANDLE_C2C_NEW_MESSAGE:"handle-c2c-new-message",HANDLE_GROUP_NEW_MESSAGE:"handle-group-new-message",CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE:"create-or-update-conversation-by-receive-new-message",HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD:"handle-group-tips-from-sync-unread",HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD:"handle-c2c-revoked-message-from-sync-unread",GROUP_REVOKED_NOTICE_RECOVER:"group-revoked-notice-recover",CLOUD_CONFIG_SYNC:"cloud-config-sync",UPDATE_GROUP_NEXT_SEQUENCE:"update-group-next-sequence",EMIT_C2C_MESSAGE_EVENT:"emit-c2c-message-event",EMIT_GROUP_MESSAGE_EVENT:"emit-group-message-event"},is={[ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:os.USER_STATUS_UPDATE},{stepId:os.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:os.UNREAD_MESSAGE_SYNC},{stepId:os.CONVERSATION_RECOVER},{stepId:os.HISTORY_MESSAGE_RECOVER,dependency:os.CONVERSATION_RECOVER},{stepId:os.BLACKLIST_RECOVER},{stepId:os.FRIEND_RECOVER},{stepId:os.GROUP_REVOKED_NOTICE_RECOVER},{stepId:os.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:os.UNREAD_MESSAGE_SYNC},{stepId:os.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:os.UNREAD_MESSAGE_SYNC},{stepId:os.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[os.UNREAD_MESSAGE_SYNC,os.CONVERSATION_RECOVER]},{stepId:os.EMIT_C2C_MESSAGE_EVENT,dependency:[os.UNREAD_MESSAGE_SYNC,os.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1}],[ns.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:os.COMMERCIAL_CONFIG_UPDATE},{stepId:os.CLOUD_CONFIG_SYNC},{stepId:os.USER_PROFILE_SYNC},{stepId:os.UNREAD_MESSAGE_SYNC},{stepId:os.FRIEND_AND_BLACKLIST_SYNC},{stepId:os.GROUP_LIST_SYNC},{stepId:os.CONVERSATION_LIST_SYNC},{stepId:os.SIGNALING_MESSAGE_RECOVER,dependency:os.UNREAD_MESSAGE_SYNC},{stepId:os.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[os.UNREAD_MESSAGE_SYNC,os.CONVERSATION_LIST_SYNC]},{stepId:os.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[os.GROUP_LIST_SYNC,os.CONVERSATION_LIST_SYNC]}],[ns.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:os.HANDLE_C2C_NEW_MESSAGE},{stepId:os.UNREAD_MESSAGE_SYNC},{stepId:os.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:os.HANDLE_C2C_NEW_MESSAGE},{stepId:os.EMIT_C2C_MESSAGE_EVENT,dependency:[os.HANDLE_C2C_NEW_MESSAGE,os.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:os.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[os.UNREAD_MESSAGE_SYNC]}],[ns.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:os.HANDLE_GROUP_NEW_MESSAGE},{stepId:os.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:os.HANDLE_GROUP_NEW_MESSAGE},{stepId:os.UPDATE_GROUP_NEXT_SEQUENCE,dependency:os.HANDLE_GROUP_NEW_MESSAGE},{stepId:os.EMIT_GROUP_MESSAGE_EVENT,dependency:[os.HANDLE_GROUP_NEW_MESSAGE,os.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}]};var rs=Object.freeze({__proto__:null,ERROR_CODE:ss,InnerEvent:Vt,OuterConstant:ts,OuterEvent:qt,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SignalingEvent:Bt,WORKFLOW_DEFINITIONS:is,WORKFLOW_NAME:ns,WORKFLOW_STEP:os});function as(e){var t;try{const s=De.getStorage("errorMessage");if(!e||!s)return"";const n=(null===(t=JSON.parse(s))||void 0===t?void 0:t.errorMessage)||{},{isIntl:o=!1,code:i,replacement1:r="",replacement2:a=""}=e;if(!i)return"";const c=o?`${i}_en`:`${i}_cn`;let l=n[n[c]?c:i]||"";return l&&(r&&(l=l.replace("$replacement1",r)),a&&(l=l.replace("$replacement2",a))),l}catch(e){return console.warn("Error parsing stored error messages:",e),""}}class cs extends Error{constructor(e){const{functionName:t="Unknown",code:s,message:n="",data:o=""}=e;let i=n;s&&!n&&(i=as(e));const r=s?`${t} failed. error: {"message": ${i}, "code": ${s}}`:`${t} failed. error: {"message": ${i}}`;super(),this.code=s,this.errorCode=s,this.errorMessage=r,this.message=r,this.data=o}}function ls(e,t){var s;if(!e)return;if(!(!0===(null===(s=kt.store.get("login"))||void 0===s?void 0:s.isLoggedIn)))throw new cs({code:ss.USER_NOT_LOGGED_IN,functionName:t})}const us=e=>"function"==typeof e;function ds(e,t,s){const n=s||[];if(!e||!t)return!1;const o=Object.keys(e).filter((e=>!n.includes(e))),i=Object.keys(t).filter((e=>!n.includes(e)));return o.length===i.length&&o.every((n=>!!t.hasOwnProperty(n)&&("object"==typeof e[n]&&null!==e[n]?ds(e[n],t[n],s):e[n]===t[n])))}function hs(e,t,s){if(Array.isArray(e))for(let n=0;n<e.length;n++)gs.call(this,Object.assign(Object.assign({},e[n]),{value:t[n],name:s}));else for(const n in e)gs.call(this,Object.assign(Object.assign({},e[n]),{value:t[0][n],name:s,key:n}))}function gs({required:e,rules:t,range:s,value:n,allowEmpty:o,name:i,key:r,customValidator:a}){if(void 0===n){if(e){throw new cs({functionName:i,message:`[${i}] Missing required params: "${r}"`})}return}let c="";if(!t.some((e=>{return e===(t=n,Object.prototype.toString.call(t).match(/^\[object (.*)\]$/)[1].toLowerCase());var t}))){for(let e=0;e<t.length;e++){let s=t[e];s=s.replace(s[0],s[0].toUpperCase()),c+=`${s}/`}c=c.substring(0,c.length-1);const e=`[${r}] must be type of ${c}, received type: ${function(e){return Reflect.apply(Object.prototype.toString,e,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}(n)}.`;throw new cs({functionName:i,message:e})}if(!1===o){if(Array.isArray(n)&&(0===n.length||"string"==typeof n[0]&&""===n[0].trim())){throw new cs({functionName:i,message:`${r} can not be empty.`})}if("string"==typeof n&&""===n.trim()){throw new cs({functionName:i,message:`${r} can not be empty.`})}}if(a&&"function"==typeof a){const e=a(n);if(!0!==e){throw new cs({functionName:i,message:`[${r}] custom validation failed: ${e||"Invalid value"}`})}}}const ps=[],_s={},ms={};function vs(e,t){ls(_s[e],e),hs(ms[e],t,e),function(e){ps.forEach((t=>{const{interceptor:s,context:n}=t;s.apply(n,[e])}))}(e)}function fs(e,t){ps.push({interceptor:e,context:t})}function Is(e){const{params:t,auth:s}=e;t&&"object"==typeof t&&Object.assign(ms,t),s&&"object"==typeof s&&Object.assign(_s,s)}var Ss=new class{constructor(){this._builtInPlugins=new WeakSet,this._externalPlugins=new WeakSet}installBuiltInPlugin(e){e&&this._installPlugin(e,this._builtInPlugins)}installExternalPlugin(e,t){e&&this._installPlugin(e,this._externalPlugins,t)}clear(){this._builtInPlugins=new WeakSet,this._externalPlugins=new WeakSet}_installPlugin(e,t,s){let n=[];n=Array.isArray(e)?e:[e],n.forEach((e=>{t.has(e)||(e&&us(e.install)?(t.add(e),e.install(dl(),s),us(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):us(e)?(t.add(e),e(dl(),s),us(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))}))}_isLoggedIn(){var e;return!0===(null===(e=kt.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}};function Es(e){return kt.store.get("commercialConfig").get(e)}const Cs=new Map;var ys=new class{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(e,t)=>{const s=Date.now();t?(this._stepStartTimes.set(`${e}-${t}`,s),console.log(`[Workflow ${e}] Step ${t} started at ${new Date(s).toISOString()}`)):(this._workflowStartTimes.set(e,s),console.log(`[Workflow ${e}] started at ${new Date(s).toISOString()}`))},success:(e,t)=>{const s=Date.now();if(t){const n=this._stepStartTimes.get(`${e}-${t}`),o=n?s-n:0;this._stepStartTimes.delete(`${e}-${t}`),console.log(`[Workflow ${e}] Step ${t} completed successfully at ${new Date(s).toISOString()} (${o}ms)`)}else{const t=this._workflowStartTimes.get(e),n=t?s-t:0;this._workflowStartTimes.delete(e),console.log(`[Workflow ${e}] completed successfully at ${new Date(s).toISOString()} (${n}ms)`)}},error:(e,t,s)=>{const n=Date.now();if(t){const o=this._stepStartTimes.get(`${e}-${t}`),i=o?n-o:0;this._stepStartTimes.delete(`${e}-${t}`),console.error(`[Workflow ${e}] Step ${t} failed at ${new Date(n).toISOString()} (${i}ms)`,s)}else{const t=this._workflowStartTimes.get(e),o=t?n-t:0;this._workflowStartTimes.delete(e),console.error(`[Workflow ${e}] failed at ${new Date(n).toISOString()} (${o}ms)`,s)}}}}init(){this._initializeWorkflows()}registerWorkflowStep(e,t,s,n){if(!this._handlers.has(e))return void console.debug(`Workflow '${e}' not defined in core`);if(!is[e].find((e=>e.stepId===t)))return void console.debug(`Step '${t}' not defined in workflow '${e}'`);this._handlers.get(e).set(t,n?s.bind(n):s)}executeWorkflow(e,t){return a(this,void 0,void 0,(function*(){if(!this._validateWorkflow(e))return;console.log(`[Workflow ${e}] Started execution at ${(new Date).toISOString()}`);const s=is[e],n={},o={cancelled:!1};this._activeWorkflows.set(e,{cancelToken:o});try{const i=new Map;s.forEach((e=>{i.set(e.stepId,e)}));const r={workflowName:e,pendingSteps:new Set(s.map((e=>e.stepId))),completedSteps:new Set,runningSteps:new Set,stepMap:i,stepResults:n,data:t,cancelToken:o};yield new Promise(((t,s)=>{const n=()=>{if(o.cancelled)return void t();this._getExecutableSteps({pendingSteps:r.pendingSteps,completedSteps:r.completedSteps,stepMap:r.stepMap,workflowName:e}).filter((e=>!r.runningSteps.has(e))).forEach((o=>{r.completedSteps.has(o)||r.runningSteps.has(o)||this._executeWorkflowStep(o,r,{onComplete:()=>{if(0===r.pendingSteps.size)return void t();0===this._getExecutableSteps({pendingSteps:r.pendingSteps,completedSteps:r.completedSteps,stepMap:r.stepMap,workflowName:e}).filter((e=>!r.runningSteps.has(e))).length&&0===r.runningSteps.size&&(console.log(`Workflow ${e} completed with some steps skipped due to dependency failures`),t())},onError:s,onStepComplete:n})}))};n()})),console.log(`[Workflow ${e}] Completed execution at ${(new Date).toISOString()}`)}catch(t){console.error(`[Workflow ${e}] Failed execution at ${(new Date).toISOString()}`,t)}finally{this._activeWorkflows.delete(e)}}))}_executeWorkflowStep(e,t,s){return a(this,void 0,void 0,(function*(){const{workflowName:n,runningSteps:o,stepMap:i,stepResults:r,data:a}=t;o.add(e),this._logWorkflowExecution(n,e,"start");try{const s=i.get(e);let o=null;(null==s?void 0:s.dependency)&&(l(s.dependency)?o=r[s.dependency]:Array.isArray(s.dependency)&&(o={},s.dependency.forEach((e=>{o[e]=r[e]}))));const c=this._handlers.get(n).get(e);if(c){const t=yield Promise.resolve(c({data:a,result:o}));r[e]=t,this._logWorkflowExecution(n,e,"success")}t.completedSteps.add(e)}catch(t){const o=`[Workflow].${n}.${e}`,{errorCode:i,errorInfo:r=`${o} failed`}=t||{},a=new cs({functionName:o,code:i,message:r});kt.ssoLog.createSSOLogData({method:"Workflow"}).setLogInfo({message:`workflowName: ${n}, stepId: ${e}`}).setError(a).end(),this._logWorkflowExecution(n,e,"error",t),s.onError(t)}finally{o.delete(e),t.pendingSteps.delete(e),s.onStepComplete(),s.onComplete()}}))}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(is).forEach((e=>{this._handlers.set(e,new Map)}))}_cancelWorkFlow(e){const t=this._activeWorkflows.get(e);if(!t)return;const{cancelToken:s}=t;s.cancelled=!0,this._activeWorkflows.delete(e)}_cancelAllWorkflows(){Object.keys(is).forEach((e=>{this._cancelWorkFlow(e)}))}_validateWorkflow(e){if(!is[e])return console.debug(`Workflow '${e}' not defined`),!1;return!!this._handlers.get(e)||(console.debug(`No handlers registered for workflow '${e}'`),!1)}_getExecutableSteps(e){const{pendingSteps:t,completedSteps:s,stepMap:n,workflowName:o}=e;return Array.from(t).filter((e=>{const t=n.get(e)||{},{dependency:i,skipIfDependencyMissing:r=!0}=t;if(!i)return!0;if(l(i))return this._isStepRegistered({workflowName:o,stepId:i})?s.has(i):!r;if(d(i)){if(i.filter((e=>!this._isStepRegistered({workflowName:o,stepId:e}))).length>0&&r)return!1;for(const e of i)if(!s.has(e))return!1;return!0}return!1}))}_isStepRegistered(e){var t;const{workflowName:s,stepId:n}=e;return null===(t=this._handlers.get(s))||void 0===t?void 0:t.has(n)}_logWorkflowExecution(e,t,s,n){this._logHandlers[s](e,t)}};function Ms(){var e;return null===(e=kt.store.get("login"))||void 0===e?void 0:e.userId}const Os=e=>d(e)||h(e),Ts=(e,t,s,n)=>{if(!Os(e)||!Os(t))return 0;let o=0;const i=Object.keys(t);let r;for(let a=0,l=i.length;a<l;a++)if(r=i[a],!(c(t[r])||s&&s.includes(r)))if(Os(e[r])&&Os(t[r]))o+=Ts(e[r],t[r],s,n);else{if(n&&n.includes(t[r]))continue;e[r]!==t[r]&&(e[r]=t[r],o+=1)}return o},As=e=>`${e}`.startsWith(Qt.COMMUNITY)&&`${e}`.includes(Qt.TOPIC),Ds=(e,t)=>{if(c(t))return"";switch(e){case ts.MSG_TEXT:return t.text||"";case ts.MSG_IMAGE:return"[Image]";case ts.MSG_LOCATION:return"[Location]";case ts.MSG_AUDIO:return"[Voice]";case ts.MSG_VIDEO:return"[Video]";case ts.MSG_FILE:return"[File]";case ts.MSG_CUSTOM:return"[Custom Messages]";case ts.MSG_GRP_TIP:return"[Group Notification]";case ts.MSG_GRP_SYS_NOTICE:return"[Group System Message]";case ts.MSG_FACE:return"[Animated Sticker]";case ts.MSG_MERGER:return"[Chat Record]";default:return""}},Rs=[{cmd:"ws_get_user_status",interval:5,count:20},{cmd:"ws_status_subscribe",interval:5,count:20},{cmd:"ws_status_unsubscribe",interval:5,count:20},{cmd:"get_group_self_member_info",interval:5,count:20},{cmd:"modify_group_base_info",interval:1,count:8},{cmd:"get_members",interval:3,count:1},{cmd:"get_pendency",interval:1,count:15},{cmd:"set_group_attr",interval:5,count:10},{cmd:"modify_group_attr",interval:5,count:10},{cmd:"delete_group_attr",interval:5,count:10},{cmd:"clear_group_attr",interval:5,count:10},{cmd:"get_group_attr",interval:5,count:20},{cmd:"update_group_counter",interval:5,count:20},{cmd:"get_group_counter",interval:5,count:20},{cmd:"get_topic",interval:1,count:10},{cmd:"read_all_unread_msg",interval:1,count:1},{cmd:"query",interval:5,count:20}],bs="im_sdk_config_mgr.fetch_config",Ns="im_sdk_config_mgr.push_configv2",Ls="cloud-config",ws=2996;var Ps=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(e){this._core=e;const{notificationCenter:t,InnerEvent:s,helper:n,constants:{WORKFLOW_NAME:o,WORKFLOW_STEP:i},channel:r}=e;t.subscribeInnerEvent(Ns,this._handlePushedConfig,this),n.registerWorkflowStep(o.SYNC_SERVER_INFO_AFTER_LOGIN,i.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),t.subscribeInnerEvent(s.LOGOUT,this._reset,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this),n.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(Rs),r.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(e){var t;const s={code:0,data:""};return e?(s.data=(null===(t=this._core.store.get("cloudConfig"))||void 0===t?void 0:t[e])||"",s):s}checkMethodCallOverLimit(e){if(!this._cmdFrequencyLimitMap.has(e))return;if(!this._methodCallFrequencyMap.has(e))return void this._methodCallFrequencyMap.set(e,{startTime:Date.now(),methodCallCounter:1});const{count:t,interval:s}=this._cmdFrequencyLimitMap.get(e);let{startTime:n,methodCallCounter:o}=this._methodCallFrequencyMap.get(e);if(Date.now()-n>1e3*s)this._methodCallFrequencyMap.set(e,{startTime:Date.now(),methodCallCounter:1});else if(o+=1,this._methodCallFrequencyMap.set(e,{startTime:n,methodCallCounter:o}),o>t)throw new this._core.helper.ChatError({code:ws,replacement1:e})}_fetchCloudConfig(){return a(this,void 0,void 0,(function*(){try{const{sdkAppId:e}=this._core.store.get("instance")||{},t=this._core.helper.generateProtocolData({servcmd:bs,data:{uint32_sdkappid:e,uint64_version:this._version}}),s=`${t.head.seq}${bs}`;return yield this._core.channel.sendPacket(t,{requestId:s})}catch(e){throw console.warn("fetch cloudControl fail: ",e),e}}))}_handlePushedConfig(e){this._updateCloudConfig(e)}_handleLoginSuccess(){return a(this,void 0,void 0,(function*(){try{if(this._canFetch()){const e=yield this._fetchCloudConfig();this._updateCloudConfig(e)}this._core.helper.taskScheduler.addTask({id:Ls,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(e){console.warn(e)}}))}_fetchCloudConfigIfReady(){return a(this,void 0,void 0,(function*(){if(this._canFetch())try{const e=yield this._fetchCloudConfig();this._updateCloudConfig(e)}catch(e){console.warn(e)}}))}_updateCloudConfig(e){const t=this._parseCloudConfig(e);t&&(this._core.store.set("cloudConfig",t),this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,t))}_canFetch(){const{isLoggedIn:e}=this._core.store.get("login")||{};return e&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(e){const{int32_error_code:t,str_error_message:s,str_json_config:n,uint32_expired_time:o,uint32_sdkappid:i,uint64_version:r}=e;let a=null;if(0===t){if(this._version!==r)try{a=JSON.parse(n),this._version=r}catch(e){}this._expirationTime=Date.now()+1e3*o}else this._expirationTime=void 0===t?Date.now()+36e5:Date.now()+12e4;return a}_parseCmdFreqLimit(){var e;let t=null===(e=this.getServerConfig("cmd_frequency_limit"))||void 0===e?void 0:e.data;const{isEmpty:s}=this._core.utils;if(!s(t))try{t=JSON.parse(t),this._updateCmdFreqLimitMap(t)}catch(e){console.warn(e)}}_updateCmdFreqLimitMap(e){e.forEach((e=>{this._cmdFrequencyLimitMap.set(e.cmd,{interval:e.interval,count:e.count})}))}_reset(){this._core.helper.taskScheduler.removeTask(Ls),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Rs),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(Ns,this._handlePushedConfig,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),this._reset()}};class Us{constructor(e=0,t=0){this.high=e,this.low=t}equal(e){return null!==e&&(this.low===e.low&&this.high===e.high)}toString(){const e=Number(this.high).toString(16);let t=Number(this.low).toString(16);if(t.length<8){let e=8-t.length;for(;e;)t=`0${t}`,e--}return e+t}}const Gs={SEARCH_GRP_SNS:new Us(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new Us(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new Us(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new Us(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new Us(0,Math.pow(2,6)).toString(),USER_STATUS:new Us(0,Math.pow(2,7)).toString(),CONV_MARK:new Us(0,Math.pow(2,9)).toString(),CONV_GROUP:new Us(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new Us(0,Math.pow(2,11)).toString(),MSG_EXT:new Us(0,Math.pow(2,13)).toString(),GRP_COUNTER:new Us(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new Us(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new Us(Math.pow(2,7)).toString(),PLUGIN_CS:new Us(Math.pow(2,8)).toString(),PLUGIN_PUSH:new Us(Math.pow(2,9)).toString(),PLUGIN_BOT:new Us(Math.pow(2,10)).toString(),MSG_REACTION:new Us(Math.pow(2,16)).toString(),FOLLOW:new Us(Math.pow(2,20)).toString()},ks="CommercialConfig",Fs="commercial-config";var $s=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map}install(e){this._core=e;const{helper:t,notificationCenter:s,constants:{WORKFLOW_NAME:n,WORKFLOW_STEP:o,InnerEvent:i}}=e;s.subscribeInnerEvent(i.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),s.subscribeInnerEvent(i.LOGOUT,this._handleLogout,this),s.subscribeInnerEvent(i.DESTROY,this._dispose,this),t.registerWorkflowStep(n.SYNC_SERVER_INFO_AFTER_LOGIN,o.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),e.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this)}isCommercialAbilityEnabled(e){return a(this,void 0,void 0,(function*(){const t=parseInt(e,10).toString(2),{length:s}=t;let n,o=!0;for(let e=s-1,i=0;e>=0;e--,i++)if("1"===t.charAt(e)&&(n=i<32?new Us(0,2**i).toString():new Us(2**(i-32),0).toString(),!this._featureMap.get(n))){o=!1;break}return console.log(`${ks}.isFeatureEnabled decimalNumber:${e} key:${n} ret:${o}`),{code:0,data:{enabled:o}}}))}_fetchAndParseCommercialConfig(){return a(this,void 0,void 0,(function*(){var e;try{this._isFetching=!0;const t=this._core.helper.generateProtocolData({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:null===(e=this._core.store.get("instance"))||void 0===e?void 0:e.sdkAppId}}),s=yield this._core.channel.sendPacket(t);(null==s?void 0:s.body)&&(this._parseCommercialConfig(s.body),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(e){console.warn("fetch commercial fail: ",e)}finally{this._isFetching=!1}}))}_syncCommercialConfig(e){return a(this,void 0,void 0,(function*(){const{purchaseBits:t}=(null==e?void 0:e.data)||{};t&&(this._parsePurchaseBits(t),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:Fs,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})}))}_canFetch(){var e;const t=null===(e=this._core.store.get("login"))||void 0===e?void 0:e.isLoggedIn,s=Date.now()>=this._expirationTime;return t&&!this._isFetching&&s}_handlePushedConfig(e){(null==e?void 0:e.body)&&(this._parseCommercialConfig(e.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return a(this,void 0,void 0,(function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())}))}_parseCommercialConfig(e){if("object"!=typeof e)return;const{int32_error_code:t,str_error_message:s,str_purchase_bits:n,uint32_expired_time:o}=e;0===t?(this._parsePurchaseBits(n),this._expirationTime=Date.now()+1e3*o):void 0===t?(console.log(`${ks}._parseCommercialConfig failed. Invalid message format:`,e),this._expirationTime=Date.now()+36e5):(console.error(`${ks}._parseCommercialConfig errorCode:${t} errorMessage:${s}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(e){return e&&"string"==typeof e&&e.length>=1&&e.length<=64&&/[01]{1,64}/.test(e)}_parsePurchaseBits(e){if(this._isValidPurchaseBits(e)){this._featureMap.clear(),this._methodKeyMap.clear();let t=null;for(let s=e.length-1,n=0;s>=0;s--,n++)if(t=n<32?new Us(0,2**n).toString():new Us(2**(n-32),0).toString(),"1"===e[s]){this._featureMap.set(t,!0);const e=this._getKeyByValue(Gs,t);e&&this._methodKeyMap.set(e,!0)}else{this._featureMap.set(t,!1);const e=this._getKeyByValue(Gs,t);e&&this._methodKeyMap.set(e,!1)}}else console.warn(`${ks}.parsePurchaseBits invalid purchases:${e}`)}_getKeyByValue(e,t){const s=Object.entries(e).find((([e,s])=>s===t));return s?s[0]:void 0}_handleLogout(){this._reset()}_dispose(){this._reset(),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._core.helper.taskScheduler.removeTask(Fs),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear()}};var qs=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(e){this._core=e;const{notificationCenter:t,InnerEvent:s,channel:n}=this._core;t.subscribeInnerEvent(s.OVERLOAD_PUSH,this._handleOverLoadPush,this),t.subscribeInnerEvent(s.LOGOUT,this._reset,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this),n.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(e){if(!this._serverOverloadInfoMap.has(e))return;const{overloadStartTimestamp:t,delaySeconds:s}=this._serverOverloadInfoMap.get(e);if(Date.now()-t<=1e3*s)throw new this._core.helper.ChatError({functionName:e,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(e)}_handleOverLoadPush(e){const{OverLoadServCmd:t,DelaySecs:s}=e;this._serverOverloadInfoMap.set(t,{overloadStartTimestamp:Date.now(),delaySeconds:s})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.OVERLOAD_PUSH,this._handleOverLoadPush,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};var xs=new class{constructor(){this._core=null}install(e){return a(this,void 0,void 0,(function*(){if(this._core=e,this._canFetch()){const e=yield this._fetchErrorMessage();if(!e)return;const t=this._parseResponse(e);this._saveErrorMessage(t)}}))}_canFetch(){const e=this._core.store.getStorage("errorMessage");return!e||this._isExpired(e)}_saveErrorMessage(e){this._core.store.setStorage("errorMessage",{errorMessage:e,errorMessageSavedTime:(new Date).getTime()})}_fetchErrorMessage(){return a(this,void 0,void 0,(function*(){try{return yield this._core.helper.httpRequest({method:"GET",url:"https://web.sdk.qcloud.com/im/download/error-message/v3/0.0.6/tim-error-message.txt"})}catch(e){console.error(e)}}))}_isExpired(e){if(!e)return!0;const{errorMessageSavedTime:t}=e;return t&&(new Date).getTime()-t>=6048e5}_parseResponse(e){if("string"==typeof e){const t=e.split(";\n"),s={},n=new RegExp(/'/g);for(let e=0;e<t.length;e++){const o=t[e].indexOf(":"),i=t[e].slice(0,o);let r=t[e].slice(o+1);if(!i.startsWith("//")){if(""===r)continue;r=r.replace(n,""),s[i]=r}}return s}}};function Vs(e,t){return a(this,void 0,void 0,(function*(){const{cookie:s,syncFlag:n,syncTriggerEvent:o}=e,i="openim.getmsg",r=t.helper.generateProtocolData({servcmd:i,data:{Cookie:s,SyncFlag:n,IsOnlineSync:o,NeedAbstract:1,NeedSignaling:1,NeedCachedMsg:1}}),a=`${r.head.seq}${i}`;try{const e=yield t.channel.sendPacket(r,{requestId:a});if(!e)return null;const{C2CPairUnreadCount:s,C2CRemainingUnreadCount:n,EventArray:o}=e,{unreadMessageList:i,revokedMessageList:c}=function(e,t){const s=[],n=[];return null==e||e.forEach((e=>{var o,i,r;const a=function(e,t){const{From_Account:s,From_AccountHeadurl:n,From_AccountNick:o,IsNeedReadReceipt:i,MsgBody:r,MsgClientTime:a,MsgRandom:c,MsgSeq:l,MsgTimeStamp:u,SendMsgControl:d,SupportMessageExtension:h,To_Account:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,IsPeerRead:v,MsgFlagBits:f,MsgVersion:I,EventArray:S}=e;return{from:s,avatar:n,nick:o,needReadReceipt:1===i,readReceiptSentByPeer:v,clientTime:a,messageFlagBits:f,random:c,sequence:l,time:u,messageControlInfo:d,isSupportExtension:h,to:g,tinyID:p,checkResult:_,cloudCustomData:m,messageVersion:I,eventArray:S,elements:t.message.messageHelper.parseServerPushMessageElement(r)}}(e,t);if(null===(r=null===(i=null===(o=null==e?void 0:e.EventArray)||void 0===o?void 0:o[0])||void 0===i?void 0:i.hasOwnProperty)||void 0===r?void 0:r.call(i,"C2cNotifyMsgArray"))n.push(...function(e){var t;const s=[];return null===(t=e.EventArray)||void 0===t||t.forEach((e=>{var t,n;const{C2cNotifyMsgArray:o}=e,i=null===(n=null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.WithdrawC2cMsgNotify)||void 0===n?void 0:n.C2cWithdrawInfoArray;Array.isArray(i)&&s.push(...i)})),s}(e));else{const e=t.message.messageFactory.createMessage(Object.assign(Object.assign({},a),{conversationType:"C2C",flow:"in"})),{elements:n}=a;e.setElement(n),s.push(e)}})),{unreadMessageList:s,revokedMessageList:n}}(e.MsgList,t);return{syncFlag:null==e?void 0:e.SyncFlag,unreadMessageList:i,revokedMessageList:c,unreadCountList:s,overflowUnreadCountList:n,cookie:null==e?void 0:e.Cookie,groupTipList:o}}catch(e){console.warn(e)}}))}var Bs,js;!function(e){e[e.START_SYNC=0]="START_SYNC",e[e.SYNCING=1]="SYNCING",e[e.SYNC_COMPLETE=2]="SYNC_COMPLETE"}(Bs||(Bs={})),function(e){e[e.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",e[e.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(js||(js={}));var Ws=new class{constructor(){this._unreadDBMessageMap=new Map,this._cookie=""}install(e){this._core=e;const{constants:t}=e;e.helper.registerWorkflowStep(t.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,t.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),e.helper.registerWorkflowStep(t.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,t.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),e.helper.registerWorkflowStep(t.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,t.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(e){return a(this,void 0,void 0,(function*(){const{isAfterReOnline:t=!1,isAfterNewMessageReceived:s=!1,isAfterLogin:n=!1}=e||{};let o=Bs.START_SYNC;const i=[],r=[],a=[],c=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:o});){const e=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:o,syncTriggerEvent:s?js.NEW_MESSAGE_RECEIVED:js.LOGIN_SUCCESS});if(!e)break;const{unreadMessageList:n=[],revokedMessageList:l=[],overflowUnreadCountList:u,unreadCountList:d,groupTipList:h}=e;if(this._cookie=(null==e?void 0:e.cookie)||"",o=null==e?void 0:e.syncFlag,this._parseAndSaveUnreadMessageList(n),a.push(...l),this._updateConversationUnreadOptions({unreadCountList:d,overflowUnreadCountList:u,conversationUpdateFieldList:i}),Array.isArray(h)&&r.push(...h),t){const{messages:e}=this._handleNewMessageList(n);c.push(...e)}}return t?{conversationUpdateFieldList:i,revokedMessageList:a,unreadMessageMap:this._unreadDBMessageMap,groupTipList:r,messages:c}:{conversationUpdateFieldList:i,isInstantMessage:!n,isUnreadC2CMessage:!0,revokedMessageList:a,unreadMessageMap:this._unreadDBMessageMap,groupTipList:r}}))}_syncUnreadDBMessageAfterLogin(){return a(this,void 0,void 0,(function*(){return this._syncUnreadMessage({isAfterLogin:!0})}))}_syncUnreadDBMessageAfterNewMessageReceived(e){return a(this,void 0,void 0,(function*(){if(1===e.data.Flag)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})}))}_updateConversationUnreadOptions(e){const{unreadCountList:t,overflowUnreadCountList:s,conversationUpdateFieldList:n}=e,{constants:{OuterConstant:{CONV_C2C:o,CONV_SYSTEM:i}}}=this._core;null==t||t.forEach((e=>{const{From_Account:t,UnreadCount:s}=e;if(t!==i){const e=n.find((({conversationID:e})=>e===`${o}${t}`));e?e.unreadCount=s:n.push({conversationID:`${o}${t}`,unreadCount:s,type:o})}})),null==s||s.forEach((e=>{const{From_Account:t,LastMsgTime:s}=e;if(t!==i){n.find((({conversationID:e})=>e===`${o}${t}`))||n.push({conversationID:`${o}${t}`,type:o,lastMsgTime:s})}}))}_syncUnreadDBMessageAfterReOnline(){return a(this,void 0,void 0,(function*(){return this._syncUnreadMessage({isAfterReOnline:!0})}))}_updateMessageProfile(e){var t;const{messageDataHandler:s}=this._core.message||{},n=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,{from:o,nick:i,avatar:r,conversationID:a=""}=e;if(o!==n){const t=s.getLatestMsgSentByPeer(a);if(t){const{nick:n,avatar:o}=t;i&&r?i===n&&r===o||s.updateNickAndAvatarOfSentMessage({conversationID:a,latestNick:i,latestAvatar:r,isSentByMe:!1}):(e.nick=n,e.avatar=o)}}else{const e=s.getLatestMsgSentByMe(a);!e||i===e.nick&&r===e.avatar||s.updateNickAndAvatarOfSentMessage({conversationID:a,latestNick:i,latestAvatar:r,isSentByMe:!0})}}_handleNewMessageList(e){const{messageDataHandler:t}=this._core.message||{},s=new Map,n=[];return e.forEach((e=>{this._updateMessageProfile(e);let o=1===e.isModified;if(t.isMessageSentByCurrentInstance(e)?e.isModified=o:o=!1,e.isOnlineMessage())e._onlineOnlyFlag=!0,t.isMessageSentByCurrentInstance(e)||n.push(e);else if(!t.isInMessageList(e)){if(t.storeConversationMessage(e)){const{conversationID:t,conversationType:n,conversationSubType:o,flow:i,_isExcludedFromUnreadCount:r,_isExcludedFromLastMessage:a}=e,c=a?"":e;s.has(t)?(s.get(t).lastMessage=c,"in"===i&&(r||s.get(t).unreadCount++)):s.set(t,{conversationID:t,type:n,subType:o,unreadCount:r||"in"!==i?0:1,lastMessage:c})}t.isMessageSentByCurrentInstance(e)&&!o||n.push(e)}})),{messages:n,conversationOptions:s}}_fetchUnreadDBMessage(e){return a(this,void 0,void 0,(function*(){try{const t="unread-message-synchronizer._fetchUnreadDBMessage";console.log(`${t} options:`,e);const s=yield Vs(e,this._core);if(!s)return null;const{syncFlag:n,unreadMessageList:o,revokedMessageList:i,cookie:r,unreadCountList:a,overflowUnreadCountList:c,groupTipList:l}=s;return this._parseAndSaveUnreadMessageList(o),{syncFlag:n,cookie:r,unreadMessageList:o,revokedMessageList:i,unreadCountList:a,overflowUnreadCountList:c,groupTipList:l}}catch(e){console.log(e)}}))}_canContinueSync({cookie:e,syncFlag:t}){var s;return t===Bs.START_SYNC||t===Bs.SYNCING&&!(null===(s=this._core)||void 0===s?void 0:s.helper.isEmpty(e))}_parseAndSaveUnreadMessageList(e){e.forEach((e=>{const{ID:t}=e;this._unreadDBMessageMap.set(t,e)}))}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var e,t;null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}};var Ks=new class{init(e){var t;this._core=e,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),document.addEventListener("visibilitychange",this._visibilityChangeHandler),null===(t=this._core)||void 0===t||t.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var e,t;const s="visible"===document.visibilityState;null===(e=this._core)||void 0===e||e.store.set("activityMonitor",{isActive:s}),null===(t=this._core)||void 0===t||t.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:s})}_reset(){var e;null===(e=this._core)||void 0===e||e.store.clear("activityMonitor")}_dispose(){document.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),this._reset()}};var Hs=new class{init(e){var t;this._core=e,this._bindAppActivityEvent(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),null===(t=this._core)||void 0===t||t.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var e;const{MINI_APP_NAMESPACE:t}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};t.onAppShow((()=>{var e,t;null===(e=this._core)||void 0===e||e.store.set("activityMonitor",{isActive:!0}),null===(t=this._core)||void 0===t||t.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})})),t.onAppHide((()=>{var e,t;null===(e=this._core)||void 0===e||e.store.set("activityMonitor",{isActive:!1}),null===(t=this._core)||void 0===t||t.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var e;null===(e=this._core)||void 0===e||e.store.clear("activityMonitor")}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),this._reset()}};var Ys=new class{init(e){const{IN_WX_MINI_APP:t,IN_WX_MINI_PLUGIN:s}=e.helper;s||(t?Hs.init(e):Ks.init(e))}};const zs="none",Js="online";var Zs=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return a(this,void 0,void 0,(function*(){navigator.onLine?this._onOnline():this._onOffline(),this._onOnlineCallback=this._onOnline.bind(this),this._onOfflineCallback=this._onOffline.bind(this),window.addEventListener("online",this._onOnlineCallback),window.addEventListener("offline",this._onOfflineCallback)}))}_deactivateNetworkMonitoring(){null!==this._onOnlineCallback&&(window.removeEventListener("online",this._onOnlineCallback),this._onOnlineCallback=null),null!==this._onOfflineCallback&&(window.removeEventListener("offline",this._onOfflineCallback),this._onOfflineCallback=null)}_onNetworkStatusChange(e){var t,s;const{isConnected:n,networkType:o}=e;null===(t=this._core)||void 0===t||t.store.set("netWorkMonitor",{isNetworkOnline:n,networkType:o}),null===(s=this._core)||void 0===s||s.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:n,networkType:o})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:Js})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:zs})}_reset(){var e;this._deactivateNetworkMonitoring(),null===(e=this._core)||void 0===e||e.store.clear("netWorkMonitor")}_dispose(){var e,t;null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(null===(t=this._core)||void 0===t?void 0:t.InnerEvent.DESTROY,this._dispose,this),this._reset()}};var Xs=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return a(this,void 0,void 0,(function*(){try{this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),wx.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(e){console.error(e)}}))}_deactivateNetworkMonitoring(){null!==this._mpNetworkStatusCallback&&(wx.offNetworkStatusChange&&wx.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null)}_onNetworkStatusChange(e){var t,s;const{isConnected:n,networkType:o}=e;null===(t=this._core)||void 0===t||t.store.set("netWorkMonitor",{isNetworkOnline:n,networkType:o}),null===(s=this._core)||void 0===s||s.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:n,networkType:o})}_reset(){var e;this._deactivateNetworkMonitoring(),null===(e=this._core)||void 0===e||e.store.clear("netWorkMonitor")}_dispose(){var e,t;null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(null===(t=this._core)||void 0===t?void 0:t.InnerEvent.DESTROY,this._dispose,this),this._reset()}};var Qs=new class{init(e){const{IN_WX_MINI_APP:t}=e.helper;t?Xs.init(e):Zs.init(e)}};var en=new class{install(e){Ys.init(e),Qs.init(e)}};const tn=new Set(["tui_room_svr.*","callkit_records_svr.*","room_engine_srv.*","room_engine_http_srv.*","room_engine_mic.*","live_engine_srv.*","live_engine_http_srv.*","live_engine_pk.*","trtc_ai_service.*","call_engine_srv.*"]),sn="tui_room_svr.*";var nn=new class{constructor(){this._transferredCommands=tn}install(e){this._core=e;const{notificationCenter:t,InnerEvent:s,helper:n}=e;t.subscribeInnerEvent(s.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),t.subscribeInnerEvent(s.LOGOUT,this._reset,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this),t.subscribeInnerEvent("im_open_push.msg_push",t.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),n.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),n.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(e){return a(this,void 0,void 0,(function*(){const t="transferBusinessCommand";try{const{serviceCommand:s=sn}=e||{};if(!this._isValidTransferredCommand(s))throw new this._core.helper.ChatError({code:2995,functionName:t});const n=yield function(e,t){return a(this,void 0,void 0,(function*(){const{helper:s,channel:n}=t,{serviceCommand:o=sn,data:i}=e||{};let r={};try{r="string"==typeof i?JSON.parse(i):i}catch(e){console.warn(e)}const a=s.generateProtocolData({servcmd:o,data:r}),c=`${a.head.seq}${o}`;return n.sendPacket(a,{requestId:c})}))}(e,this._core);return{code:0,data:n||{}}}catch(e){throw console.warn(e),new this._core.helper.ChatError({code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,data:{},functionName:t})}}))}_onCloudConfigUpdate(e={}){try{if("string"!=typeof e.rtc_cmd)return;const t=JSON.parse(e.rtc_cmd);Array.isArray(t)&&(this._transferredCommands=new Set([...this._transferredCommands,...t]))}catch(e){console.log(e)}}_isValidTransferredCommand(e=""){const t=`${null==e?void 0:e.split(".")[0]}.*`;return this._transferredCommands.has(t)}_onServerPushBusinessCommand(e){const{OuterEvent:t,notificationCenter:s}=this._core,{MsgContent:n}=e||{},{ROOM_CUSTOM_DATA_RECEIVED:o}=t;s.emitOuterEvent(o,{name:o,data:n})}_reset(){this._transferredCommands=tn}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;this._reset(),e.unSubscribeInnerEvent(t.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),e.unSubscribeInnerEvent("im_open_push.msg_push",e.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const on=1,rn=2,an=3,cn=4,ln=5,un="TIMCustomElem",dn="C2C",hn="GROUP",gn="invite",pn="accept",_n="cancel",mn="reject",vn="modifyInvitation",fn="signaling",In=8010,Sn="signaling-timeout";function En(e){return e.filter((e=>{if(e.type===un){const{cloudCustomData:t="",payload:{data:s=""}={}}=e,n=t.match(/"type":"tsignaling"/),o=s.match(/inviteID/),i=s.match(/actionType/);return n||o&&i}return!1}))}function Cn(e){const{data:t}=e.payload;try{return JSON.parse(t)}catch(e){return console.error(e),null}}function yn(e,t){return e.toString(16).padStart(t,"0")}function Mn(e){if(e<0||e>53)throw new Error("Number of digits must be between 0 and 53");if(e<=30)return Math.floor(Math.random()*(1<<e));const t=e-30;return Math.floor(Math.random()*(1<<t))*(1<<30)+Math.floor(Math.random()*(1<<30))}var On=new class{constructor(){this._onlineSignalingMap=new Map,this._isSignalingListening=!1}init(e){this._core=e,e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this)}getOnlineSignalingMap(){return this._onlineSignalingMap}hasSignaling(e){return this._onlineSignalingMap.has(e)}getSignaling(e){return this._onlineSignalingMap.get(e)}saveSignaling(e,t){return this._onlineSignalingMap.set(e,t)}removeSignaling(e){return this._onlineSignalingMap.delete(e)}isInvitationValid(e){const t=`${fn}.isInvitationValid`,{inviteID:s,groupID:n,inviter:o}=e,i=o===this._core.common.getCurrentUserID();if(!this._onlineSignalingMap.has(s))return!1;const{inviteeList:r}=this._onlineSignalingMap.get(s);if(console.log(`${t} inviteID:${s} inviteeList:${r} groupID:${n}`),n){if(i)return r.length>0;const e=this._core.common.getCurrentUserID();return r.includes(e)}return!0}updateSignaling(e){const t=`${fn}.updateSignaling`,{inviteID:s,inviter:n,inviteeList:o,groupID:i}=e;if(console.log(`${t} inviteID:${s} inviter:${n} groupID:${i}`),i&&this.hasSignaling(s)){const e=o[0],{inviteeList:n}=this._onlineSignalingMap.get(s);n.includes(e)&&(n.splice(n.indexOf(e),1),console.log(`${t} remove ${e}. localInviteeList.length:${n.length}`)),0===n.length&&this.removeSignaling(s)}else this.removeSignaling(s)}setSignalingListenStatus(e){this._isSignalingListening=e}getSignalingListenStatus(){return this._isSignalingListening}_dispose(){var e,t;this._reset(),null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._isSignalingListening=!1}_reset(){this._onlineSignalingMap.clear()}};var Tn=new class{init(e){this._core=e}createInviteSignaling(e){const t=this._generateInviteID(),s=this._createInviteSignalingData(Object.assign(Object.assign({},e),{inviteID:t})),{groupID:n,inviteeList:o}=s,i=n||o[0];return{signaling:this._createSignaling(s,i),signalingData:s,signalingExtensionOptions:this._createSignalingExtensionOptions(e)}}createAcceptSignaling(e){const t=this._createAcceptSignalingData(e),{groupID:s,inviter:n}=t,o=s||n;return{signaling:this._createSignaling(t,o),signalingData:t,signalingExtensionOptions:this._createSignalingExtensionOptions(e)}}createCancelSignaling(e){const t=this._createCancelSignalingData(e),{groupID:s,inviteeList:n}=t,o=s||n[0];return{signaling:this._createSignaling(t,o),signalingData:t,signalingExtensionOptions:this._createSignalingExtensionOptions(e)}}createRejectSignaling(e){const t=this._createRejectSignalingData(e),{groupID:s,inviter:n}=t,o=s||n;return{signaling:this._createSignaling(t,o),signalingData:t,signalingExtensionOptions:this._createSignalingExtensionOptions(e)}}createTimeoutSignaling(e){const{isInviter:t=!1}=e,s=this._createTimeoutSignalingData(e),{groupID:n,inviteeList:o,inviter:i}=s,r=n||(t?o[0]:i);return{signaling:this._createSignaling(s,r),signalingData:s,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}_createSignalingExtensionOptions(e){var t,s;const{data:n="",onlineUserOnly:o,inviteID:i="",offlinePushInfo:r,actionType:a}=e,c=(null===(s=null===(t=On.getSignaling(i))||void 0===t?void 0:t.signaling)||void 0===s?void 0:s._onlineOnlyFlag)||!1;return{onlineUserOnly:o||c,offlinePushInfo:r,messageControlInfo:this._createMessageControlInfo(n,a)}}_createMessageControlInfo(e,t){const s=t===ln&&!!e.match(/excludeTimeoutSignalingFromHistoryMessage/),n=!!e.match(/excludeFromHistoryMessage/)||!!e.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:s||n,excludedFromLastMessage:s||n}}_createInviteSignalingData(e){const t=`${fn}._createInviteSignalingData`,{userID:s,timeout:n=0,groupID:o="",inviteeList:i=[]}=e,r=this._core.common.getCurrentUserID(),a=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:on,inviter:r,inviteeList:o?i:[s],timeout:n});return console.log(`${t} signalingData:`,a),a}_createAcceptSignalingData(e){const t=`${fn}._createAcceptSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=On.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:an,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createCancelSignalingData(e){const t=`${fn}._createCancelSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviteeList:o,groupID:i}=On.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:rn,groupID:i,inviter:n,inviteeList:o});return console.log(`${t} signalingData:`,r),r}_createRejectSignalingData(e){const t=`${fn}._createRejectSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=On.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:cn,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createTimeoutSignalingData(e){const t=`${fn}._createTimeoutSignalingData`,{isInviter:s=!1,inviteID:n}=e,{inviteeList:o,inviter:i}=On.getSignaling(n),r=this._core.common.getCurrentUserID(),a=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:ln,inviter:i,inviteeList:s?o:[r]});return console.log(`${t} signalingData:`,a),a}_createSignaling(e,t){var s,n,o;const{groupID:i=""}=e,r={to:t,conversationType:i?hn:dn,priority:"High",payload:{data:JSON.stringify(e)}};return null===(o=null===(n=null===(s=this._core)||void 0===s?void 0:s.message)||void 0===n?void 0:n.messageFactory)||void 0===o?void 0:o.createCustomMessage(r)}_generateInviteID(){return[yn(Mn(32),8),yn(Mn(16),4),yn(16384|Mn(12),4),yn(32768|Mn(14),4),yn(Mn(48),12)].join("-")}_generateBaseSignalData(e){const{data:t="",inviteID:s="",groupID:n=""}=e;return{businessID:1,timeout:0,data:t,inviteID:s,groupID:n}}};var An=new class{constructor(){this._isProcessingSignaling=!1}init(e){this._core=e,e.helper.registerApi({apiName:"invite",context:this}),e.helper.registerApi({apiName:"accept",context:this}),e.helper.registerApi({apiName:"cancel",context:this}),e.helper.registerApi({apiName:"reject",context:this}),e.helper.registerApi({apiName:"modifyInvitation",context:this}),e.helper.registerApi({apiName:"getSignalingInfo",context:this}),e.helper.registerApi({apiName:"addSignalingListener",context:this}),e.helper.registerApi({apiName:"removeSignalingListener",context:this}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this)}invite(e){return a(this,void 0,void 0,(function*(){var t;console.log(`${fn}.invite params:${JSON.stringify(e)}`);try{this._validateBeforeInvite(e);const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Tn.createInviteSignaling(e),i=yield this._sendSignaling(s,o);if(0===(null==i?void 0:i.code)){const{inviteID:e,timeout:o}=n;return On.saveSignaling(e,Object.assign(Object.assign({},n),{signaling:s})),o>0&&(null===(t=this._core)||void 0===t||t.helper.taskScheduler.addOnceTask({id:`${Sn}-${e}`,intervalMs:1e3*(o+5),callback:this.handleInvitationExpiryTimer.bind(this,e)})),Object.assign(Object.assign({},i),{inviteID:e})}return i}catch(e){throw console.error(`${fn}.invite error:${e}`),e}}))}accept(e){return a(this,void 0,void 0,(function*(){console.log(`${fn}.accept params:${JSON.stringify(e)}`);try{const{inviteID:t}=e;this._validateBeforeAccept(t),this._isProcessingSignaling=!0;const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Tn.createAcceptSignaling(e),i=yield this._sendSignaling(s,o);return 0===(null==i?void 0:i.code)?(On.updateSignaling(n),Object.assign(Object.assign({},i),{inviteID:t})):i}catch(e){throw console.error(`${fn}.accept error:${e}`),e}finally{this._isProcessingSignaling=!1}}))}cancel(e){return a(this,void 0,void 0,(function*(){console.log(`${fn}.cancel params:${JSON.stringify(e)}`);try{const{inviteID:t}=e;this._validateBeforeCancel(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Tn.createCancelSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(On.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw console.error(`${fn}.cancel error:${e}`),e}finally{this._isProcessingSignaling=!1}}))}reject(e){return a(this,void 0,void 0,(function*(){console.log(`${fn}.reject params:${JSON.stringify(e)}`);try{const{inviteID:t}=e;this._validateBeforeReject(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Tn.createRejectSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(On.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw console.error(`${fn}.reject error:${e}`),e}finally{this._isProcessingSignaling=!1}}))}modifyInvitation(e){return a(this,void 0,void 0,(function*(){var t,s;console.log(`${fn}.modifyInvitation params:${JSON.stringify(e)}`);const{inviteID:n,data:o}=e;let i="";try{this._validateBeforeModifyInvitation(n);const e=On.getSignaling(n),{signaling:a}=e,c=r(e,["signaling"]);i=a.payload.data,c.data=o,a.payload.data=JSON.stringify(c);const l=yield null===(s=null===(t=this._core)||void 0===t?void 0:t.message.messageAction)||void 0===s?void 0:s.modifyMessage(a);return On.hasSignaling(n)&&On.saveSignaling(n,Object.assign(Object.assign({},c),{signaling:a})),l}catch(e){if(i){const{signaling:e}=On.getSignaling(n);e.payload.data=i}throw e}}))}getSignalingInfo(e){if(0===En([e]).length)return;const t=Cn(e),s={businessID:t.businessID||1,inviteID:t.inviteID,groupID:t.groupID||"",inviter:t.inviter||"",inviteeList:t.inviteeList||[],data:t.data||"",actionType:t.actionType||on,timeout:t.timeout||0};return console.log(`${fn} getSignalingInfo `,s),s}addSignalingListener(e,t,s){var n,o;e===(null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.NEW_INVITATION_RECEIVED)&&On.setSignalingListenStatus(!0),null===(o=this._core)||void 0===o||o.notificationCenter.subscribeOuterEvent(e,t,s)}removeSignalingListener(e,t,s){var n,o;e===(null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.NEW_INVITATION_RECEIVED)&&On.setSignalingListenStatus(!1),null===(o=this._core)||void 0===o||o.notificationCenter.unSubscribeOuterEvent(e,t,s)}handleInvitationExpiryTimer(e){const t=On.getOnlineSignalingMap(),s=this._core.common.getCurrentUserID();if(!t.has(e))return;const n=t.get(e).inviter===s;this._sendTimeoutNotice({inviteID:e,isInviter:n})}_sendSignaling(e,t){return a(this,void 0,void 0,(function*(){var s,n,o;return null===(o=null===(n=null===(s=this._core)||void 0===s?void 0:s.message)||void 0===n?void 0:n.messageSender)||void 0===o?void 0:o.sendMessage(e,t)}))}_sendTimeoutNotice(e){return a(this,void 0,void 0,(function*(){var t,s,n;console.log(`${fn}._sendTimeoutNotice params:${JSON.stringify(e)}`);const{isInviter:o,inviteID:i}=e,{signaling:r,signalingData:a,signalingExtensionOptions:c}=Tn.createTimeoutSignaling(e),l=yield this._sendSignaling(r,c);if(0===(null==l?void 0:l.code)){const{data:e,groupID:c,inviteeList:l,inviter:u}=a;null===(t=this._core)||void 0===t||t.notificationCenter.emitOuterEvent(null===(s=this._core)||void 0===s?void 0:s.SignalingEvent.INVITATION_TIMEOUT,{name:null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.INVITATION_TIMEOUT,data:{data:e,groupID:c,inviteID:i,inviteeList:l,inviter:u,isSelfTimeout:!0,message:r}}),o?On.removeSignaling(i):On.updateSignaling(a)}}))}_validateInviteId(e,t){if(!On.hasSignaling(t))throw new this._core.helper.ChatError({functionName:e,code:In})}_validateProcessStatus(e){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:e,message:"processing other signaling operations"})}_validateBeforeInvite(e){const t=gn,{userID:s}=e,n=this._core.common.getCurrentUserID();if(s===n)throw new this._core.helper.ChatError({functionName:t,message:`cannot invite yourself, currentUserId:${n}, inviteeId:${s}`})}_validateBeforeAccept(e){const t=pn;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=On.getSignaling(e);if(!n.includes(s)){const n=`userID:${s} not in inviteeList. inviteID:${e}`;throw new this._core.helper.ChatError({functionName:t,message:n})}}_validateBeforeCancel(e){const t=_n;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviter:n}=On.getSignaling(e);if(n!==s){const e=`unmatched inviter:${n} and my userID:${s}`;throw new this._core.helper.ChatError({functionName:t,message:e})}}_validateBeforeReject(e){const t=mn;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=On.getSignaling(e);if(!n.includes(s)){const n=`userID:${s} not in inviteeList. inviteID:${e}`;throw new this._core.helper.ChatError({functionName:t,message:n})}}_validateBeforeModifyInvitation(e){const t=vn;this._validateInviteId(t,e)}_dispose(){var e,t;this._reset(),null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this)}_reset(){this._isProcessingSignaling=!1}};var Dn=new class{constructor(){this._actionProcessor=new Map([[on,this._onNewInvitationReceived.bind(this)],[cn,this._onInviteeRejected.bind(this)],[an,this._onInviteeAccepted.bind(this)],[rn,this._onInvitationCancelled.bind(this)],[ln,this._onInvitationTimeout.bind(this)]])}init(e){this._core=e,e.notificationCenter.subscribeOuterEvent(e.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),e.notificationCenter.subscribeOuterEvent(e.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}handleActionSignaling(e){e.forEach((e=>{const t=Cn(e);if(t){const s=this._actionProcessor.get(t.actionType);null==s||s(t,e)}}))}_handleMessageReceived(e){if(!On.getSignalingListenStatus())return;const t=En(e.data);0!==t.length&&this.handleActionSignaling(t)}_handleMessageModified(e){if(!On.getSignalingListenStatus())return;const t=En(e.data);t.length>0&&t.forEach((e=>{const t=Cn(e);t&&this._onInvitationModified(t,e)}))}_onNewInvitationReceived(e,t){var s,n;const o=`${fn}._onNewInvitationReceived`,{inviteID:i,inviteeList:r,groupID:a}=e,c=this._core.common.getCurrentUserID();console.log(`${o} signalingData:${JSON.stringify(e)}}`);if(a&&!r.includes(c))return;let{timeout:l}=e;const u=Date.now()/1e3-t.time;l>0&&u>0&&l>u&&(l-=u);const d=On.getSignaling(i);d!==e&&(d||On.saveSignaling(i,Object.assign(Object.assign({},e),{signaling:t})),l>0&&(null===(s=this._core)||void 0===s||s.helper.taskScheduler.addOnceTask({id:`${Sn}-${i}`,intervalMs:1e3*l,callback:An.handleInvitationExpiryTimer.bind(An,i)})),this._emitEvent({name:null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.NEW_INVITATION_RECEIVED,data:Object.assign(Object.assign({},this._generateBaseEmitData(e)),{inviteeList:r})}))}_onInviteeRejected(e){var t;const s=`${fn}._onInviteeRejected`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=On.hasSignaling(n);console.log(`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(On.updateSignaling(e),this._emitEvent({name:null===(t=this._core)||void 0===t?void 0:t.SignalingEvent.INVITEE_REJECTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(e)),{invitee:r[0]})}))}_onInviteeAccepted(e){var t;const s=`${fn}._onInviteeAccepted`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=On.hasSignaling(n);console.log(`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(On.updateSignaling(e),this._emitEvent({name:null===(t=this._core)||void 0===t?void 0:t.SignalingEvent.INVITEE_ACCEPTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(e)),{invitee:r[0]})}))}_onInvitationCancelled(e){var t;const s=`${fn}._onInvitationCancelled`,{inviteID:n,inviter:o,groupID:i}=e,r=On.hasSignaling(n);console.log(`${s} inviteID:${n} hasInviteID:${r} inviter:${o} groupID:${i}`),r&&(On.removeSignaling(n),this._emitEvent({name:null===(t=this._core)||void 0===t?void 0:t.SignalingEvent.INVITATION_CANCELLED,data:this._generateBaseEmitData(e)}))}_onInvitationTimeout(e){var t;const s=`${fn}._onInvitationTimeout`,{inviteID:n,inviteeList:o}=e,i=On.hasSignaling(n);console.log(`${s} inviteID:${n} hasInviteID:${i} data:${e.data}`),i&&(On.updateSignaling(e),this._emitEvent({name:null===(t=this._core)||void 0===t?void 0:t.SignalingEvent.INVITATION_TIMEOUT,data:Object.assign(Object.assign({},this._generateBaseEmitData(e)),{inviteeList:o,isSelfTimeout:!1})}))}_onInvitationModified(e,t){var s;const n=`${fn}._onInvitationModified`,{inviteID:o,data:i}=e,r=On.hasSignaling(o);console.log(`${n} inviteID:${o} data:${i}`),r&&(On.saveSignaling(o,Object.assign(Object.assign({},e),{signaling:t})),this._emitEvent({name:null===(s=this._core)||void 0===s?void 0:s.SignalingEvent.INVITATION_MODIFIED,data:{inviteID:o,data:i}}))}_emitEvent(e){var t;null===(t=this._core)||void 0===t||t.notificationCenter.emitOuterEvent(e.name,e)}_generateBaseEmitData(e){const{inviteID:t,inviter:s,groupID:n,data:o}=e;return{inviteID:t,inviter:s,groupID:n,data:o||""}}_dispose(){var e,t,s;null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),null===(s=this._core)||void 0===s||s.notificationCenter.unSubscribeOuterEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}};var Rn=new class{constructor(){this._offlineSignalingMap=new Map}init(e){this._core=e;const{notificationCenter:t,helper:s,constants:{InnerEvent:n,WORKFLOW_STEP:o,WORKFLOW_NAME:i}}=e;t.subscribeInnerEvent(n.DESTROY,this._dispose,this),t.subscribeInnerEvent(n.LOGOUT,this._reset,this),s.registerWorkflowStep(i.SYNC_SERVER_INFO_AFTER_LOGIN,o.SIGNALING_MESSAGE_RECOVER,this._handleC2COfflineMessage,this)}_handleC2COfflineMessage(e){const{result:{unreadMessageMap:t}={}}=e||{};if(!(0!==(null==t?void 0:t.size)&&On.getSignalingListenStatus()))return;const s=En([...t.values()]);if(0!==s.length&&(s.forEach((e=>{this._handleC2CActionType(e)})),this._offlineSignalingMap.size>0)){const e=this._sortOfflineSignalingByTime();Dn.handleActionSignaling(e)}}_handleC2CActionType(e){const t=Cn(e);if(!t)return;const{actionType:s}=t;s===on?this._saveValidOfflineInvite(t,e):this._removeOfflineInvite(t)}_saveValidOfflineInvite(e,t){const{inviteID:s,inviteeList:n=[],timeout:o=0}=e,i=this._core.common.getCurrentUserID();if(!n.includes(i))return;const r=Date.now()/1e3-t.time;o>0&&r>o&&0!==o||this._offlineSignalingMap.set(s,Object.assign(Object.assign({},e),{signalingList:[t]}))}_removeOfflineInvite(e){const{inviteID:t=""}=e;this._offlineSignalingMap.has(t)&&this._offlineSignalingMap.delete(t)}_sortOfflineSignalingByTime(){let e=[];return this._offlineSignalingMap.forEach((t=>{e=[...e,...t.signalingList]})),e.sort(((e,t)=>e.time-t.time))}_dispose(){var e,t;this._reset(),null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._offlineSignalingMap.clear()}};const bn={invite:{userID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0},timeout:{required:!1,rules:["number"],allowEmpty:!1},onlineUserOnly:{required:!1,rules:["boolean"],allowEmpty:!1},offlinePushInfo:{required:!1,rules:["object"],allowEmpty:!1}},cancel:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},accept:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},reject:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},modifyInvitation:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}}},Nn={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var Ln=new class{install(e){An.init(e),Dn.init(e),Tn.init(e),On.init(e),Rn.init(e),e.helper.registerValidateConfig({auth:Nn,params:bn})}};const wn=new class{init(e){this.core=e}};var Pn,Un,Gn;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem"}(Pn||(Pn={})),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"}(Un||(Un={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(Gn||(Gn={}));const kn="MSG_REACTION",Fn=0,$n=1,qn={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},xn="16k_zh",Vn="16k_en",Bn="16k_yue",jn="16k_ja",Wn="16k_zh-PY",Kn={[qn.ZH_CN]:xn,[qn.EN_US]:Vn,[qn.YUE_HK]:Bn,[qn.JA_JP]:jn,[qn.ZH_PY]:Wn},Hn=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,Yn={READ:0,UNREAD:1};const zn=2116,Jn="C2C",Zn="GROUP",Xn=20,Qn=1,eo=300;function to(e){return a(this,void 0,void 0,(function*(){var t;const{appStore:s}=wn.core,{messageList:n,conversationID:o}=e,i=s.conversationStore.getConversationMap();let r=null===(t=i.get(o))||void 0===t?void 0:t.peerReadTime;if(!r){const e=o.replace(Jn,""),t=yield function(e){return a(this,void 0,void 0,(function*(){const t={To_Account:e};return wn.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:t})}))}([e]);if(t){const{ReadTime:e}=t;r=null==e?void 0:e[0],i.has(o)&&(i.get(o).peerReadTime=r)}}n.forEach((e=>{e.time<=r&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0)}))}))}function so(e){return a(this,void 0,void 0,(function*(){var t;const{message:s,user:n,appStore:o,constants:{OuterConstant:i}}=wn.core,r=o.conversationStore.getConversationMap();if(r.has(e)){const o=null===(t=r.get(e))||void 0===t?void 0:t.userProfile;if(o&&e.startsWith(i.CONV_C2C)){const{avatar:t,nick:s}=o;wn.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:e,latestAvatar:t,latestNick:s,isSentByMe:!1})}const{data:a}=(yield n.userProfile.getMyProfile())||{};if(a){const{avatar:t,nick:n}=a;s.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:e,latestAvatar:t,latestNick:n,isSentByMe:!0})}}}))}function no(e){let t;const{message:s}=wn.core,{conversationID:n,messageID:o}=e;if(t=s.messageDataHandler.getLocalMessageList(n).find((e=>e.ID===o)),!t){t=s.messageDataHandler.getSparseMessageList(n).find((e=>e.ID===o))}return t}function oo(e){return e.map((e=>{const{from:t,to:s,cloudCustomData:n,avatar:o,nick:i,ID:r,clientSequence:a,clientTime:c,messageRandom:l,messageSequence:u,time:d}=e;return{ClientSeq:a,CloudCustomData:n,From_Account:t,From_AccountHeadurl:o,From_AccountNick:i,Id:r,MsgBody:JSON.parse(JSON.stringify(e.transformElementsToServerFormat())),MsgClientTime:c,MsgRandom:l,Random:l,MsgSeq:u,MsgTimeStamp:d,ReceiverId:s,SenderId:t,To_Account:s}}))}function io(e){var t;const{From_Account:s,From_AccountHeadurl:n,From_AccountNick:o,GroupId:i,MsgClientTime:r,ClientSeq:a,To_Account:c,MsgTimeStamp:l,TinyId:u,MsgRandom:d,MsgSeq:h}=e;return{from:s,avatar:n,nick:o,clientTime:r,time:l,tinyID:u,random:d,sequence:h,to:c,groupID:i,clientSequence:a,_elements:null===(t=e.MsgBody)||void 0===t?void 0:t.map((e=>{const{MsgType:t}=e;return wn.core.message.messageFactory.getElementClass(t).parseServerPushElement(e)}))}}var ro=new class{constructor(){this._reactionsMap=new Map}init(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{MESSAGE_REACTION_UPDATED:o,MESSAGE_REACTION_UPDATED_SYNC:i}}=e;t.registerApi({apiName:"addMessageReaction",context:this}),t.registerApi({apiName:"removeMessageReaction",context:this}),t.registerApi({apiName:"getMessageReactions",context:this}),t.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),s.subscribeInnerEvent(n,o,this._handleReactionUpdated,this),s.subscribeInnerEvent(n,i,this._handleReactionSync,this)}addMessageReaction(e,t){return a(this,void 0,void 0,(function*(){const{OuterConstant:s,ssoLog:n,helper:o}=this._core;this._validateMessageReactionBusinessCapability();const i=n.createSSOLogData({method:"addMessageReaction"}),{conversationID:r,ID:c,conversationType:l,from:u,to:d,clientSequence:h,random:g,time:p,sequence:_}=e;try{return this._recordMessageReactedByMe(c,t),l===s.CONV_C2C?yield function(e,t){return a(this,void 0,void 0,(function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,l={From_Account:n,To_Account:o,MsgKey:`${i}_${r}_${a}`,Reaction:c,Add_Account:[null===(s=t.store.get("login"))||void 0===s?void 0:s.userId]};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:l})}))}({from:u,to:d,clientSequence:h,random:g,time:p,reactionID:t},this._core):l===s.CONV_GROUP&&(yield function(e,t){return a(this,void 0,void 0,(function*(){var s;const{to:n,reactionID:o,sequence:i}=e,r={GroupId:n,MsgSeq:i,Reaction:o,Add_Account:[null===(s=t.store.get("login"))||void 0===s?void 0:s.userId]};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:r})}))}({to:d,reactionID:t,sequence:_},this._core)),i.setLogInfo({message:`conversationID:${r} messageID:${c} reactionID:${t}`}).end(),{code:0}}catch(e){this._removeMyReactionRecord(c,t);const{errorCode:s}=e||{},n=new o.ChatError({functionName:"addMessageReaction",code:s});i.setError(n).end(),console.error("addMessageReaction error: ",e)}}))}removeMessageReaction(e,t){return a(this,void 0,void 0,(function*(){const{OuterConstant:s,ssoLog:n,helper:o}=this._core;this._validateMessageReactionBusinessCapability();const i=n.createSSOLogData({method:"removeMessageReaction"});try{const{conversationID:n,ID:o,conversationType:r,from:c,to:l,clientSequence:u,random:d,time:h,sequence:g}=e;return this._removeMyReactionRecord(o,t),r===s.CONV_C2C?yield function(e,t){return a(this,void 0,void 0,(function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,l={From_Account:n,To_Account:o,MsgKey:`${i}_${r}_${a}`,Reaction:c,Del_Account:[null===(s=t.store.get("login"))||void 0===s?void 0:s.userId]};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:l})}))}({from:c,to:l,clientSequence:u,random:d,time:h,reactionID:t},this._core):r===s.CONV_GROUP&&(yield function(e,t){return a(this,void 0,void 0,(function*(){var s;const{common:{isTopic:n},constants:{OuterConstant:{GROUP_ID_PREFIX:o}}}=wn.core,{to:i,reactionID:r,sequence:a}=e,c=null===(s=t.store.get("login"))||void 0===s?void 0:s.userId;let l,u=i;n(i)&&(l=i,u=l.split(o.TOPIC)[0]);const d={TopicId:l,GroupId:u,MsgSeq:a,Reaction:r,Del_Account:[c]};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:d},t)}))}({to:l,reactionID:t,sequence:g},this._core)),i.setLogInfo({message:`conversationID:${n} messageID:${o} reactionID:${t}`}).end(),{code:0}}catch(e){const{errorCode:t}=e||{},s=new o.ChatError({functionName:"removeMessageReaction",code:t});i.setError(s).end(),console.error("removeMessageReaction error: ",e)}}))}getAllUserListOfMessageReaction(e){return a(this,void 0,void 0,(function*(){this._validateMessageReactionBusinessCapability();const{message:t,reactionID:s,nextSeq:n=0}=e,o=e.count>100?100:e.count,{conversationID:i}=t,{ssoLog:r,helper:c,constants:l}=this._core;try{let e=null;if(e=i.startsWith(l.OuterConstant.CONV_C2C)?yield function(e){return a(this,void 0,void 0,(function*(){const{message:t,nextSeq:s,reactionID:n,count:o}=e,{from:i,to:r,clientSequence:a,random:c,time:l}=t,u={Reaction:n,NextSeq:s,Count:o,From_Account:i,To_Account:r,MsgKey:`${a}_${c}_${l}`};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:u})}))}({message:t,reactionID:s,nextSeq:n,count:o}):yield function(e){return a(this,void 0,void 0,(function*(){const{common:{isTopic:t},constants:{OuterConstant:{GROUP_ID_PREFIX:s}}}=wn.core,{message:n,nextSeq:o,reactionID:i,count:r}=e,{sequence:a}=n;let c,l=n.to;t(n.to)&&(c=n.to,l=c.split(s.TOPIC)[0]);const u={Reaction:i,NextSeq:o,TopicId:c,GroupId:l,Count:r,MsgSeq:a};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:u})}))}({message:t,reactionID:s,nextSeq:n,count:o}),e){const{Reaction_Account:t,NextSeq:s}=e,o=yield this._getUserProfileList(t);return{code:0,data:{nextSeq:s,isCompleted:0===n,userList:o}}}}catch(e){const{errorCode:t}=e||{},s=new c.ChatError({functionName:"getAllUserListOfMessageReaction",code:t});r.createSSOLogData({method:"removeMessageReaction"}).setError(s).end(),console.error("getAllUserListOfMessageReaction error: ",e)}}))}getMessageReactions(e){return a(this,void 0,void 0,(function*(){const{constants:t}=this._core;this._validateMessageReactionBusinessCapability();const{messageList:s,maxUserCountPerReaction:n=10}=e,o=s[0];let i=null;const r=new Map,{from:c,to:l,conversationType:u}=o,d=this._generateMessageKeyList(s,r);u===t.OuterConstant.CONV_C2C?i=yield function(e){return a(this,void 0,void 0,(function*(){const{from:t,to:s,messageKeyList:n,maxUserCountPerReaction:o}=e,i={From_Account:t,To_Account:s,MsgKeyList:n,Count:o};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:i})}))}({from:c,to:l,messageKeyList:d,maxUserCountPerReaction:n}):u===t.OuterConstant.CONV_GROUP&&(i=yield function(e){return a(this,void 0,void 0,(function*(){const{common:{isTopic:t},constants:{OuterConstant:{GROUP_ID_PREFIX:s}}}=wn.core;let n,{groupId:o,messageSequenceList:i,maxUserCountPerReaction:r}=e;t(o)&&(n=o,o=o.split(s.TOPIC)[0]);const a={GroupId:o,TopicId:n,MsgSeqList:i,Count:r};return wn.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:a})}))}({groupId:l,messageSequenceList:d,maxUserCountPerReaction:n}));const{Results:h=[]}=i||{},g=this._extractUserIDsFromReactionResults(h),p=yield this._getUserProfileMap(g);return{code:0,data:{resultList:h.map((e=>{const{ReactionList:t,MsgSeq:s,MsgKey:n}=e;return{messageID:this._generateMessageID({messageSequence:s,messageKey:n,messageIDMap:r}),reactionList:t.map((e=>{const{Reaction:t,Count:s,Reaction_Account:n,ReactedByMe:o}=e;return{reactionID:t,totalUserCount:s,partialUserList:this._generatePartialUserInfo({userIDList:n,userProfileMap:p}),reactedByMyself:1===o}}))}}))}}}))}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(e){const t=[];return null==e||e.forEach((e=>{const{ReactionList:s=[]}=e;s.forEach((e=>{e.Reaction_Account&&t.push(...e.Reaction_Account)}))})),t}_getUserProfileList(e){return a(this,void 0,void 0,(function*(){var t;try{const s=yield null===(t=this._core.user.userProfile)||void 0===t?void 0:t.getUserProfile({userIDList:e});return s?s.data:[]}catch(e){return[]}}))}_getUserProfileMap(e){return a(this,void 0,void 0,(function*(){const t=new Map;return(yield this._getUserProfileList(e)).forEach((e=>{const{nick:s,avatar:n,userID:o}=e;t.set(o,{nick:s,avatar:n,userID:o})})),t}))}_recordMessageReactedByMe(e,t){const s=`${e}-${t}`;this._reactionsMap.has(s)?this._reactionsMap.get(s).reactedByMe=!0:this._reactionsMap.set(s,{reactedByMe:!0})}_removeMyReactionRecord(e,t){const s=`${e}-${t}`;this._reactionsMap.has(s)&&(this._reactionsMap.get(s).reactedByMe=!1)}_recordMessageReactionInfo(e){const{messageID:t,reactionID:s,reactionInfo:n}=e,o=`${t}-${s}`,i=this._reactionsMap.get(o)||{};this._reactionsMap.set(o,Object.assign(Object.assign({},i),n))}_validateMessageReactionBusinessCapability(){const{helper:e,constants:t}=this._core;if(!e.checkBusinessCapabilityBits(kn))throw new e.ChatError({functionName:"addMessageReaction",code:t.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(e){const{MsgReactionNotifyList:t}=e,{notificationCenter:s,constants:n}=this._core;t.forEach((e=>a(this,void 0,void 0,(function*(){const{C2CMsgInfo:t,GroupMsgInfo:o,MsgReactionSummary:i}=e,{TinyId:r,MsgClientTime:a,MsgRandom:c}=Object.assign(Object.assign({},t),o),l=`${r}-${a}-${c}`,u=this._extractUserIDsFromReactionResults([{ReactionList:i}]),d=yield this._getUserProfileMap(u),h=i.map((e=>{var t;const{Reaction:s,Reaction_Account:n}=e,o=this._generatePartialUserInfo({userIDList:n,userProfileMap:d}),i=n?e.Count:0,r=(null===(t=this._reactionsMap.get(`${l}-${s}`))||void 0===t?void 0:t.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:l,reactionID:s,reactionInfo:{reactionID:s,totalUserCount:i,partialUserList:o}}),{reactionID:s,totalUserCount:i,partialUserList:o,reactedByMyself:r}}));s.emitOuterEvent(n.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:n.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:l,reactionList:h}})}))))}_handleReactionSync(e){var t;const{notificationCenter:s,constants:n}=this._core,{C2CMsgInfo:o={},GroupMsgInfo:i={},Reaction:r,OperateType:a}=e.MsgReactionNotify,{TinyId:c="",MsgClientTime:l=0,MsgRandom:u=0}=Object.assign(Object.assign({},o),i),d=`${c}-${l}-${u}`,h=`${d}-${r}`;if(1===a?this._recordMessageReactedByMe(d,r):this._removeMyReactionRecord(d,r),null===(t=this._reactionsMap.get(h))||void 0===t?void 0:t.reactionID){const e=this._reactionsMap.get(h);e.reactedByMyself=1===a,s.emitOuterEvent(n.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:n.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:d,reactionList:[e]}})}}_generatePartialUserInfo({userIDList:e,userProfileMap:t}){const s=[];return null==e||e.forEach((e=>{t.has(e)&&s.push(t.get(e))})),s}_generateMessageID(e){const{messageSequence:t,messageKey:s,messageIDMap:n}=e;return s?n.get(s):n.get(t)}_generateMessageKeyList(e,t){const{constants:s}=this._core,n=e[0],{conversationType:o}=n;let i=[];return o===s.OuterConstant.CONV_C2C?i=e.map((e=>{const{clientSequence:s,random:n,time:o,ID:i}=e,r=`${s}_${n}_${o}`;return t.set(r,i),r})):o===s.OuterConstant.CONV_GROUP&&(i=e.map((e=>{const{ID:s,sequence:n}=e;return t.set(n,s),n}))),i}};var ao=new class{init(e){this._core=e;const{helper:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:n,GROUP_MESSAGE_READ_RECEIPT:o},notificationCenter:i}=e;t.registerApi({apiName:"sendMessageReadReceipt",context:this}),t.registerApi({apiName:"getMessageReadReceiptList",context:this}),t.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),i.subscribeInnerEvent(s,n,this._handleC2CMessageReadReceipt,this),i.subscribeInnerEvent(s,o,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(e){return a(this,void 0,void 0,(function*(){const{common:t,constants:s}=this._core,n=this._filterValidMessageSendByOther(e);if(0===n.length)throw new t.ChatError({code:s.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{const{conversationType:e}=n[0];return e===s.OuterConstant.CONV_C2C?yield function(e){return a(this,void 0,void 0,(function*(){const{common:t,constants:s}=wn.core,n=e[0].conversationID.replace(s.OuterConstant.CONV_C2C,""),o=e.map((e=>{const{from:t,to:s,sequence:n,random:o,time:i,clientTime:r}=e;return{From_Account:t,To_Account:s,MsgSeq:n,MsgRandom:o,MsgTime:i,MsgClientTime:r}})),i={Peer_Account:n,C2CMsgInfo:o};return t.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:i})}))}(n):yield function(e){return a(this,void 0,void 0,(function*(){const{common:t,constants:s}=wn.core,n={GroupId:e[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:e.map((e=>({MsgSeq:e.sequence})))};return t.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:n})}))}(n),{code:0,data:{}}}catch(e){const{errorCode:s,errorInfo:n}=e;throw new t.ChatError({code:s,message:n})}}))}getMessageReadReceiptList(e){return a(this,void 0,void 0,(function*(){const{common:t,constants:s}=this._core;try{const{conversationType:t}=e[0];if(t===s.OuterConstant.CONV_GROUP){const t=this._filterValidMessageSendByMe(e);if((null==t?void 0:t.length)>0){const s=yield function(e){return a(this,void 0,void 0,(function*(){const{common:t,constants:s}=wn.core,n={GroupId:e[0].conversationID.replace(s.OuterConstant.CONV_GROUP,""),MsgSeqList:e.map((e=>({MsgSeq:e.sequence})))};return t.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:n})}))}(t),{GroupMsgReceiptList:n}=s||{};this._updateGroupMessagesReadReceiptInfo({messageList:e,readReceiptList:n})}}return{code:0,data:{messageList:e}}}catch(e){const{errorCode:s,errorInfo:n}=e;throw new t.ChatError({code:s,message:n})}}))}getGroupMessageReadMemberList(e){return a(this,void 0,void 0,(function*(){const{constants:t,common:s}=this._core,{message:n,filter:o=Yn.READ,cursor:i=""}=e,{conversationID:r,sequence:c,ID:l}=n,u=r.replace(t.OuterConstant.CONV_GROUP,""),d=e.count>=100?100:e.count;try{const e=yield function(e){return a(this,void 0,void 0,(function*(){const{sequence:t,groupID:s,filter:n,cursor:o,count:i}=e,r={MsgSeq:t,GroupId:s,Filter:n,Cursor:o,Num:i};return wn.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:r})}))}({groupID:u,sequence:c,filter:o,cursor:i,count:d});if(e){const{Cursor:t,IsFinish:s,UnreadList:n,ReadList:i}=e,r={cursor:t,isCompleted:1===s,messageID:l,unreadUserIDList:[],readUserIDList:[]};return o===Yn.READ?r.readUserIDList=i.map((e=>e.Read_Account)):o===Yn.UNREAD&&(r.unreadUserIDList=n.map((e=>e.Unread_Account))),{code:0,data:r}}}catch(e){const{errorCode:t,errorInfo:n}=e;throw new s.ChatError({code:t,message:n})}}))}_handleC2CMessageReadReceipt(e){const t=[],{constants:s,helper:n}=this._core,{C2cMsgInfo:o,PeerReadTime:i,Peer_Account:r}=e;if(n.isEmpty(o))return;const a=`${s.OuterConstant.CONV_C2C}${r}`;null==o||o.forEach((e=>{const{TinyId:s,MsgClientTime:n,MsgRandom:o}=e,c=`${s}-${n}-${o}`,l=no({conversationID:a,messageID:c});l&&!l.readReceiptInfo.isPeerRead&&(l.readReceiptInfo.isPeerRead=!0,l.readReceiptInfo.timestamp=i,t.push({userID:r,messageID:c,isPeerRead:!0,timestamp:i}))})),this._emitReadReceiptEventIfNeed(t)}_updateGroupMessagesReadReceiptInfo(e){const{messageList:t,readReceiptList:s}=e,n=new Map;t.forEach((e=>{n.set(e.sequence,e)})),null==s||s.forEach((e=>{if(0===e.Code){const{MsgSeq:t,ReadNum:s,UnreadNum:o}=e,i=n.get(t);i&&(i.readReceiptInfo.readCount=s,i.readReceiptInfo.unreadCount=o)}}))}_handleGroupMessageReadReceipt(e){const t=[],{constants:s}=this._core,{GroupTips:n}=e;n.forEach((e=>{const{MsgBody:{GroupMsgReceiptList:n},GroupInfo:{GroupId:o}}=e,i=`${s.OuterConstant.CONV_GROUP}${o}`;null==n||n.forEach((e=>{const{TinyId:s,MsgClientTime:n,MsgRandom:r,ReadNum:a,UnreadNum:c}=e,l=`${s}-${n}-${r}`,u=no({conversationID:i,messageID:l}),d={groupID:o,messageID:l,readCount:0,unreadCount:0};u&&("number"==typeof a&&(u.readReceiptInfo.readCount=a,d.readCount=a),"number"==typeof c&&(u.readReceiptInfo.unreadCount=c,d.unreadCount=c),t.push(d))}))})),this._emitReadReceiptEventIfNeed(t)}_emitReadReceiptEventIfNeed(e){const{notificationCenter:t,OuterEvent:s}=this._core;e.length>0&&t.emitOuterEvent(s.MESSAGE_READ_RECEIPT_RECEIVED,{name:s.MESSAGE_READ_RECEIPT_RECEIVED,data:e})}_filterValidMessageSendByOther(e){return this._filterNeedReadReceiptMessages(e).filter((e=>{const{from:t}=e;return t!==this._core.common.getCurrentUserID()}))}_filterValidMessageSendByMe(e){const{OuterConstant:t}=this._core.constants;return this._filterNeedReadReceiptMessages(e).filter((e=>{const{from:s,status:n}=e;return s===this._core.common.getCurrentUserID()&&n===t.MessageStatus.SUCCESS}))}_filterNeedReadReceiptMessages(e){return e.filter((e=>!0===e.needReadReceipt))}dispose(){const{InnerEvent:{MESSAGE_PUSH:e},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:t,GROUP_MESSAGE_READ_RECEIPT:s},notificationCenter:n}=this._core;n.unSubscribeInnerEvent(e,t,this._handleC2CMessageReadReceipt,this),n.unSubscribeInnerEvent(e,s,this._handleGroupMessageReadReceipt,this)}};const co=Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>"GROUP"===e||"conversationType should be GROUP."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const t=function(e){var t;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(t=null==e?void 0:e.text)||void 0===t?void 0:t.length))return"payload.text is invalid.";return!0}(e);return!0!==t?t:!((null==e?void 0:e.atUserList)&&!Array.isArray(e.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!e.startsWith("C2C")&&!e.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const{utils:{isString:t,isNumber:s}}=wn.core;return t(null==e?void 0:e.description)?s(null==e?void 0:e.longitude)?!!s(null==e?void 0:e.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"!=typeof e?"maxUserCountPerReaction is invalid.":!(e<0||e>10)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>"success"===e.status||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),lo=Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0});class uo{constructor(e){this._core=e}deleteMessage(e){return a(this,void 0,void 0,(function*(){const{to:t,messageIdentifiers:s}=e,n="openim.delete_c2c_msg_ramble",o={From_Account:this._core.common.getCurrentUserID(),To_Account:t,MsgKeyList:s},i=this._core.helper.generateProtocolData({servcmd:n,data:o}),r=`${i.head.seq}${n}`;return this._core.channel.sendPacket(i,{requestId:r})}))}revokeMessage(e){return a(this,void 0,void 0,(function*(){const{to:t,from:s,sequence:n,time:o,random:i}=e,r="openim.msgwithdraw",a={MsgInfo:{From_Account:s,To_Account:t,MsgSeq:n,MsgRandom:i,MsgTimeStamp:o}},c=this._core.helper.generateProtocolData({servcmd:r,data:a}),l=`${c.head.seq}${r}`;return this._core.channel.sendPacket(c,{requestId:l})}))}}class ho{constructor(e){this._core=e}deleteMessage(e){return a(this,void 0,void 0,(function*(){const{to:t,messageIdentifiers:s}=e,n="group_open_http_svc.delete_group_ramble_msg_by_seq",o={GroupId:t,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:s},i=this._core.helper.generateProtocolData({servcmd:n,data:o}),r=`${i.head.seq}${n}`;return this._core.channel.sendPacket(i,{requestId:r})}))}revokeMessage(e){return a(this,void 0,void 0,(function*(){const{to:t,sequence:s}=e,n="group_open_http_svc.group_msg_recall",o={GroupId:t,MsgSeqList:[{MsgSeq:s}]},i=this._core.helper.generateProtocolData({servcmd:n,data:o}),r=`${i.head.seq}${n}`;return this._core.channel.sendPacket(i,{requestId:r})}))}}class go{constructor(e){this._core=e}generateRevokeMessage(e){const{conversationID:t,sequence:s,random:n,tinyID:o,clientTime:i,revokeReason:r,revoker:a}=e;let c={};const{messageDataHandler:l}=this._core.message;return c=l.revokeMessage({conversationID:t,sequence:s,random:n,revoker:a}),c||(c={conversationID:t,sequence:s},o&&i&&n&&(c.ID=`${o}-${i}-${n}`)),c=Object.assign(Object.assign({},c),{revoker:a,revokeReason:r,revokerInfo:{userID:a,nick:"",avatar:""}}),c}updateRevokerInfo(e){return a(this,void 0,void 0,(function*(){const t=e.map((e=>e.revoker));try{const s=yield this._fetchUserInfos(t);s&&e.forEach((e=>{const{revoker:t}=e;s[t]&&(e.revokerInfo.nick=s[t].nick||"",e.revokerInfo.avatar=s[t].avatar||"",e.revokerInfo.userID=t)}))}catch(e){console.debug(e)}}))}filterValidMessages(e){return e.filter((e=>{const t=!this._core.helper.isEmpty(null==e?void 0:e.getElements()),s=1===(null==e?void 0:e.isPlaceMessage);if(!t){this._core.ssoLog.createSSOLogData({method:"emptyMessageBody"}).setLogInfo({message:`from:${e.from} to:${e.to} sequence:${e.sequence}`}).end()}return t&&!s}))}_fetchUserInfos(e){return a(this,void 0,void 0,(function*(){var t,s;const n=yield null===(t=this._core.user.userProfile)||void 0===t?void 0:t.getUserProfile({userIDList:e});return(null==n?void 0:n.data)?null===(s=n.data)||void 0===s?void 0:s.reduce(((e,{userID:t,nick:s,avatar:n})=>(e[t]={nick:s||"",avatar:n||""},e)),{}):null}))}}var po=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new ho(e),this._c2cMessageAction=new uo(e),this._messageHelper=new go(e);const{helper:t}=e;t.registerApi({apiName:"deleteMessage",context:this}),t.registerApi({apiName:"revokeMessage",context:this}),t.registerApi({apiName:"resendMessage",context:this}),t.registerApi({apiName:"findMessage",context:this})}deleteMessage(e){return a(this,void 0,void 0,(function*(){let t=[],s=[];const{conversationID:n,conversationType:o}=e[0],i=n.replace(o,"");if("@TIM#SYSTEM"===o)throw new this._core.helper.ChatError({code:zn});if(e.forEach((e=>{const{conversationID:i,conversationType:r,status:a,_onlineOnlyFlag:c,sequence:l,random:u,time:d}=e||{};if("success"===a&&i===n&&r===o){if(!c){const e="C2C"===r?`${l}_${u}_${d}`:String(l);t.push(e)}s.push(e)}})),0===t.length)return this._handleDeleteMessageSuccess(s),{code:0,data:{messageList:s}};t.length>30&&(t=t.slice(0,30),s=s.slice(0,30));try{return"C2C"===o?yield this._c2cMessageAction.deleteMessage({to:i,messageIdentifiers:t}):yield this._groupMessageAction.deleteMessage({to:i,messageIdentifiers:t}),this._handleDeleteMessageSuccess(s),{code:0,data:{messageList:s}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:t})}}))}revokeMessage(e){return a(this,void 0,void 0,(function*(){var t;const s=this._core.ssoLog.createSSOLogData({method:"revokeMessage"}),{conversationType:n,isRevoked:o}=e;let i=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"});s.setLogInfo({message:`type:${e.type} from:${e.from} to:${e.to}`});try{if(i="C2C"===n?yield this._c2cMessageAction.revokeMessage(e):yield this._groupMessageAction.revokeMessage(e),i){const{RecallRetList:n}=i,o=(null===(t=null==n?void 0:n[0])||void 0===t?void 0:t.RetCode)||0;if(0!==o)throw new this._core.helper.ChatError({code:o});return s.end(),yield this._handleRevokeMessageSuccess(e),{code:0,data:{message:e}}}}catch(e){const{errorCode:t}=e,s=new this._core.helper.ChatError({functionName:"revokeMessage",code:t});throw this._core.ssoLog.getSSOLogData("revokeMessage").setError(s).end(),s}}))}resendMessage(e,t){return a(this,void 0,void 0,(function*(){var s,n;return e.isResend=!0,e.status="unSend",null===(n=null===(s=this._core)||void 0===s?void 0:s.apiMap)||void 0===n?void 0:n.sendMessage(e,t)}))}findMessage(e){return this._core.message.messageDataHandler.findMessage(e)}_handleDeleteMessageSuccess(e){0!==e.length&&(e.forEach((e=>{e.isDeleted=!0;const t=this._core.message.messageDataHandler.getLocalMessageList(e.conversationID);null==t||t.forEach((t=>{t.ID===e.ID&&(t.isDeleted=!0)}))})),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.MESSAGE_DELETED,e[0].conversationID))}_handleRevokeMessageSuccess(e){return a(this,void 0,void 0,(function*(){var t;const s=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,{conversationID:n,sequence:o,random:i}=e;this._core.message.messageDataHandler.revokeMessage({conversationID:n,sequence:o,random:i,revoker:s}),yield this._messageHelper.updateRevokerInfo([e])}))}};class _o{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Index:s,Data:n}=t;return new _o({index:s,data:n})}constructor(e){this.type=Pn.MSG_FACE;const{index:t,data:s}=e;this.content={index:t,data:s}}validateBeforeSend(){var e,t;return"number"==typeof(null===(e=this.content)||void 0===e?void 0:e.index)&&"string"==typeof(null===(t=this.content)||void 0===t?void 0:t.data)?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{index:n,data:o}=s;return{MsgType:this.type,MsgContent:{Index:n,Data:o}}}}class mo{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Desc:s,Longitude:n,Latitude:o}=t;return new mo({description:s,longitude:n,latitude:o})}constructor(e){this.type=Pn.MSG_LOCATION;const{description:t,longitude:s,latitude:n}=e;this.content={description:t,longitude:s,latitude:n}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{description:n,longitude:o,latitude:i}=s;return{MsgType:this.type,MsgContent:{Desc:n,Longitude:o,Latitude:i}}}}var vo=new class{init(e){this._core=e,e.message.messageFactory.registerElementClass(Pn.MSG_FACE,_o),e.message.messageFactory.registerElementClass(Pn.MSG_LOCATION,mo),e.helper.registerApi({apiName:"createFaceMessage",context:this}),e.helper.registerApi({apiName:"createTextAtMessage",context:this}),e.helper.registerApi({apiName:"createForwardMessage",context:this}),e.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(e){if(!e)return null;const{index:t,data:s}=(null==e?void 0:e.payload)||{},n=new _o({index:t,data:s}),o=this._core.common.getCurrentUserID(),i=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:o}));return i.setElement(n),i}createTextAtMessage(e){const{atUserList:t}=(null==e?void 0:e.payload)||{},s=this._core.apiMap.createTextMessage(e),{OuterConstant:n}=this._core;if(!s)return null;if(Array.isArray(t)){const e=[],o=[];t.forEach((t=>{t!==n.MSG_AT_ALL?(e.push({GroupAtAllFlag:Fn,GroupAt_Account:t}),o.push(t)):(e.push({GroupAtAllFlag:$n}),o.push(n.MSG_AT_ALL))})),s._groupAtInfoList=e,s.atUserList=o}return s}createForwardMessage(e){const{helper:t,OuterConstant:s}=this._core,{to:n,conversationType:o,priority:i,payload:r,needReadReceipt:a,receiverList:c,cloudCustomData:l="",isSupportExtension:u=!1}=e;if(!Array.isArray(r._elements))throw new t.ChatError({functionName:"createForwardMessage",code:2454});if(r.type===s.MSG_GRP_TIP)throw new t.ChatError({functionName:"createForwardMessage",code:2453});const d=this._core.common.getCurrentUserID(),h=this._core.message.messageFactory.createMessage({to:n,from:d,conversationType:o,isPlaceMessage:0,priority:i,payload:r,needReadReceipt:a,isSupportExtension:u,cloudCustomData:l,receiverList:c});return h.setRelayFlag(!0),h.setElement(r._elements[0]),h}createLocationMessage(e){if(!e)return null;const{description:t,longitude:s,latitude:n}=(null==e?void 0:e.payload)||{},o=new mo({description:t,longitude:s,latitude:n}),i=this._core.common.getCurrentUserID(),r=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:i}));return r.setElement(o),r}};let fo=class{init(e){this._messageHelper=new go(e),this._core=e;const{notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_REVOKED_MESSAGE:n},helper:{registerWorkflowStep:o},constants:{WORKFLOW_NAME:i,WORKFLOW_STEP:r}}=e;t.subscribeInnerEvent(s,n,this._handleC2CNotifyMessage,this),o(i.SYNC_SERVER_INFO_AFTER_RE_ONLINE,r.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(e){const{C2cNotifyMsgArray:t}=e;null==t||t.forEach((e=>{Object.keys(e).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(e)}))}_handleC2CRevokeMessage(e){return a(this,void 0,void 0,(function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:t}}=e;yield this._parseAndEmitC2CRevokedMessages(t)}catch(e){console.debug(e)}}))}_parseAndEmitC2CRevokedMessages(e){return a(this,void 0,void 0,(function*(){const t=[],{notificationCenter:s,OuterEvent:n,common:{getCurrentUserID:o}}=this._core;e.forEach((e=>{const{MsgRand:s,MsgSeq:n,To_Account:i,From_Account:r,RevokerInfo:{Revoker_Account:a,Revoke_Reason:c,Reason:l=c}}=e,u=o()===r?`C2C${i}`:`C2C${r}`,d=this._messageHelper.generateRevokeMessage({conversationID:u,sequence:n,random:s,revoker:a,revokeReason:l});t.push(d)})),t.length>0&&(yield this._messageHelper.updateRevokerInfo(t),s.emitOuterEvent(n.MESSAGE_REVOKED,{name:n.MESSAGE_REVOKED,data:t}))}))}_handleC2CRevokeMessagesFromUnreadMessageSync(e){return a(this,void 0,void 0,(function*(){const{revokedMessageList:t}=e.result;yield this._parseAndEmitC2CRevokedMessages(t)}))}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{C2C_REVOKED_MESSAGE:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleC2CNotifyMessage,this)}},Io=class{init(e){this._messageHelper=new go(e),this._core=e;const{notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{GROUP_MESSAGE_REVOKED:n}}=e;t.subscribeInnerEvent(s,n,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(e){const{GroupTips:t}=e;null==t||t.forEach((e=>{var t;Array.isArray(null===(t=null==e?void 0:e.MsgBody)||void 0===t?void 0:t.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(e)}))}_handleGroupRevokeMessage(e){return a(this,void 0,void 0,(function*(){try{const{RevokerInfo:t,MsgBody:{GroupWithdrawInfoArray:s}}=e,n=[],{notificationCenter:o,OuterEvent:i,InnerEvent:r}=this._core;s.forEach((e=>{const{Random:s,MsgSeq:o,GroupId:i,MsgClientTime:r,TinyId:a,TopicId:c,RevokerInfo:{Revoker_Account:l=(null==t?void 0:t.Revoker_Account)||"",Reason:u=(null==t?void 0:t.Reason)||""}}=e,d=c?`GROUP${c}`:`GROUP${i}`,h=this._messageHelper.generateRevokeMessage({conversationID:d,sequence:o,random:s,tinyID:a,clientTime:r,revoker:l,revokeReason:u});n.push(h)})),0!==n.length&&(yield this._messageHelper.updateRevokerInfo(n),o.emitOuterEvent(i.MESSAGE_REVOKED,{name:i.MESSAGE_REVOKED,data:n}))}catch(e){console.debug(e)}}))}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}};var So=new class{constructor(){this._c2cMessageReceiver=new fo,this._groupMessageReceiver=new Io}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};class Eo{constructor(e){this._lastMessageSequenceMapOnDisconnect=new Map,this._core=e,this._messageHelper=new go(e)}getRoamingMessagesByAnchor(e){return a(this,void 0,void 0,(function*(){try{const t=this._core.ssoLog.createSSOLogData({method:"getRoamingMessagesByAnchor"}),{conversationID:s,count:n,direction:o,sequence:i}=e,r=s.replace(Zn,"");let a=i;if(o===Gn.BACKWARD){if("number"!=typeof i)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};a=i+n-1}const c={GroupId:r,ReqMsgNumber:n,WithRecalledMsg:1,Version:1};a&&(c.ReqMsgSeq=a);const l="group_open_http_svc.group_msg_get",u=this._core.helper.generateProtocolData({servcmd:l,data:c}),d=`${u.head.seq}${l}`,h=yield this._core.channel.sendPacket(u,{requestId:d});if(h){const{RspMsgList:e=[],NextReqMsgSeq:s=0,IsFinished:n,InvisibleMsgSeq:c}=h;t.setLogInfo({message:`groupID:${r} sequence:${i} reqSeq:${a} direction:${o}\n complete:${n} nextSequence:${s} remoteMsgCount:${e.length} invisibleSequenceList:${c}`}).end();const l=[];for(let t=0;t<e.length;t++){const s=e[t],n=this._parseMessage(s);l.push(n)}l.reverse();const u=[Un.NO_MORE_DATA,Un.DATA_HAS_EXPIRED].includes(n);return{messageList:this._messageHelper.filterValidMessages(l),invisibleSequenceList:c,nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:u}}}catch(e){const t=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getRoamingMessagesByAnchor").setError(t).end()}}))}recoverHistoryMessage(e){return a(this,void 0,void 0,(function*(){const{message:{messageReceiver:t,messageDataHandler:s},notificationCenter:n,OuterEvent:o,constants:{OuterConstant:i}}=this._core,r=[];null==e||e.forEach((e=>a(this,void 0,void 0,(function*(){const{conversationID:a,lastMessage:c}=e;let l=this._getLocalLastMessageSequence(a);const u=c.lastSequence;if(this._shouldRecoverHistory({localLastMessageSequence:l,serverLastMessageSequence:u})){const e=u-l;let i=!1;const r=Math.ceil(e/20);for(let e=0;e<r;e++)try{const e=u-l,r=Math.min(20,e),c=yield this.getRoamingMessagesByAnchor({conversationID:a,sequence:l+r,direction:Gn.FORWARD,count:r}),{nextReqMessageIDFromServer:d,hasNoMoreHistoryMessage:h,messageList:g}=c;i=h&&d<0,l=g[g.length-1].sequence;const p=[];if(Array.isArray(g)&&(g.forEach((e=>{t.groupMessageReceiver.updateMessageProfile(e);s.storeConversationMessage(e)&&p.push(e)})),p.length>0&&n.emitOuterEvent(o.MESSAGE_RECEIVED,{name:o.MESSAGE_RECEIVED,data:p})),i)break}catch(e){console.debug(e);break}}else r.push(a.replace(i.CONV_GROUP,""))})))),this._recoverGroupRevokeNotice(r)}))}updateLastMessageSequenceMapOnDisconnect(){const e=this._core.message.messageDataHandler.getContinuousMessagesByConversation();for(const[t,s]of e){if(t.startsWith("C2C"))continue;const e=Array.from(s.values());if((null==e?void 0:e.length)>0){const s=e[e.length-1].sequence;this._lastMessageSequenceMapOnDisconnect.set(t,s)}}}_shouldRecoverHistory(e){const{localLastMessageSequence:t,serverLastMessageSequence:s}=e;if("number"!=typeof t||"number"!=typeof s)return!1;const n=s-t;return 0!==s&&t&&(n>=Qn&&n<eo)}_getLocalLastMessageSequence(e){if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const t=this._core.message.messageDataHandler.getLocalMessageList(e),s=t[t.length-1];return null==s?void 0:s.sequence}_parseMessage(e){const{constants:{OuterConstant:t}}=this._core,s=Zn;4===e.Event&&(e.MsgBody.MsgType=t.MSG_GRP_TIP);const n=this._core.message.messageHelper.parseServerGroupMessage(e),o=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},n),{conversationType:s,flow:"in"}));return o.setElement(n.elements),o}_recoverGroupRevokeNotice(e){const t=this._filterValidGroupIDList(e);if(0===t.length)return;const s=Math.min(Math.ceil(t.length/10),5);Promise.all(Array.from({length:s},((e,s)=>{const n=10*s,o=Math.min(n+10,t.length);return this._fetchGroupRevokeNotice(t.slice(n,o))}))).catch((e=>console.error(e)))}_fetchGroupRevokeNotice(e){return a(this,void 0,void 0,(function*(){var t;try{const s=yield function(e){return a(this,void 0,void 0,(function*(){const{appStore:t,constants:{OuterConstant:s},common:n}=wn.core,o=t.groupStore.getGroupMap(),i=e.map((e=>{const t=o.get(e);return{NotifyType:1,Limit:20,Type:n.isCommunity({type:t.type,groupID:e})?s.GRP_COMMUNITY:void 0,GroupId:e,BeginTime:(null==t?void 0:t._lastRevokedTime)||0,EndTime:1e3*wn.core.common.timeManager.getServerTimeMs()}}))||[],r={NotifyReqList:i};return n.buildAndSendPacket({servcmd:"group_open_http_svc.batch_get_group_notify",data:r})}))}(e);if(s){const e=[];null===(t=null==s?void 0:s.NotifyRspList)||void 0===t||t.forEach((t=>{const{GroupId:s,NotifyMsgList:n}=t,o=this._parseServerRevokeMessageList({groupID:s,serverRevokeMessageList:n});e.push(...o)})),0!==e.length&&(yield this._emitMessageRevokedEvent(e))}}catch(e){console.error(e)}}))}_parseServerRevokeMessageList(e){const{serverRevokeMessageList:t,groupID:s}=e,n=[];return null==t||t.forEach((e=>{const{ClientTime:t,MsgSeq:o,Random:i,RevokerInfo:{Revoker_Account:r="",Reason:a=""}}=e,c=`GROUP${s}`,l=this._messageHelper.generateRevokeMessage({conversationID:c,sequence:o,random:i,clientTime:t,revoker:r,revokeReason:a});n.push(l)})),n}_filterValidGroupIDList(e){const{constants:{OuterConstant:t}}=this._core,s=this._core.appStore.groupStore.getGroupMap();return(null==e?void 0:e.filter((e=>{if(!s.has(e))return!1;const n=s.get(e);return(null==n?void 0:n.type)!==t.GRP_AVCHATROOM&&!(null==n?void 0:n.isSupportTopic)})))||[]}_emitMessageRevokedEvent(e){return a(this,void 0,void 0,(function*(){const{notificationCenter:t,OuterEvent:s}=this._core;yield this._messageHelper.updateRevokerInfo(e),t.emitOuterEvent(s.MESSAGE_REVOKED,{name:s.MESSAGE_REVOKED,data:e})}))}}class Co{constructor(e){this._historyMessageListFetchAnchors=new Map,this._core=e,this._messageHelper=new go(e)}getRoamingMessagesByAnchor(e){return a(this,void 0,void 0,(function*(){var t;try{const{conversationID:s,count:n,messageID:o,time:i,direction:r}=e;let c=i,l="";if(!i){const e=o?this._core.message.messageDataHandler.findMessage(o):null;if(c=(null==e?void 0:e.time)||0,o&&this._historyMessageListFetchAnchors.has(s)){const e=this._historyMessageListFetchAnchors.get(s);c=e.lastMessageTime,l=e.messageKey}}const u=s.replace(Jn,""),d=yield function(e){return a(this,void 0,void 0,(function*(){const{peerAccount:t,count:s,lastMessageTime:n,messageKey:o,direction:i}=e,r={Peer_Account:t,MaxCnt:s,WithRecalledMsg:1,LastMsgTime:n,MsgKey:o,GetDirection:i};return wn.core.common.buildAndSendPacket({servcmd:"openim.getroammsg",data:r})}))}({count:n,lastMessageTime:c,messageKey:l,peerAccount:u,direction:r});if(d){const{MsgList:e=[],Complete:n,MsgKey:o,LastMsgTime:i}=d;this._historyMessageListFetchAnchors.set(s,{messageKey:o,lastMessageTime:i});const r=[];for(let t=0;t<e.length;t++){const s=e[t],n=this._parseMessage(s);r.push(n)}const a=this._messageHelper.filterValidMessages(r);return{messageList:a,nextReqMessageIDFromServer:null===(t=a[0])||void 0===t?void 0:t.ID,lastMessageTime:i,hasNoMoreHistoryMessage:1===n}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}}))}_parseMessage(e){const t=Jn,s=this._core.message.messageHelper.parseServerPushMessage(e),n=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:"in"}));return n.setElement(s.elements),n}}var yo=new class{constructor(){this._clearedConversations=new Set,this._fetchedCompleteConversations=new Set}init(e){this._core=e,this._groupMessageHistory=new Eo(e),this._c2cMessageHistory=new Co(e),this._messageHelper=new go(e);const{InnerEvent:t,notificationCenter:s,constants:n}=e;e.helper.registerApi({apiName:"getMessageList",context:this}),e.helper.registerApi({apiName:"getMessageListHopping",context:this}),e.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.WORKFLOW_STEP.HISTORY_MESSAGE_RECOVER,this._recoverHistoryMessage,this),s.subscribeInnerEvent(t.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}getMessageList(e){return a(this,void 0,void 0,(function*(){try{const t=this._core.ssoLog.createSSOLogData({method:"getMessageList"});let{conversationID:s,nextReqMessageID:n}=e;const o=Xn;if("@TIM#SYSTEM"===s)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const i=this._getAvailableLocalMessagesCount({conversationID:s,nextReqMessageID:n});if(this._needFetchHistoryMessageList({conversationID:s,availableLocalMessagesCount:i,targetCount:o})){let e=null;if(s.startsWith(Zn)?e=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:s,sequence:Number(n),count:o,direction:Gn.FORWARD}):s.startsWith(Jn)&&(e=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:s,messageID:n,count:o,direction:Gn.FORWARD})),e){const{nextReqMessageIDFromServer:o,hasNoMoreHistoryMessage:r,messageList:a}=e,c=this._core.message.messageDataHandler.prependLocalMessageList({messageList:a,conversationID:s});!function(e){const{appStore:t,message:s,OuterConstant:n}=wn.core,o=t.conversationStore.getConversation(e),i=s.messageDataHandler.getLocalMessageList(e);if(!o||0===i.length||e===n.CONV_SYSTEM)return;const r=[];for(let e=0;e<i.length;e++)"in"!==i[e].flow?"out"!==i[e].flow||i[e].isRead||i[e].setIsRead(!0):r.push(i[e]);let a=0;if(o.type===n.CONV_C2C){const e=r.slice(-o.unreadCount).filter((e=>e.isRevoked)).length;a=r.length-o.unreadCount-e}else a=r.length-o.unreadCount;for(let e=0;e<a&&!r[e].isRead;e++)r[e].setIsRead(!0)}(s),yield so(s),s.startsWith(Jn)&&(yield to({messageList:a,conversationID:s}));const l=this._core.message.messageDataHandler.getLocalMessageList(s).slice(0,c.length+i),u=l.filter((e=>e.isRevoked));yield this._messageHelper.updateRevokerInfo(u);const d={nextReqMessageID:r?"":String(o),messageList:l,isCompleted:r},h=l.map((e=>e.sequence));return t.setLogInfo({message:`conversationID: ${s} nextReqMessageID: ${n} \n availableLocalMessagesCount: ${i} sequenceList: ${JSON.stringify(h)} `}).end(),{code:0,data:d}}return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}}}t.setLogInfo({message:`conversationID: ${s} nextReqMessageID: ${n} availableLocalMessagesCount: ${i}}`}).end();return{code:0,data:yield this._getMessageListFromMemory({conversationID:s,nextReqMessageID:n,count:o})}}catch(e){const t=new this._core.helper.ChatError({code:null==e?void 0:e.code});this._core.ssoLog.getSSOLogData("getMessageList").setError(t).end(),console.debug(t)}}))}getMessageListHopping(e){return a(this,void 0,void 0,(function*(){var t,s;const{conversationID:n,sequence:o,time:i,direction:r=Gn.FORWARD}=e,{isEmpty:a}=this._core.helper;if(![Gn.BACKWARD,Gn.FORWARD].includes(r))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:c=Xn}=e;c=c>Xn?Xn:c;let l=null;if(n.startsWith(Zn)){if(l=yield this._groupMessageHistory.getRoamingMessagesByAnchor({conversationID:n,sequence:o,count:c,direction:r}),l){const{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:n,messageList:i,invisibleSequenceList:c}=l;if(this._core.message.messageDataHandler.storeSparseMessageList(i),r===Gn.FORWARD){const t=n&&e<1;return{code:0,data:{messageList:i,isCompleted:t,nextMessageSeq:t?"":e}}}if(r===Gn.BACKWARD){if(a(i)&&a(c))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const e=(null===(t=null==i?void 0:i[i.length-1])||void 0===t?void 0:t.sequence)||0,n=(null===(s=null==c?void 0:c[c.length-1])||void 0===s?void 0:s.sequence)||0;return{code:0,data:{messageList:i.filter((e=>e.sequence>=o)),isCompleted:!1,nextMessageSeq:Math.max(e,n)+1}}}return{code:0,data:l}}}else if(n.startsWith(Jn)&&(l=yield this._c2cMessageHistory.getRoamingMessagesByAnchor({conversationID:n,count:c+1,time:i,direction:r}),l)){const{messageList:e,lastMessageTime:t,hasNoMoreHistoryMessage:s}=l;return s||(r===Gn.FORWARD?e.shift():e.pop()),this._core.message.messageDataHandler.storeSparseMessageList(e),{code:0,data:{messageList:e,isCompleted:s,nextMessageTime:s?"":t}}}}))}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:t}){const s=this._core.message.messageDataHandler.getLocalMessageList(e),{length:n}=s;if(!t)return n;let o=-1;return(null==e?void 0:e.startsWith(Jn))?o=s.findIndex((e=>e.ID===t)):(null==e?void 0:e.startsWith(Zn))&&(o=s.findIndex((e=>t.includes("-")?e.ID===t:String(e.sequence)===t))),-1===o?0:o}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:t,targetCount:s}){return!!this._clearedConversations.has(e)||t<=s&&!this._fetchedCompleteConversations.has(e)}_getMessageListFromMemory(e){return a(this,arguments,void 0,(function*({conversationID:e,nextReqMessageID:t,count:s}){const n=this._core.message.messageDataHandler.getLocalMessageList(e),o=n.length;let i=o,r={isCompleted:!1,nextReqMessageID:"",messageList:[]},a=0,c=o;return t?t&&(c=n.findIndex((s=>e.startsWith(Jn)?s.ID===t:String(s.sequence)===t)),a=c>s?c-s:0,i=c):a=o>s?o-s:0,r.nextReqMessageID=0===a?"":this._generateNextReqMessageID({conversationID:e,targetIndex:a}),r.messageList=n.slice(a,c),r.isCompleted=i<=s,e.startsWith(Jn)&&(yield so(e),yield to({messageList:r.messageList,conversationID:e})),r}))}_generateNextReqMessageID({conversationID:e,targetIndex:t}){const s=this._core.message.messageDataHandler.getLocalMessageList(e);return e.startsWith("C2C")?s[t].ID:String(s[t].sequence)}_recoverHistoryMessage(){const{appStore:e,constants:{OuterConstant:{GRP_AVCHATROOM:t}}}=this._core,s=e.conversationStore.getConversationMap()||{};if(s instanceof Map){const e=[...s.values()].filter((e=>e.type===Zn&&e.groupProfile.type!==t));this._groupMessageHistory.recoverHistoryMessage(e)}}_handleSocketDisconnected(){this._groupMessageHistory.updateLastMessageSequenceMapOnDisconnect()}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.SOCKET_DISCONNECTED,this._handleSocketDisconnected,this)}};var Mo=new class{constructor(){this._core=null}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"translateText",context:this})}translateText(e){return a(this,void 0,void 0,(function*(){try{const{sourceLanguage:t,sourceTextList:s,targetLanguage:n}=e,o=yield function(e,t){return a(this,void 0,void 0,(function*(){var s,n;const{sourceTextList:o,sourceLanguage:i,targetLanguage:r}=e,{store:a,helper:c,channel:l}=t,u="im_open_translate.ws_batch_trans_text",d={SourceText:o,Source:i,Target:r,FromAccount:null===(s=a.get("login"))||void 0===s?void 0:s.tinyID,SDKAppID:null===(n=a.get("instance"))||void 0===n?void 0:n.sdkAppId},h=c.generateProtocolData({servcmd:u,data:d}),g=`${h.head.seq}${u}`,p=yield l.sendPacket(h,{requestId:g});if(p){const{CmdErrorCode:e,TargetText:t}=p;return{cmdErrorCode:e,translatedTextList:t}}}))}({sourceLanguage:t,sourceTextList:s,targetLanguage:n},this._core);if(o){const{cmdErrorCode:{ErrorCode:e,ErrorInfo:t},translatedTextList:s}=o;if(0===e)return{code:0,data:{translatedTextList:s}};throw{errorCode:e,errorInfo:t,message:t}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};throw new this._core.helper.ChatError({functionName:"translateText",code:t,message:s})}}))}};var Oo=new class{init(e){this._core=e,e.common.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(e){return a(this,void 0,void 0,(function*(){var t,s;const{message:n,language:o=qn.ZH_PY}=e;let{url:i}=n.payload||{};const r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userID;n.from===r&&"out"===n.flow&&(i=n.payload.remoteAudioUrl),this._validateVoiceFormat(i);const a=(null===(s=Hn.exec(i))||void 0===s?void 0:s[1])||"mp3",c=Kn[o]||Wn;try{const e=yield function(e){var t;const{store:s,common:n}=wn.core,{url:o,format:i,serverLanguageType:r}=e,a={BytesUrl:o,BytesEngServiceType:r,BytesVoiceFormat:i,Uint32Sdkappid:null===(t=s.get("instance"))||void 0===t?void 0:t.sdkAppId,Uint64SourceType:0};return n.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:a})}({url:i,format:a,serverLanguageType:c});if(e){const{CmdErrorCode:t,BytesResult:s}=e;if(0===t.ErrorCode)return{code:0,data:{result:s}};throw{code:t.ErrorCode,message:t.ErrorInfo}}}catch(e){const{code:t,message:s}=e||{},n=new this._core.common.ChatError({functionName:"convertVoiceToText",code:t,message:s});console.error(n),this._core.ssoLog.createSSOLogData({method:"convertVoiceToText"}).setError(n).end()}}))}_validateVoiceFormat(e){if(!Hn.test(e))throw new this._core.common.ChatError({code:2119})}};class To{constructor(e){const{constants:t,common:s,utils:n}=wn.core,{CONV_C2C:o,CONV_GROUP:i}=t.OuterConstant,{ID:r,tinyID:a,from:c,to:l,clientTime:u=s.timeManager.getServerTimeSeconds()||0,random:d,sequence:h,cloudCustomData:g="",nick:p="",avatar:_="",clientSequence:m,conversationType:v,groupID:f,_elements:I,time:S}=e;this.ID=r||`${a}-${u}-${d}`,this.messageRandom=d,this.from=c,this.messageSender=c,this.time=S,this.messageSequence=h,this.clientSequence=m||h,this.clientTime=u,this.cloudCustomData=g,this.messageReceiver=l,this.avatar=_,this.nick=p;const E=n.deepCopyWithMethods(I);E.forEach((e=>{e.payload=e.content,delete e.content})),this.messageBody=E,r?v.startsWith(o)?this.receiverUserID=l:v.startsWith(i)&&(this.receiverGroupID=l):f?(this.receiverGroupID=f,this.messageReceiver=f):l&&(this.receiverUserID=l,this.messageReceiver=l)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map((e=>e.transformToServerFormat({isMergerMessage:!0}))):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class Ao{static parseServerPushElement(e){const{MsgContent:t}=e,{MsgList:s=[],CompatibleText:n,AbstractList:o,Title:i,PbMsgKey:r,JsonMsgKey:a}=t||{},c=s.map((e=>io(e)));return new Ao({messageList:c,title:i,abstractList:o,compatibleText:n,pbDownloadKey:r,downloadKey:a})}constructor(e){this.type=wn.core.constants.OuterConstant.MSG_MERGER;const{messageList:t,title:s,abstractList:n,compatibleText:o,pbDownloadKey:i="",downloadKey:r="",version:a=0,layersOverLimit:c=!1}=e,l=[];t.forEach((e=>{if(e){const t=new To(e);l.push(t)}})),this.content={messageList:l,title:s,abstractList:n,compatibleText:o,version:a,downloadKey:r,pbDownloadKey:i,layersOverLimit:c}}validateBeforeSend(){const{isEmpty:e}=wn.core.helper;return e(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{abstractList:n,compatibleText:o,downloadKey:i,layersOverLimit:r,pbDownloadKey:a,title:c,version:l,messageList:u}=s;return{MsgType:this.type,MsgContent:{AbstractList:n,CompatibleText:o,JsonMsgKey:i,LayersOverLimit:r,PbMsgKey:a,Title:c,Version:l,MsgList:oo(u)}}}}var Do=new class{init(e){this._core=e;const{message:t,helper:s,constants:{OuterConstant:n}}=e;t.messageFactory.registerElementClass(n.MSG_MERGER,Ao),s.registerApi({apiName:"createMergerMessage",context:this}),s.registerApi({apiName:"sendMessage",context:this,matcher:e=>e[0].type===n.MSG_MERGER}),s.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(e){const{common:t}=this._core;if(!e)return null;const s=new Ao(e.payload),n=t.getCurrentUserID(),o=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:n}));return o.setRelayFlag(!0),o.setElement(s),o}sendMessage(e,t){return a(this,void 0,void 0,(function*(){var s,n,o;try{const i=function(e){let t="utf-8";wn.core.helper.IN_BROWSER&&document&&(t=document.charset.toLowerCase());let s,n=0,o=0;if(o=e.length,"utf-8"===t||"utf8"===t)for(let t=0;t<o;t++)s=e.codePointAt(t),s<=127?n+=1:s<=2047?n+=2:s<=65535?n+=3:(n+=4,t++);else if("utf-16"===t||"utf16"===t)for(let t=0;t<o;t++)s=e.codePointAt(t),s<=65535?n+=2:(n+=4,t++);else n=e.replace(/[^\x00-\xff]/g,"aa").length;return n}(JSON.stringify(e));let r=e,c=null;if(i>11264){r=this._core.utils.deepCopyWithMethods(e);try{const{JsonMsgKey:e,PbMsgKey:t}=yield function(e){return a(this,void 0,void 0,(function*(){const{payload:{messageList:t}}=e,s={MsgList:oo(t)};return wn.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:s})}))}(r),{payload:s}=r;c=new Ao(Object.assign(Object.assign({},s),{messageList:[],downloadKey:e,pbDownloadKey:t})),r.setElement(c)}catch(e){console.error(e)}}const{data:{message:l}}=yield null===(o=null===(n=null===(s=this._core)||void 0===s?void 0:s.message)||void 0===n?void 0:n.messageSender)||void 0===o?void 0:o.sendMessage(r,t);return c&&l.setElement(e._elements),{code:0,data:{message:l}}}catch(e){throw console.error(e),e}}))}downloadMergerMessage(e){return a(this,void 0,void 0,(function*(){try{const t=e.payload,{downloadKey:s,pbDownload:n,type:o,messageList:i}=t,c=r(t,["downloadKey","pbDownload","type","messageList"]),l=yield function(e){return a(this,void 0,void 0,(function*(){return wn.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:e}})}))}(s),{MsgList:u}=l||{},d=null==u?void 0:u.map((e=>{const t=io(e);return new To(t)}));return"function"==typeof e.isOnlineMessage?e.setElement({type:e.type,content:Object.assign({messageList:d},c)}):(e.payload.messageList=d,e.payload.downloadKey="",e.payload.pbDownloadKey=""),e}catch(e){console.error(e)}}))}};var Ro=new class{install(e){this._core=e,wn.init(e),po.init(e),vo.init(e),So.init(e),yo.init(e),ro.init(e),Mo.init(e),Oo.init(e),ao.init(e),Do.init(e),e.helper.registerValidateConfig({auth:lo,params:co}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),So.dispose(),yo.dispose(),ao.dispose()}};var bo=new class{constructor(){this._name="WebRequest"}init(e){this._core=e}request(e,t){return a(this,void 0,void 0,(function*(){var s;const{isEmpty:n}=null===(s=this._core)||void 0===s?void 0:s.utils,{downloadUrl:o="",method:i="PUT",url:r,qs:a,headers:c={},resources:l,dataType:u="text",uploadByIP:d,uploadIP:h}=e;let g=r;if(a){const e=this._queryString(a);e&&(g+=`${g.includes("?")?"&":"?"}${e}`)}const p=new XMLHttpRequest;p.open(i.toUpperCase(),g,!0),p.responseType=u;const _=Object.assign({},c);if(d&&h&&(_.host=h),!n(_))for(const e in _)_.hasOwnProperty(e)&&!["content-length","user-agent","origin","host"].includes(e.toLowerCase())&&p.setRequestHeader(e,_[e]);return p.onload=()=>{const s=this._getResponseBody(p,o,d&&h),n=this._buildResponse(p,s);if(200===p.status)t(null,n);else{if(h&&!g.includes(h))return e.url=this._domainName2IP(g,h),e.uploadByIP=!0,this.request(e,t);t({code:p.status,message:JSON.stringify(p.responseText)},n)}},p.onerror=()=>{const e=this._getResponseBody(p,o,d&&h),s=this._buildResponse(p,e),n={code:p.status,message:0===p.status?"CORS blocked or network error":JSON.stringify(p.responseText)};t(n,s)},e.onProgress&&p.upload&&(p.upload.onprogress=t=>{const{total:s,loaded:n}=t,o=Math.min(Math.floor(100*n/s),100);e.onProgress({total:s,loaded:n,percent:o/100})}),p.send(l),p}))}_buildResponse(e,t){const s={};return e.getAllResponseHeaders().trim().split("\n").forEach((e=>{if(e){const[t,n]=e.split(":").map((e=>e.trim()));s[t.toLowerCase()]=n}})),{statusCode:e.status,statusMessage:e.statusText,headers:s,data:t}}_getResponseBody(e,t,s){return 200===e.status&&t?{location:t,uploadIP:s}:{response:e.responseText,uploadIP:s}}_queryString(e,t="&",s="="){var n;const{isEmpty:o,isPlainObject:i}=null===(n=this._core)||void 0===n?void 0:n.utils;return o(e)?"":i(e)?Object.keys(e).map((n=>{const o=encodeURIComponent(n)+s;return Array.isArray(e[n])?e[n].map((e=>o+encodeURIComponent(e))).join(t):o+encodeURIComponent(e[n])})).filter(Boolean).join(t):void 0}_domainName2IP(e,t){return e.replace(/^http(s)?:\/\/(.*?)\//,`https://${t}/`)}};const No=["unknown","image","video","audio","log"];var Lo=new class{init(e){this._core=e}request(e,t){var s;const{MINI_APP_NAMESPACE:n,IN_ALIPAY_MINI_APP:o,IN_UNI_IOS_APP:i}=null===(s=this._core)||void 0===s?void 0:s.utils,{resources:a="",headers:c={},url:l,downloadUrl:u=""}=e;let d=l,h=null;const g=u?u.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!g)return void console.warn("message Invalid download URL format");const p=decodeURIComponent(g[3]),_=p.includes("?")?p.split("?")[0]:p||"",m={key:e.fileKey||_,success_action_status:200,"Content-Type":""},v={};if(i){const[e,t]=l.split("?sign=");t&&(d=`${e}?sign=${encodeURIComponent(t)}`,v.sign=decodeURIComponent(t),v.signature=decodeURIComponent(t))}let f={url:d,header:c,name:"file",filePath:a,formData:Object.assign(Object.assign({},m),v),timeout:e.timeout||3e5};if(o){const t=r(f,["name"]);f=Object.assign(Object.assign({},t),{fileName:"file",fileType:e.fileType?No[e.fileType]:"image"})}return h=n.uploadFile(Object.assign(Object.assign({},f),{success:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})},fail:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})}})),h.onProgressUpdate&&h.onProgressUpdate((t=>{e.onProgress&&e.onProgress({total:t.totalBytesExpectedToSend||0,loaded:t.totalBytesSent||0,percent:t.progress?Math.floor(t.progress)/100:0})})),h}_handleResponse(e){const{downloadUrl:t,response:s,callback:n}=e,o={};if(s.header)for(const e in s.header)s.header.hasOwnProperty(e)&&(o[e.toLowerCase()]=s.header[e]);const i=+s.statusCode;200===i?n(null,{statusCode:i,headers:o,data:Object.assign(Object.assign({},s.data),{location:t})}):n({code:i,message:JSON.stringify(s.data)},{statusCode:i,headers:o,data:void 0})}};function wo(e){return"file"===function(e){return Object.prototype.toString.call(e).match(/^\[object (.*)\]$/)[1].toLowerCase()}(e)}function Po(e){const t=e||99999999;return Math.round(Math.random()*t)}function Uo(e,t=!0,s=!0){const n=Date.now();return t?s?n-e+" ms":`${Math.round((n-e)/1e3)} s`:s?n-e:Math.round((n-e)/1e3)}function Go(e){return`${Array.from({length:8},(()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1))).join("")}-${e}`}function ko(e,t){return Math.round(Number(e)*10**t)/10**t}function Fo(e){const t=1024,s=1048576;return e<t?`${e}B`:e<s?`${Math.floor(e/t)}KB`:`${Math.floor(e/s)}MB`}function $o(e){if(e<=1048576){return`${ko(e/1024,1)}KB/s`}return`${ko(e/1048576,1)}MB/s`}const qo="TIMImageElem",xo="TIMSoundElem",Vo="TIMFileElem",Bo="TIMVideoFileElem",jo="RichMediaMessagePlugin",Wo=["rich.my-imcloud.com","imrich.qcloud.com"],Ko=1,Ho=2,Yo=3;var zo;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(zo||(zo={}));var Jo=new class{init(e){this._core=e}addAuthToUrl(e=""){if(this._isMiniProgramTempFile(e))return e;const t=function(e){return e?e.startsWith("https://")?e:e.startsWith("http://")?e.replace("http://","https://"):e:""}(e);return this.processResourceUrl(t)}removeAuthToUrl(e){return function(e,t){const[s,n]=e.split("?");if(!n)return s;const o=n.split("&").reduce(((e,s)=>{const[n,o]=s.split("=");return n&&n!==t&&(e[n]=o||""),e}),{}),i=Object.keys(o).map((e=>`${e}${o[e]?`=${o[e]}`:""}`)).join("&");return i?`${s}?${i}`:s}(e,"authKey")}_isMiniProgramTempFile(e){return!!this.getPlatformFlags().IN_MINI_APP&&Object.values(TEMP_FILE_PATTERNS).some((t=>t.test(e)))}extractFileFromInput(e){return wo(e)?e:function(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);if(null===t)return!0;let s=t;for(;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return t===s}(e)&&"undefined"!=typeof uni?Array.isArray(e.tempFiles)&&e.tempFiles.length>0?e.tempFiles[0]:null:e instanceof HTMLInputElement&&e.files&&e.files.length>0?e.files[0]:null}probeImageWidthHeight(e){return a(this,void 0,void 0,(function*(){var t;const{IN_MINI_APP:s,IN_BROWSER:n}=(null===(t=this._core)||void 0===t?void 0:t.utils)||{};return this._shouldSkipProbing()?{width:0,height:0}:n?this._probeImageDimensionsWeb(e):s?this._probeImageDimensionsMiniApp(e):void 0}))}isSimpleCos(){var e;const t=(null===(e=this._core)||void 0===e?void 0:e.store.get("cloudConfig"))||{},{simple_cos:s}=t;return"0"!==s}getFileDNList(){var e;let t=Wo;const s=(null===(e=this._core)||void 0===e?void 0:e.store.get("cloudConfig"))||{},{file_dn_list:n}=s;if(void 0===n)return t;try{JSON.parse(n).forEach((e=>{t.includes(e)||t.push(e)}))}catch(e){console.warn(e),t=Wo}return t}getPlatform(){var e;return null===(e=this._core)||void 0===e?void 0:e.utils.platform}generateUUID(e,t){var s;let n=`${this.getSDKAppID()}-${this.getCurrentUserID()}-${null===(s=this._core)||void 0===s?void 0:s.utils.randomString()}`;if(t)return`${n}.${t}`;const o=e.name||e.value||e.url||e.tempFilePath,i=o&&o.slice(o.lastIndexOf(".")+1);return i&&(n=`${n}.${i}`),n}processResourceUrl(e){if(!e)return"";let t=e;const s=this.getFileDownloadProxy(),n=this.getAuthKey(),o=this.getFileDNList();s&&(e.startsWith("http://")?t=e.replace(/^http:\/\/[^/]+/,s):e.startsWith("https://")&&(t=e.replace(/^https:\/\/[^/]+/,s)));const i=n&&-1===t.indexOf("authKey=")&&function(e,t){let s=!1;if(e){const n=e.match(/:\/\/([0-9]?\.)?(.[^/:]+)/),o=n&&n[2]||"";if(o.includes("rich-dev"))return!0;for(let e=0;e<t.length;e++)if(o.endsWith(t[e])){s=!0;break}}return s}(t,o);return i&&(t=t.indexOf("?")>-1?`${t}&authKey=${n}`:`${t}?authKey=${n}`),t}getCurrentUserID(){var e,t;return null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===t?void 0:t.userId}getSDKAppID(){var e,t;return null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("instance"))||void 0===t?void 0:t.sdkAppId}getFileDownloadProxy(){var e,t;return(null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("instance"))||void 0===t?void 0:t.fileDownloadProxy)||""}getFileUploadProxy(){var e,t;return(null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("instance"))||void 0===t?void 0:t.fileUploadProxy)||""}getAuthKey(){var e,t;return(null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("login"))||void 0===t?void 0:t.authKey)||""}isPrivateNetWork(){var e,t;return null===(t=null===(e=this._core)||void 0===e?void 0:e.store.get("instance"))||void 0===t?void 0:t.proxyServer}getPlatformFlags(){var e;const{IN_BROWSER:t,IN_MINI_APP:s,IN_RN_APP:n,IN_UNI_NATIVE_APP:o}=null===(e=this._core)||void 0===e?void 0:e.utils;return{IN_BROWSER:t,IN_MINI_APP:s,IN_RN_APP:n,IN_UNI_NATIVE_APP:o}}isEmpty(e){var t;const{isEmpty:s}=null===(t=this._core)||void 0===t?void 0:t.utils;return s(e)}_probeImageDimensionsMiniApp(e){var t;const{MINI_APP_NAMESPACE:s}=(null===(t=this._core)||void 0===t?void 0:t.utils)||{};return new Promise((t=>{s.getImageInfo({src:e,success:e=>t({width:e.width,height:e.height}),fail:()=>t({width:0,height:0})})}))}_shouldSkipProbing(){var e;const{IN_RN_APP:t,IS_IE:s,IE_VERSION:n}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};return t||s&&9===n}_probeImageDimensionsWeb(e){return new Promise((t=>{const s=new Image,n=()=>{s.onload=null,s.onerror=null,s.src=""};s.onload=()=>{t({width:s.width,height:s.height}),n()},s.onerror=()=>{t({width:0,height:0}),n()},s.src=e}))}};var Zo=new class{constructor(){this.uploadFileTryCount=0,this.maxRetries=1,this.systemClockOffset=0,this.httpRequest=null,this.uploadFileType="",this.duration=900,this.fetchCosTryCount=0}init(e){var t;this._core=e;const{IN_MINI_APP:s}=e.utils;this.httpRequest=s?Lo:bo,null===(t=this.httpRequest)||void 0===t||t.init(e)}uploadToCOS(e){return a(this,void 0,void 0,(function*(){const t=`${jo} uploadToCOS`,{file:s}=e;this.uploadFileType=e.uploadFileType,console.log(`${t} options:`,e);try{const n=Date.now(),o=yield this._createCosOptions(e),i=yield this._uploadFile(o);this._handleUploadError(i,e);const r=this._createUploadResult(s,i),a=Date.now()-n,c=Fo(s.size),l=`size:${c} time:${a}ms speed:${$o(1e3*s.size/a)}`;return console.log(`${t} ok. name:${s.name} ${l}`),{uploadOptions:o,response:r}}catch(e){throw console.warn(`${t} failed, error:`,e),e}}))}_handleUploadError(e,t){var s,n;const{ChatError:o}=null===(s=this._core)||void 0===s?void 0:s.helper;if(403===e.statusCode)throw Uo(Date.now(),!1),t.url,(null===(n=null==e?void 0:e.data)||void 0===n?void 0:n.uploadIP)&&e.data.uploadIP,new o({message:"Upload failed with status 403"})}_createUploadResult(e,t){return{fileName:e.name,fileSize:e.size,fileType:e.type.slice(e.type.indexOf("/")+1).toLowerCase(),location:t.data.location||"",uploadTime:Uo(Date.now(),!1),uploadSpeed:$o(1e3*e.size/Uo(Date.now(),!1))}}_createCosOptions(e){return a(this,void 0,void 0,(function*(){const{fileName:t,resources:s,uploadMethod:n}=this._prepareUploadParams(e),o=this._isC2CConversation(e.message.conversationID)?1:2;try{const i=yield this._fetchCosSignatureUrl({fileType:this.uploadFileType,fileName:t,uploadMethod:n,duration:this.duration,userID:e.message.from,conversationType:o}),{uploadUrl:r,downloadUrl:a,requestSnapshotUrl:c,thumbUrl:l,largeUrl:u,fileKey:d}=i,h=!Jo.isPrivateNetWork()&&i.uploadIP;return{url:this._getRawOrUploadProxyUrl(r),fileType:this.uploadFileType,fileName:t,resources:s,downloadUrl:a,requestSnapshotUrl:c,thumbUrl:l,largeUrl:u,fileKey:d,uploadIP:h||"",onProgress:t=>this._handleUploadProgress(t,e)}}catch(e){throw console.error("Failed to create COS pre-signed URL options:",e),e}}))}_prepareUploadParams(e){console.log(`${jo} prepareUploadParams:`,e);const{file:t}=e,{IN_MINI_APP:s,IN_RN_APP:n}=Jo.getPlatformFlags(),o=s||n,i=o&&e.message.type!==Vo,{name:r}=t,a=r.slice(r.lastIndexOf(".")),c=`${Po(999999)}${a}`;return{fileName:Go(i?t.name:c),resources:o?t.url:t,uploadMethod:o?1:0}}_handleUploadProgress(e,t){if("function"==typeof t.onProgress)try{t.onProgress(e.percent)}catch(e){throw console.warn("Upload progress callback error:",e),e}}_fetchCosSignatureUrl(e){return a(this,void 0,void 0,(function*(){const t=`${jo} fetchCosSignatureUrl`,s=Jo.isSimpleCos(),n=this._prepareCosRequestData(e),o=s?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const e=yield function(e,t,s){return a(this,void 0,void 0,(function*(){try{const{helper:n,channel:o}=s,i=n.generateCosSpecifiedData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}catch(e){throw console.warn("getCosSig error:",e),e}}))}(o,n,this._core);this.fetchCosTryCount=0;const i=this._processResponse(e);return console.log(`${t} ok. isSimpleCos:${s} data:`,i),i||{}}catch(s){if(console.error(`${t} failed, error:`,s),this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(e);throw this.fetchCosTryCount=0,s}}))}_processResponse(e){var t;const s=Jo.isSimpleCos(),n=s?null===(t=null==e?void 0:e.rpt_pre_sig)||void 0===t?void 0:t[0]:e;if(!n)return{};if(s){const{str_final_ip:e,rpt_pre_sig:t,uint32_file_id:s,uint32_exist_flag:o,str_download_url:i,str_upload_url:r,str_snapshot_url:a,str_file_key:c}=n;return{uploadIP:e,preSig:t,fileID:s,existFlag:o,downloadUrl:i,uploadUrl:r,requestSnapshotUrl:a,fileKey:c}}const{upload_url:o,download_url:i,snapshot_url:r,thumb_url:a,large_url:c,file_key:l}=n;return{uploadUrl:o,downloadUrl:i,requestSnapshotUrl:r,thumbUrl:a,largeUrl:c,fileKey:l}}_prepareCosRequestData(e){return Jo.isSimpleCos()?{uint32_upload_method:e.uploadMethod,uint32_platform:Jo.getPlatform(),uint32_sdkappid:Jo.getSDKAppID(),str_user_id:e.userID,uint32_scene:e.conversationType,rpt_upload_object:[{uint32_file_id:1,uint32_file_type:e.fileType,str_file_name:e.fileName}]}:{file_type:e.fileType,file_name:e.fileName,upload_method:e.uploadMethod,Duration:e.duration}}_uploadFile(e){return a(this,void 0,void 0,(function*(){return new Promise(((t,s)=>{this.httpRequest.request(e,((n,o)=>{n&&this.uploadFileTryCount<this.maxRetries&&this.shouldRetry(n)?(this.uploadFileTryCount++,this._uploadFile(e).then(t).catch(s)):(this.uploadFileTryCount=0,n?s(n):t(o))}))}))}))}shouldRetry(e){if(!e)return!1;if(5===Math.floor(e.statusCode/100))return!0;return!(!this.isTimeRelatedError(e)||!this._isClockOutOfSync(e))&&(this._syncSystemClock(e),!0)}isTimeRelatedError(e){var t,s;try{const n=null===(t=e.error)||void 0===t?void 0:t.Code,o=null===(s=e.error)||void 0===s?void 0:s.Message;return"RequestTimeTooSkewed"===n||"AccessDenied"===n&&"Request has expired"===o}catch(e){return!1}}_isClockOutOfSync(e){var t,s,n;const o=(null===(t=e.headers)||void 0===t?void 0:t.date)||(null===(s=e.headers)||void 0===s?void 0:s.Date)||(null===(n=e.error)||void 0===n?void 0:n.ServerTime);if(!o)return!1;const i=Date.now(),r=Date.parse(o);return Math.abs(i+this.systemClockOffset-r)>=3e4}_syncSystemClock(e){var t,s,n;const o=(null===(t=e.headers)||void 0===t?void 0:t.date)||(null===(s=e.headers)||void 0===s?void 0:s.Date)||(null===(n=e.error)||void 0===n?void 0:n.ServerTime);if(o){const e=Date.now(),t=Date.parse(o);this.systemClockOffset=t-e}}_getRawOrUploadProxyUrl(e){const t=Jo.getFileUploadProxy();let s=e;return t&&(s=e.replace(/^https:\/\/[^/]+/,t)),s}_isC2CConversation(e){return"C2C"===e.slice(0,3)}};const Xo=2108,Qo=2251,ei=2252,ti=["jpg","jpeg","gif","png","bmp","image","webp"],si=20971520,ni={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255};class oi{constructor(e,t){this.instanceID=Po(9999999),this.sizeType=e.type||0,this.type=0,this.size=e.size||0,this.width=e.width||0,this.height=e.height||0,this.imageUrl=Jo.addAuthToUrl(e.imageUrl||e.url||""),this.url=Jo.addAuthToUrl(e.url||t)}setSizeType(e){this.sizeType=e}setType(e){this.type=e}setImageUrl(e){e&&(this.imageUrl=Jo.addAuthToUrl(e))}getImageUrl(){return this.imageUrl}}function ii(e){const{originUrl:t,originWidth:s,originHeight:n,min:o=198}=e,i=parseInt(s)||0,a=parseInt(n)||0,c={url:void 0,width:0,height:0};if((i<=a?i:a)<=o)c.url=t,c.width=i,c.height=a;else{a<=i?(c.width=Math.ceil(i*o/a),c.height=o):(c.width=o,c.height=Math.ceil(a*o/i));const e=t&&t.indexOf("?")>-1?`${t}&`:`${t}?`;c.url=198===o?`${e}imageView2/3/w/198/h/198`:`${e}imageView2/3/w/720/h/720`}if(void 0===t){return r(c,["url"])}return c}class ri{constructor(e){this._imageMemoryURL="",this._percent=0,this.type=qo;const{uuid:t,file:s,imageFormat:n,imageInfoArray:o=[]}=e;this._imageMemoryURL=this.createImageDataAsURL(s),this.content={imageFormat:n,uuid:t,imageInfoArray:[]},this.initImageInfoArray(o),this.autoFixUrl()}static parseServerPushElement(e){const{MsgContent:t}=e,{ImageFormat:s,ImageInfoArray:n,UUID:o}=t,i=function(e){return e.map((e=>({size:e.Size,type:e.Type,width:e.Width,height:e.Height,url:e.URL})))}(n);return new ri({imageFormat:s,imageInfoArray:i,uuid:o})}createImageDataAsURL(e){let t="";const{IN_MINI_APP:s,IN_RN_APP:n,IN_BROWSER:o}=Jo.getPlatformFlags();return e?((s||n)&&(t=e.url),o&&(t=window.URL.createObjectURL(e)),t):t}initImageInfoArray(e=[]){const t={type:0,size:0,width:0,height:0,url:""};for(let s=0;s<3;s++){const n=e[s]||Object.assign({},t),o=new oi(n,this._imageMemoryURL);o.setSizeType(s+1),o.setType(s),this.addImageInfo(o)}this.updateAccessSideImageInfoArray()}autoFixUrl(){const e=["http","https"];this.content.imageInfoArray.forEach((t=>{if(!t.url||""===t.imageUrl)return;const[s,...n]=t.imageUrl.split("://"),o=n.join("://");e.includes(s)||t.setImageUrl(`https://${o}`)}))}updatePercent(e){this._percent=Math.min(e,1)}updateImageFormat(e){this.content.imageFormat=ni[e.toUpperCase()]||ni.UNKNOWN}addImageInfo(e){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(e)}updateImageInfoArray(e){const t=this.content.imageInfoArray.length;let s;for(let n=0;n<t;n++)s=this.content.imageInfoArray[n],e[n].size&&(s.size=e[n].size),e[n].url&&s.setImageUrl(e[n].url),e[n].width&&(s.width=e[n].width),e[n].height&&(s.height=e[n].height)}updateAccessSideImageInfoArray(){const[e]=this.content.imageInfoArray;e&&0!==e.width&&0!==e.height&&(!function(e){const t=e[2];e[2]=e[1],e[1]=t;for(let t=0;t<e.length;t++)e[t].setType(t)}(this.content.imageInfoArray),Object.assign(this.content.imageInfoArray[2],ii({originWidth:e.width,originHeight:e.height,min:720})))}validateBeforeSend(){const[e]=this.content.imageInfoArray,t=!!e&&""!==e.imageUrl&&0!==e.size;return{isValid:t,error:t?null:{message:"content can not be empty"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{uuid:n,imageFormat:o,imageInfoArray:i}=s;return{MsgType:this.type,MsgContent:{ImageFormat:o,ImageInfoArray:this.parseImageInfoArray(i),UUID:n}}}parseImageInfoArray(e){return e.map((e=>({InstanceId:e.instanceID,Type:e.sizeType,MsgType:e.type,Size:e.size,Width:e.width,Height:e.height,URL:Jo.removeAuthToUrl(e.imageUrl)})))}}var ai=new class{constructor(){this._messageOptionsMap=new Map}init(e){var t;this._core=e;const{notificationCenter:s,helper:n,InnerEvent:o,message:i}=e;n.registerApi({apiName:"createImageMessage",context:this}),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(qo,ri),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createImageMessage(e){var t,s,n,o,i;try{const o=this._core.ssoLog.createSSOLogData({method:"createImageMessage"});console.log(`${jo} createImageMessage options:`,e);const i=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,r=null===(n=null===(s=this._core)||void 0===s?void 0:s.message.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:i})),a=this._processImage(e);e.payload.file=a;const c={imageFormat:ni.UNKNOWN,uuid:Jo.generateUUID(a),file:a,imageInfoArray:[]},l=new ri(c);return r.setElement(l),this._messageOptionsMap.set(r.clientSequence,e),console.log(`${jo} createImageMessage OK imageMessage:`,r),o.end(),r}catch(e){throw null===(i=(o=this._core.ssoLog.getSSOLogData("createImageMessage")).setError)||void 0===i||i.call(o,e).end(),console.error(`${jo} createImageMessage error:`,e),e}}upload(e){return a(this,void 0,void 0,(function*(){console.log(`${jo} uploadImage message:`,e);const t=e.getElements()[0],{file:s}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadImage(s);const n=yield this._performImageUpload(t,e,s),o=this._generateImageInfo(n);return t.updateImageInfoArray(o),e}))}_performImageUpload(e,t,s){return a(this,void 0,void 0,(function*(){const{to:n}=t,o={uploadFileType:Ko,file:s,to:n,message:t,onProgress:s=>{var n,o;e.updatePercent(s),null===(o=null===(n=this._messageOptionsMap.get(t.clientSequence))||void 0===n?void 0:n.onProgress)||void 0===o||o.call(n,s)}},{uploadOptions:i,response:r}=yield Zo.uploadToCOS(o);return this._parseResponse(i,r)}))}_generateImageInfo(e){console.log(`${jo} generateImageInfo`);const{location:t,fileSize:s,width:n,height:o,smallImageUrl:i,smallImageWidth:r,smallImageHeight:a,largeImageUrl:c,largeImageWidth:l,largeImageHeight:u,imageInfoArray:d}=e,h=Jo.addAuthToUrl(t),g={size:s,url:h,width:n,height:o};return(null==d?void 0:d.length)>0?this._processImageInfoArray(d,s):i&&c?[Object.assign({},g),{largeImageUrl:c,largeImageWidth:l,largeImageHeight:u},{smallImageUrl:i,smallImageWidth:r,smallImageHeight:a}]:[Object.assign({},g),this._generateThumbInfo(h,n,o,720),this._generateThumbInfo(h,n,o,198)]}_generateThumbInfo(e,t,s,n){return ii({originUrl:e,originWidth:t,originHeight:s,min:n})}_processImageInfoArray(e,t){let s,n,o;for(const i of e)1===i.type?(n=i,n.size=t):2===i.type?(o=i,o.size=t):(s=i,s.size=t);return[Object.assign({},s),Object.assign({},o),Object.assign({},n)]}_parseResponse(e,t){return a(this,void 0,void 0,(function*(){console.log(`${jo} parseResponse`);try{const{thumbUrl:s,largeUrl:n,downloadUrl:o}=e;s&&n&&(yield this._getImageInfoByUrl(s,t,"thumb"),yield this._getImageInfoByUrl(n,t,"large"));if(Jo.isSimpleCos()&&!Jo.isPrivateNetWork()&&(yield this._getImageInfoArray(o,t),null==t?void 0:t.uploadIP)){const e=this._extractDomainFromUrl(o);e&&(yield this._getDownloadIP(e,t))}return t}catch(e){throw console.error("Failed to parse response:",e),e}}))}_extractDomainFromUrl(e){try{const t=e.match(/:\/\/([^\/]+)/);return t?t[1]:null}catch(e){return console.warn("Failed to extract domain from URL:",e),null}}_getImageInfoByUrl(e,t,s){return a(this,void 0,void 0,(function*(){try{const n=Jo.addAuthToUrl(e),{width:o=0,height:i=0}=yield Jo.probeImageWidthHeight(n);t.width=o,t.height=i,"thumb"===s?(t.smallImageUrl=e,t.smallImageWidth=o,t.smallImageHeight=i):(t.largeImageUrl=e,t.largeImageWidth=o,t.largeImageHeight=i)}catch(e){console.warn(`Failed to get ${s} image info:`,e)}}))}_validateBeforeUploadImage(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(!e)throw new s({code:Qo});this._checkImageType(e),this._checkImageSize(e)}_processImage(e){var t;try{const{IN_MINI_APP:s}=null===(t=this._core)||void 0===t?void 0:t.utils;let{file:n}=e.payload;return n=s?this._processMiniAppImageFile(n):this._processWebImageFile(n),n}catch(e){throw console.warn(`${jo} _processImage error:`,e),e}}_processMiniAppImageFile(e){wo(e)&&console.warn("FileUnsupportedInMiniApp","createImageMessage");const t=e.tempFiles[0].path||e.tempFiles[0].tempFilePath;return{url:t,name:t.slice(t.lastIndexOf("/")+1),size:e.tempFiles&&e.tempFiles[0].size||1,type:t.slice(t.lastIndexOf(".")+1).toLowerCase()}}_processWebImageFile(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper,n=Jo.extractFileFromInput(e);if(!n)throw new s({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return n}_getDownloadIP(e,t){return a(this,void 0,void 0,(function*(){const s=`${jo} getDownloadIP domainName: ${e}`;try{const n=yield function(e,t){return a(this,void 0,void 0,(function*(){try{const{helper:s,channel:n}=t,o="im_cos_msg.get_final_ip",i={str_domain:e},r=s.generateProtocolData({servcmd:o,data:i}),a=`${r.head.seq}${o}`;return yield n.sendPacket(r,{requestId:a})}catch(e){throw console.warn("getFinalIP error:",e),e}}))}(e,this._core);if(!n||!n.str_final_ip)return;console.log(`${s} ok. downloadIP:${n}`);const o=t.location.split("/");o[0]=n.str_final_ip,t.location=o.join("/")}catch(e){console.warn(e)}}))}_getImageInfoArray(e,t){return a(this,void 0,void 0,(function*(){const s=`${jo}._getImageInfoArray`;try{const n=yield function(e,t){return a(this,void 0,void 0,(function*(){try{const{helper:s,channel:n}=t,o="im_cos_msg.get_imageinfo",i={str_image_url:e},r=s.generateProtocolData({servcmd:o,data:i}),a=`${r.head.seq}${o}`;return yield n.sendPacket(r,{requestId:a})}catch(e){throw console.warn("getImageInfo error:",e),e}}))}(e,this._core);return t.imageInfoArray=this._processImageInfoResponse(n),console.log(`${s} ok`),t}catch(e){throw t.imageInfoArray=void 0,console.warn(`${s} failed, error:`,e),e}}))}_processImageInfoResponse(e){if(!e)return[];const{rpt_msg_image_info:t}=e;return t.map((e=>({type:e.uint32_image_type,url:e.str_url,width:e.uint32_width,height:e.uint32_height,imageFormat:e.str_image_format})))}_checkImageType(e){const{utils:t,helper:s}=this._core;let n="";if(t.IN_MINI_APP&&(n=e.url.slice(e.url.lastIndexOf(".")+1)),t.IN_BROWSER&&(n=e.name.slice(e.name.lastIndexOf(".")+1)),ti.indexOf(n.toLowerCase())<0)throw new s.ChatError({code:ei})}_checkImageSize(e){const{utils:t,helper:s}=this._core;let n=0;if(n=(t.IN_MINI_APP,e.size),0===n)throw new s.ChatError({code:Xo});if(n>=si)throw new s.ChatError({message:`File size exceeds limit: ${Fo(si)}`})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const ci=2108,li=2401,ui="2.5.0",di="1.18.0",hi=104857600;function gi(e,t){const s=e.split("."),n=t.split("."),o=Math.max(s.length,n.length);for(;s.length<o;)s.push("0");for(;n.length<o;)n.push("0");for(let e=0;e<o;e++){const t=parseInt(s[e]),o=parseInt(n[e]);if(t>o)return 1;if(t<o)return-1}return 0}class pi{constructor(e){this.type=Vo,this.uploadProgress=0;const t=this._getFileInfo(e);this.content={downloadFlag:2,fileUrl:Jo.addAuthToUrl(e.url||e.fileUrl)||"",uuid:e.uuid,fileName:t.name||"",fileSize:t.size||0}}static parseServerPushElement(e){const{MsgContent:t}=e,{Download_Flag:s,Url:n,FileName:o,FileSize:i,UUID:r}=t;return new pi({downloadFlag:s,url:n,fileName:o,fileSize:i,uuid:r})}updatePercent(e){this.uploadProgress=Math.min(e,1)}updateFileUrl(e){this.content.fileUrl=e}validateBeforeSend(){const e=""!==this.content.fileUrl&&""!==this.content.fileName&&this.content.fileSize>0;return{isValid:e,error:e?null:{message:"content can not be empty"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{uuid:n,downloadFlag:o,fileUrl:i,fileName:r,fileSize:a}=s;return{MsgType:this.type,MsgContent:{Download_Flag:o,Url:Jo.removeAuthToUrl(i),FileName:r,FileSize:a,UUID:n}}}_getFileInfo(e){if(e.fileName&&e.fileSize)return{size:e.fileSize,name:e.fileName};const{file:t}=e;return t?(Jo.getPlatform().IN_UNI_NATIVE_APP&&this._processNativeAppFile(t),{size:t.size,name:t.name}):{size:0,name:""}}_processNativeAppFile(e){if(e.path&&e.path.includes(".")){const t=e.path.slice(e.path.lastIndexOf(".")+1).toLowerCase();e.type=t,e.name||(e.name=`${Po(999999)}.${t}`)}e.name||(e.type="",e.name=e.path.slice(e.path.lastIndexOf("/")+1).toLowerCase()),e.suffix&&(e.type=e.suffix),e.url||(e.url=e.path)}}var _i=new class{constructor(){this._messageOptionsMap=new Map}init(e){var t;this._core=e;const{notificationCenter:s,helper:n,InnerEvent:o,message:i}=e;n.registerApi({apiName:"createFileMessage",context:this}),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Vo,pi),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createFileMessage(e){var t,s,n,o,i;try{const o=this._core.ssoLog.createSSOLogData({method:"createFileMessage"});console.log(`${jo} createFileMessage options:`,e),this._checkVersion();const i=this._processFile(e.payload.file);e.payload.file=i;const r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,a=null===(n=null===(s=this._core)||void 0===s?void 0:s.message.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),c={uuid:Jo.generateUUID(i),file:i},l=new pi(c);return a.setElement(l),this._messageOptionsMap.set(a.clientSequence,e),console.log(`${jo} createFileMessage success fileMessage:`,a),o.end(),a}catch(e){throw null===(i=(o=this._core.ssoLog.getSSOLogData("createFileMessage")).setError)||void 0===i||i.call(o,e).end(),console.error(`${jo} createFileMessage error:`,e),e}}upload(e){return a(this,void 0,void 0,(function*(){console.log(`${jo} uploadFile message:`,e);const{file:t}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadFile(t);const s=e.getElements()[0],n=yield this._performFileUpload(s,e,t),o=Jo.addAuthToUrl(null==n?void 0:n.location);return s.updateFileUrl(o),e}))}_validateBeforeUploadFile(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(!e)throw new s({code:li});if(e.size>hi)throw new s({message:`File size exceeds limit: ${Fo(hi)}`});if(0===e.size)throw new s({code:ci})}_performFileUpload(e,t,s){return a(this,void 0,void 0,(function*(){const{to:n}=t,o={uploadFileType:Ko,file:s,to:n,message:t,onProgress:s=>{var n,o;e.updatePercent(s),null===(o=null===(n=this._messageOptionsMap.get(t.clientSequence))||void 0===n?void 0:n.onProgress)||void 0===o||o.call(n,s)}},{response:i}=yield Zo.uploadToCOS(o);return i}))}_processFile(e){var t,s;const{IN_BROWSER:n,IN_RN_APP:o,IN_WX_MINI_APP:i,IN_QQ_MINI_APP:r,IN_UNI_NATIVE_APP:a}=null===(t=this._core)||void 0===t?void 0:t.utils,{ChatError:c}=null===(s=this._core)||void 0===s?void 0:s.helper;if(n||a){const t=Jo.extractFileFromInput(e);if(!t)throw new c({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return t}if(i||r){const{tempFiles:t}=e;return Object.assign(Object.assign({},t[0]),{url:t[0].path})}return o?Object.assign(Object.assign({},e),{url:e.uri}):e}_checkVersion(){var e,t;const{MINI_APP_NAMESPACE:s,IN_MINI_APP:n,IN_WX_MINI_APP:o,IN_QQ_MINI_APP:i,IN_UNI_NATIVE_APP:r}=null===(e=this._core)||void 0===e?void 0:e.utils,{ChatError:a}=null===(t=this._core)||void 0===t?void 0:t.helper;if(n){if(!(o||i||r))throw new a({message:"Unsupported mini app environment"});const e=s.getSystemInfoSync().SDKVersion;if(o&&gi(e,ui)<0){throw new a({message:`WXChooseMessageFile requires SDK version ${ui} or higher`})}if(i&&gi(e,di)<0){throw new a({message:`QQChooseMessageFile requires SDK version ${di} or higher`})}}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const mi=2108,vi=2352,fi=["mp4","quicktime","mov"],Ii=104857600;class Si{constructor(e){this.type=Bo,this.uploadProgress=0;const t="number"==typeof(null==e?void 0:e.videoSecond)?null==e?void 0:e.videoSecond:0;this.content={remoteVideoUrl:Jo.addAuthToUrl(e.remoteVideoUrl||e.videoUrl||""),videoFormat:e.videoFormat,videoSecond:parseInt(null==t?void 0:t.toString(),10),videoSize:e.videoSize,videoUrl:Jo.addAuthToUrl(e.videoUrl),videoDownloadFlag:2,videoUUID:e.videoUUID,thumbUUID:e.thumbUUID,thumbFormat:e.thumbFormat,thumbWidth:e.thumbWidth,snapshotWidth:e.thumbWidth,thumbHeight:e.thumbHeight,snapshotHeight:e.thumbHeight,thumbSize:e.thumbSize,snapshotSize:e.thumbSize,thumbDownloadFlag:2,thumbUrl:Jo.addAuthToUrl(e.thumbUrl),snapshotUrl:Jo.addAuthToUrl(e.thumbUrl)}}static parseServerPushElement(e){const{MsgContent:t}=e,{VideoUrl:s,VideoFormat:n,VideoSecond:o,VideoSize:i,VideoDownloadFlag:r,VideoUUID:a,ThumbUUID:c,ThumbFormat:l,ThumbWidth:u,SnapshotWidth:d,ThumbHeight:h,SnapshotHeight:g,ThumbSize:p,SnapshotSize:_,ThumbDownloadFlag:m,ThumbUrl:v,SnapshotUrl:f}=t;return new Si({videoUrl:s,videoFormat:n,videoSecond:o,videoSize:i,videoDownloadFlag:r,videoUUID:a,thumbUUID:c,thumbFormat:l,thumbWidth:u,snapshotWidth:d,thumbHeight:h,snapshotHeight:g,thumbSize:p,snapshotSize:_,thumbDownloadFlag:m,thumbUrl:v,snapshotUrl:f})}updatePercent(e){this.uploadProgress=Math.min(e,1)}updateVideoUrl(e){e&&(this.content.remoteVideoUrl=e)}updateSnapshotInfo(e){const{snapshotUrl:t,snapshotWidth:s,snapshotHeight:n}=e;Jo.isEmpty(t)||(this.content.thumbUrl=this.content.snapshotUrl=t),Jo.isEmpty(s)||(this.content.thumbWidth=this.content.snapshotWidth=Number(s)),Jo.isEmpty(n)||(this.content.thumbHeight=this.content.snapshotHeight=Number(n))}validateBeforeSend(){const e=""!==this.content.remoteVideoUrl;return{isValid:e,error:e?null:{message:"content can not be empty"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{remoteVideoUrl:n,videoFormat:o,videoSecond:i,videoSize:r,videoDownloadFlag:a,videoUUID:c,thumbUUID:l,thumbFormat:u,thumbWidth:d,snapshotWidth:h,thumbHeight:g,snapshotHeight:p,thumbSize:_,snapshotSize:m,thumbDownloadFlag:v,thumbUrl:f,snapshotUrl:I}=s;return{MsgType:this.type,MsgContent:{VideoUrl:Jo.removeAuthToUrl(n),VideoFormat:o,VideoSecond:i,VideoSize:r,VideoDownloadFlag:a,VideoUUID:c,ThumbUUID:l,ThumbFormat:u,ThumbWidth:d,SnapshotWidth:h,ThumbHeight:g,SnapshotHeight:p,ThumbSize:_,SnapshotSize:m,ThumbDownloadFlag:v,ThumbUrl:Jo.removeAuthToUrl(f),SnapshotUrl:Jo.removeAuthToUrl(I)}}}}var Ei=new class{constructor(){this._messageOptionsMap=new Map}init(e){var t;this._core=e;const{notificationCenter:s,helper:n,InnerEvent:o,message:i}=e;n.registerApi({apiName:"createVideoMessage",context:this}),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Bo,Si),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createVideoMessage(e){var t,s,n,o,i;try{const o=this._core.ssoLog.createSSOLogData({method:"createVideoMessage"});console.log(`${jo} createVideoMessage options:`,e);const i=this._processVideo(e);e.payload.file=i;const r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,a=null===(n=null===(s=this._core)||void 0===s?void 0:s.message.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),c={videoFormat:i.videoFile.type,videoSecond:ko(i.videoFile.second,0),videoSize:i.videoFile.size,remoteVideoUrl:"",videoUrl:i.videoFile.url,videoUUID:Jo.generateUUID(i.videoFile),thumbUUID:Jo.generateUUID(i.videoFile,"jpg"),thumbWidth:i.width||200,thumbHeight:i.height||200,thumbUrl:i.thumbUrl,thumbSize:i.thumbSize,thumbFormat:"jpg"},l=new Si(c);return a.setElement(l),this._messageOptionsMap.set(a.clientSequence,e),o.end(),a}catch(e){throw null===(i=(o=this._core.ssoLog.getSSOLogData("createVideoMessage")).setError)||void 0===i||i.call(o,e).end(),console.error(`${jo} createVideoMessage error:`,e),e}}upload(e){return a(this,void 0,void 0,(function*(){console.log(`${jo} uploadVideo message:`,e);const t=e.getElements()[0],{file:s}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadVideo(s);const n=yield this._performVideoUpload(t,e,s),{location:o,snapshotInfo:i}=n,r=Jo.addAuthToUrl(o);return t.updateVideoUrl(r),Jo.isEmpty(i)||t.updateSnapshotInfo(i),e}))}_validateBeforeUploadVideo(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(e.videoFile.size>Ii)throw new s({message:`File size exceeds limit: ${Fo(Ii)}`});if(0===e.videoFile.size)throw new s({code:mi});if(-1===fi.indexOf(e.videoFile.type))throw new s({code:vi})}_performVideoUpload(e,t,s){return a(this,void 0,void 0,(function*(){const{to:n}=t,o={uploadFileType:Ho,file:s,to:n,message:t,onProgress:s=>{var n,o;e.updatePercent(s),null===(o=null===(n=this._messageOptionsMap.get(t.clientSequence))||void 0===n?void 0:n.onProgress)||void 0===o||o.call(n,s)}},{response:i,uploadOptions:r}=yield Zo.uploadToCOS(o);return{snapshotInfo:yield this._getSnapshotInfoByUrl(r.requestSnapshotUrl),location:i.location}}))}_processVideo(e){var t,s;try{const{ChatError:n}=null===(t=this._core)||void 0===t?void 0:t.helper,{IN_MINI_APP:o,IN_BROWSER:i}=null===(s=this._core)||void 0===s?void 0:s.utils;let{file:r}=e.payload,a={};if(o&&(a=this._processMiniVideoFile(r),r.name=a.name,r.url=a.url),i){const e=Jo.extractFileFromInput(r);if(!e)throw new n({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});r=e,a=this._processWebVideoFile(r)}return r.videoFile=a,r.thumbUrl="",r.thumbSize=0,r}catch(e){throw console.warn(`${jo} _processFile error:`,e),e}}_processMiniVideoFile(e){var t,s;const{IN_ALIPAY_MINI_APP:n}=null===(t=this._core)||void 0===t?void 0:t.utils,{ChatError:o}=null===(s=this._core)||void 0===s?void 0:s.helper;if(n)throw new o({message:"VideoUnsupportedInAlipay"});if(wo(e))throw new o({message:"FileUnsupportedInMiniApp"});return Array.isArray(e.tempFiles)&&(e=e.tempFiles[0]),{url:e.tempFilePath,name:e.tempFilePath.slice(e.tempFilePath.lastIndexOf("/")+1),size:e.size||1,second:e.duration||0,type:e.tempFilePath.slice(e.tempFilePath.lastIndexOf(".")+1).toLowerCase()}}_processWebVideoFile(e){const{name:t,size:s=1,duration:n=0,type:o}=e,i=o.split("/")[1];return{url:window.URL.createObjectURL(e),name:t,size:s,second:n,type:i}}_getSnapshotInfoByUrl(e){return a(this,void 0,void 0,(function*(){try{console.log(`${jo} _getSnapshotInfoByUrl url:`,e);const t={version:1,platform:Jo.getPlatform(),cover_name:Go(Po(99999)),snapshot_url:e},s=yield function(e,t){return a(this,void 0,void 0,(function*(){try{const s="im_cos_msg.video_cover",{helper:n,channel:o}=t,i=n.generateCosSpecifiedData({servcmd:s,data:e}),r=`${i.head.seq}${s}`;return yield o.sendPacket(i,{requestId:r})}catch(e){throw console.warn("getSnapshotInfo error:",e),e}}))}(t,this._core),{download_url:n}=s||{};if(console.log(`${jo} _getSnapshotInfoByUrl OK snapshotUrl:`,n),Jo.isEmpty(n))return{};const o=Jo.addAuthToUrl(n),{width:i=0,height:r=0}=yield Jo.probeImageWidthHeight(o);return{snapshotUrl:o,snapshotWidth:i,snapshotHeight:r}}catch(e){throw console.error(`${jo} _getSnapshotInfoByUrl error:`,e),e}}))}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};class Ci{constructor(e){this.uploadProgress=0,this.type=xo,this.content={downloadFlag:2,second:e.second,size:e.size,url:Jo.addAuthToUrl(e.url),remoteAudioUrl:Jo.addAuthToUrl(e.url||""),uuid:e.uuid}}static parseServerPushElement(e){const{MsgContent:t}=e,{Url:s,Download_Flag:n,Second:o,Size:i,UUID:r}=t;return new Ci({url:s,downloadFlag:n,second:o,size:i,uuid:r})}updatePercent(e){this.uploadProgress=Math.min(e,1)}updateAudioUrl(e){this.content.remoteAudioUrl=e}validateBeforeSend(){const e=""!==this.content.remoteAudioUrl;return{isValid:e,error:e?null:{message:"content can not be empty"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{uuid:n,downloadFlag:o,remoteAudioUrl:i,size:r,second:a}=s;return{MsgType:this.type,MsgContent:{Url:Jo.removeAuthToUrl(i),Download_Flag:o,Second:a,Size:r,UUID:n}}}}const yi=2108,Mi=2300,Oi=20971520;var Ti=new class{constructor(){this._messageOptionsMap=new Map}init(e){var t;this._core=e;const{notificationCenter:s,helper:n,InnerEvent:o,message:i}=e;n.registerApi({apiName:"createAudioMessage",context:this}),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(xo,Ci),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createAudioMessage(e){var t,s,n,o,i;try{const o=this._core.ssoLog.createSSOLogData({method:"createAudioMessage"});console.log(`${jo} createAudioMessage options:`,e);let{file:i}=e.payload;i=this._processAudioFile(e.payload.file),e.payload.file=i;const r=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,a=null===(n=null===(s=this._core)||void 0===s?void 0:s.message.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),c={second:Math.floor((i.duration||i.second)/1e3),size:i.fileSize||i.size||1,url:i.tempFilePath||i.uri||i.url,uuid:Jo.generateUUID(i)},l=new Ci(c);return a.setElement(l),this._messageOptionsMap.set(a.clientSequence,e),o.end(),a}catch(e){throw null===(i=(o=this._core.ssoLog.getSSOLogData("createAudioMessage")).setError)||void 0===i||i.call(o,e).end(),console.error(`${jo} createAudioMessage error:`,e),e}}upload(e){return a(this,void 0,void 0,(function*(){console.log(`${jo} uploadAudio message:`,e);const{file:t}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadAudio(t);const s=e.getElements()[0],n=yield this._performAudioUpload(s,e,t),o=Jo.addAuthToUrl(null==n?void 0:n.location);return s.updateAudioUrl(o),e}))}_validateBeforeUploadAudio(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(!e)throw new s({code:Mi});if(e.size>Oi)throw new s({message:`File size exceeds limit: ${Fo(Oi)}`});if(0===e.size)throw new s({code:yi})}_performAudioUpload(e,t,s){return a(this,void 0,void 0,(function*(){const{to:n}=t,o={uploadFileType:Yo,file:s,to:n,message:t,onProgress:s=>{var n,o;e.updatePercent(s),null===(o=null===(n=this._messageOptionsMap.get(t.clientSequence))||void 0===n?void 0:n.onProgress)||void 0===o||o.call(n,s)}},{response:i}=yield Zo.uploadToCOS(o);return i}))}_processAudioFile(e){var t;const{IN_MINI_APP:s,IN_BROWSER:n}=null===(t=this._core)||void 0===t?void 0:t.utils;return s?this._processMiniFile(e):n?this._processWebFile(e):void 0}_processMiniFile(e){return{url:e.tempFilePath,name:e.tempFilePath.slice(e.tempFilePath.lastIndexOf("/")+1),size:e.fileSize,second:e.duration,type:e.tempFilePath.slice(e.tempFilePath.lastIndexOf(".")+1).toLowerCase()}}_processWebFile(e){if(e.tempFilePath||e.uri)return e;const t=URL.createObjectURL(e);return e.tempFilePath=t,e}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Ai={to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1},onProgress:{required:!1,rules:["function"],allowEmpty:!1}},Di={createImageMessage:Ai,createAudioMessage:Ai,createVideoMessage:Ai,createFileMessage:Ai},Ri={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},bi={[qo]:ai,[Vo]:_i,[Bo]:Ei,[xo]:Ti};var Ni=new class{install(e){this._core=e;const{constants:{OuterConstant:{MSG_AUDIO:t,MSG_FILE:s,MSG_IMAGE:n,MSG_VIDEO:o}}}=e;ai.init(e),_i.init(e),Ei.init(e),Ti.init(e),Zo.init(e),Jo.init(e),e.helper.registerApi({apiName:"sendMessage",context:this,matcher:e=>[t,s,n,o].includes(e[0].type)}),e.helper.registerValidateConfig({auth:Ri,params:Di})}sendMessage(e,t){return a(this,void 0,void 0,(function*(){var s,n,o;try{return console.log("sendMessage message:",e),yield this._upload(e),yield null===(o=null===(n=null===(s=this._core)||void 0===s?void 0:s.message)||void 0===n?void 0:n.messageSender)||void 0===o?void 0:o.sendMessage(e,t)}catch(e){throw console.error("sendMessage error:",e),e}}))}_upload(e){return a(this,void 0,void 0,(function*(){var t,s;if(!0!==e._relayFlag)try{const t=bi[e.type];if(t){const s=this._core.ssoLog.createSSOLogData({method:"upload"});s.setLogInfo({message:`type:${e.type}`}),yield t.upload(e),s.end()}}catch(n){throw e.status=zo.FAIL,n instanceof Error&&(n.data={message:e}),this._core.message.messageDataHandler.storeConversationMessage(e),null===(s=(t=this._core.ssoLog.getSSOLogData("upload")).setError)||void 0===s||s.call(t,n).end(),n}}))}};const Li=new class{init(e){this.core=e}},wi=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Li;return s(e)&&e.slice(0,3)===t.CONV_C2C},Pi=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Li;return s(e)&&e.slice(0,5)===t.CONV_GROUP},Ui=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Li;return s(e)&&e===t.CONV_SYSTEM},Gi=e=>({lastTime:(null==e?void 0:e.time)||(null==e?void 0:e.lastTime)||0,lastSequence:(null==e?void 0:e.sequence)||(null==e?void 0:e.lastSequence)||0,fromAccount:(null==e?void 0:e.from)||(null==e?void 0:e.fromAccount)||"",messageForShow:Li.core.common.getMessagePreviewText(null==e?void 0:e.type,null==e?void 0:e.payload),payload:(null==e?void 0:e.payload)||null,type:(null==e?void 0:e.type)||"",isRevoked:(null==e?void 0:e.isRevoked)||!1,cloudCustomData:(null==e?void 0:e.cloudCustomData)||"",onlineOnlyFlag:(null==e?void 0:e._onlineOnlyFlag)||!1,nick:(null==e?void 0:e.nick)||"",nameCard:(null==e?void 0:e.nameCard)||"",version:(null==e?void 0:e.version)||0,isPeerRead:(null==e?void 0:e.isPeerRead)||!1,revoker:(null==e?void 0:e.revoker)||null});function ki(e){const{core:{utils:{isString:t}}}=Li,s=[];if(!t(e))return s;const n=e.length;if(0===n)return s;for(let t=n-1;t>=0;t--)"1"===e[t]&&s.push(2**(n-t-1));return s}function Fi(e){const{OuterConstant:t}=Li.core;let s="";return 0===e?s=t.MSG_REMIND_ACPT_AND_NOTE:1===e?s=t.MSG_REMIND_DISCARD:2===e?s=t.MSG_REMIND_ACPT_NOT_NOTE:3===e&&(s=t.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),s}function $i(e){const{OuterConstant:t}=Li.core;let s;return e.startsWith(t.CONV_C2C)&&(s=e.replace(t.CONV_C2C,"")),"@TLS#ERROR"===s||"@TLS#NOT_FOUND"===s}var qi,xi,Vi,Bi,ji;!function(e){e.NOT_START="notStart",e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(qi||(qi={})),function(e){e[e.C2C=1]="C2C",e[e.GROUP=2]="GROUP"}(xi||(xi={})),function(e){e[e.C2C=8]="C2C",e[e.GROUP=2]="GROUP"}(Vi||(Vi={})),function(e){e[e.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(Bi||(Bi={})),function(e){e[e.CONV_DELETED=1]="CONV_DELETED",e[e.CONV_PINED=2]="CONV_PINED",e[e.CONV_UNPINED=3]="CONV_UNPINED",e[e.CONV_MARK_UPDATED=4]="CONV_MARK_UPDATED",e[e.CONV_GROUP_ADDED=5]="CONV_GROUP_ADDED",e[e.CONV_GROUP_DELETED=6]="CONV_GROUP_DELETED",e[e.CONV_GROUP_UPDATED=7]="CONV_GROUP_UPDATED"}(ji||(ji={}));var Wi;!function(e){e[e.CONV_NOT_FOUND=2500]="CONV_NOT_FOUND",e[e.USER_OR_GRP_NOT_FOUND=2501]="USER_OR_GRP_NOT_FOUND",e[e.CONV_UN_RECORDED_TYPE=2502]="CONV_UN_RECORDED_TYPE"}(Wi||(Wi={}));class Ki{constructor(e){this.conversationID=e.conversationID||"",this.unreadCount=e.unreadCount||0,this.type=e.type||"",this.lastMessage=Gi(e.lastMessage),this.peerReadTime=e.peerReadTime||0,this.groupAtInfoList=[],this.remark=e.remark||"",this.isPinned=e.isPinned||!1,this.messageRemindType=e.messageRemindType,this.markList=e.markList||[],this.customData=e.customData||"",this.conversationGroupList=e.conversationGroupList||[],this.draftText=e.draftText||"",this.userProfile=e.userProfile,this.groupProfile=e.groupProfile,this.subType=e.subType||"",this._isInfoCompleted=!1,this._init()}_init(){const{core:{OuterConstant:e,utils:{isUndefined:t}}}=Li;t(this.userProfile)&&this.type===e.CONV_C2C?this.userProfile={}:t(this.groupProfile)&&this.type===e.CONV_GROUP&&(this.groupProfile={}),this.subType&&this.type===e.CONV_GROUP&&(this.subType=this.groupProfile.type||"")}updateUnreadCount(e){const{core:{OuterConstant:t,utils:{isUndefined:s}}}=Li,{nextUnreadCount:n,isFromGetConversations:o,isUnreadC2CMessage:i}=e;s(n)||(this.subType!==t.GRP_AVCHATROOM?o&&this.type===t.CONV_GROUP||o&&this.type===t.CONV_TOPIC||i&&this.type===t.CONV_C2C?this.unreadCount=n:this.unreadCount+=n:this.unreadCount=0)}updateLastMessage(e){this.lastMessage=Gi(e)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(e){const{core:{OuterConstant:t}}=Li,{sequence:s,time:n}=e;return this.type===t.CONV_C2C&&s===this.lastMessage.lastSequence&&n===this.lastMessage.lastTime||this.type===t.CONV_GROUP&&s===this.lastMessage.lastSequence}setLastMessageRevoked(e){this.lastMessage.isRevoked=e}setLastMessageRevoker(e){this.lastMessage.revoker=e}setDraftText(e){this.draftText=e}updateGroupAtInfoList(e){const{core:{OuterConstant:t}}=Li;let[...s]=e.groupAtType;s.includes(t.CONV_AT_ME)||s.includes(t.CONV_AT_ALL)||(s=[t.CONV_AT_ALL_AT_ME]);const n={from:e.from,groupID:e.groupID,messageSequence:e.sequence,atTypeArray:s,__random:e.__random,__sequence:e.__sequence};this.groupAtInfoList.push(n)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}var Hi=new class{constructor(){this._name="ConversationDataHandler",this._totalUnreadCount=0,this._groupAtTipsList=[]}init(e){this._core=e;const{helper:t,notificationCenter:s,appStore:{conversationStore:n},constants:{WORKFLOW_NAME:o,WORKFLOW_STEP:i},InnerEvent:{MESSAGE_PUSH:r,NEW_MESSAGE:a,MESSAGE_DELETED:c,MESSAGE_REVOKED:l,MESSAGE_MODIFIED:u,CONVERSATION_UPDATED:d,LOGOUT:h,DESTROY:g}}=e;this._conversationStore=n,t.registerWorkflowStep(o.SYNC_SERVER_INFO_AFTER_LOGIN,i.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),t.registerWorkflowStep(o.SYNC_SERVER_INFO_AFTER_LOGIN,i.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,this._handleGroupListSyncFinished,this),t.registerWorkflowStep(o.RECEIVE_C2C_NEW_MESSAGE,i.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),t.registerWorkflowStep(o.RECEIVE_C2C_NEW_MESSAGE,i.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),t.registerWorkflowStep(o.RECEIVE_GROUP_NEW_MESSAGE,i.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),t.registerWorkflowStep(o.SYNC_SERVER_INFO_AFTER_RE_ONLINE,i.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this);const{InnerEventSubType:{GROUP_AT_TIPS:p}}=s;s.subscribeInnerEvent(a,this._handleNewMessage,this),s.subscribeInnerEvent(r,p,this._handleNewGroupAtTips,this),s.subscribeInnerEvent(c,this._handleMessageDeleted,this),s.subscribeInnerEvent(l,this._handleMessageRevoked,this),s.subscribeInnerEvent(u,this._handleMessageModified,this),s.subscribeInnerEvent(d,this._handleConversationUpdated,this),s.subscribeInnerEvent(h,this._reset,this),s.subscribeInnerEvent(g,this._dispose,this),console.log(`${this._name}.init`)}_handleUnreadSyncFinished(e){const{constants:{WORKFLOW_STEP:t}}=this._core,{conversationUpdateFieldList:s=[],groupTipList:n=[],isUnreadC2CMessage:o}=e.result[t.UNREAD_MESSAGE_SYNC]||{};let i=!1;s.forEach((e=>{const{conversationID:t,unreadCount:s}=e,n=this.getLocalConversation(t);n&&n.unreadCount!==s&&(n.updateUnreadCount({nextUnreadCount:s,isUnreadC2CMessage:o}),i=!0)})),i&&this.emitConversationListUpdate(),this._handleGroupAtTipsSynced(n)}_handleGroupAtTipsSynced(e){for(let t=0;t<e.length;t++)12===e[t].Event&&this._handleNewGroupAtTips(e[t])}_handleGroupListSyncFinished(e){const{constants:{WORKFLOW_STEP:t}}=this._core,s=e.result[t.GROUP_LIST_SYNC]||[],{OuterConstant:{CONV_GROUP:n}}=this._core;let o=!1;for(let e=0;e<s.length;e++){const t=s[e],i=`${n}${t.groupID}`;if(!this.hasLocalConversation(i))continue;const r=this.getLocalConversation(i);r.groupProfile=JSON.parse(JSON.stringify(t)),r.lastMessage.lastSequence<t.nextMessageSeq&&(r.lastMessage.lastSequence=t.nextMessageSeq-1),r.subType||(r.subType=t.type),o=!0}o&&this.emitConversationListUpdate()}_handleNewMessage(e){const{conversationUpdateFieldList:t=[],isInstantMessage:s=!0,isUnreadC2CMessage:n=!1,updateUnreadCount:o=!0}=e.result||{};if(console.log(`${this._name}._handleNewMessage, conversationUpdateFieldList length:`,t.length,e),0===t.length)return;this.updateLocalConversationList({conversationUpdateFieldList:t,isInstantMessage:s,isUnreadC2CMessage:n,isFromGetConversations:!1,updateUnreadCount:o});t.filter((e=>this._isConversationNeedShow(e.conversationID))).length>0&&this.emitConversationListUpdate()}_handleNewGroupAtTips(e){const{GroupTips:t=[]}=e;t.forEach((e=>{const{GroupAtTips:t,MsgBody:s,GroupAtType:n,MsgRandom:o,ClientSeq:i}=e;let r={};t?r=this._convertGroupAtTipsKey(t):s?r=Object.assign(Object.assign({},this._convertGroupAtTipsKey(s)),{sync:!0}):n&&(r=Object.assign(Object.assign({},this._convertGroupAtTipsKey(e)),{sync:!0})),r.__random=o,r.__sequence=i,this._groupAtTipsList.push(r)})),console.log(`${this._name}._handleNewGroupAtTips groupAtTipsList: ${JSON.stringify(this._groupAtTipsList)}`),this._updateGroupAtInfoList()}_convertGroupAtTipsKey(e){const{From_Account:t,GroupId:s,MsgSeq:n,GroupAtType:o}=e;return{from:t,groupID:s,sequence:n,groupAtType:o}}_updateGroupAtInfoList(){if(0===this._groupAtTipsList.length)return;const{common:e,OuterConstant:t}=this._core,s=e.getCurrentUserID();let n=!1;this._groupAtTipsList.forEach((e=>{const{groupID:o,from:i}=e;if(i!==s){const s=this.getLocalConversation(`${t.CONV_GROUP}${o}`);s&&(s.updateGroupAtInfoList(e),n=!0)}})),n&&this.emitConversationListUpdate(),this._groupAtTipsList.length=0}_handleMessageDeleted(e){var t,s;console.log(`${this._name}._handleMessageDeleted, conversationID:`,e);const{message:{messageDataHandler:n},OuterConstant:o}=this._core,i=(null==n?void 0:n.getLocalMessageList(e))||[];let r={};for(let e=(i.length||0)-1;e>=0;e--)if(!i[e].isDeleted){r=i[e];break}const a=this.getLocalConversation(e);if(!a)return;let c=!1;a.lastMessage.lastSequence===r.sequence&&a.lastMessage.lastTime===r.time||((null===(s=null===(t=this._core)||void 0===t?void 0:t.helper)||void 0===s?void 0:s.isEmpty(r))&&(r=void 0),a.updateLastMessage(r),c=!0),e.startsWith(o.CONV_C2C)&&this.updateUnreadCount(e),c&&(this.emitConversationListUpdate(),console.log(`${this._name}._handleMessageDeleted. update conversationID:${e} with lastMessage:`,a.lastMessage))}_handleMessageRevoked(e){const{messageList:t=[],updateUnreadCount:s=!0}=e;if(console.log(`${this._name}._handleMessageRevoked messageList:${t.length}`),0===t.length)return;let n=null,o=!1;t.forEach((e=>{n=this.getLocalConversation(e.conversationID),n&&(s&&n.reduceUnreadCount()&&(o=!0),n.isLastMessageRevoked({sequence:e.sequence,time:e.time})&&(n.setLastMessageRevoked(!0),n.setLastMessageRevoker(e.revoker),o=!0))})),o&&this.emitConversationListUpdate()}_handleMessageModified(e){console.log(`${this._name}._handleMessageModified`,JSON.stringify(e));const{conversationID:t,messageList:s}=e,n=this.getLocalConversation(t),{utils:{isEmpty:o},common:{getMessagePreviewText:i}}=this._core;if(o(n))return;const{lastMessage:r}=n;if(r){const e=(null==s?void 0:s[0])||{};r.lastTime===e.time&&r.lastSequence===e.sequence&&r.version!==e.version&&(r.type=e.type,r.payload=e.payload,r.messageForShow=i(e.type,e.payload),r.cloudCustomData=e.cloudCustomData,r.version=e.version,this.emitConversationListUpdate(),console.log(`${this._name} conversationID:${t} lastMessage updated`))}}_handleConversationUpdated(){this.emitConversationListUpdate()}updateLocalConversationList(e){const{isFromGetConversations:t}=e,{newConversationList:s}=this._getTmpConversationListMapping(e);this._sortConversationList(),t||this._updateNewConversationProfile(s),console.log(`${this._name}.updateLocalConversationList newConversationList: ${s.length}`)}_getTmpConversationListMapping(e){const{OuterConstant:t}=this._core,{conversationUpdateFieldList:s,isFromGetConversations:n,isInstantMessage:o,isUnreadC2CMessage:i=!1,updateUnreadCount:r}=e,a=[],c=null==s?void 0:s.length;for(let e=0;e<c;e++){const c=new Ki(s[e]),{conversationID:l,type:u}=c;if(!$i(l))if(this.hasLocalConversation(l)){const a=this.getLocalConversation(l);if(n){this.setLocalConversation(l,c),u===t.CONV_C2C?c.unreadCount=(null==a?void 0:a.unreadCount)||0:u===t.CONV_GROUP&&(c.groupProfile=JSON.parse(JSON.stringify(null==a?void 0:a.groupProfile)));continue}this._mergeConversationInfo({conversationID:l,tmpConversation:c,lastMessage:s[e].lastMessage,isFromGetConversations:n,isInstantMessage:o}),this._patchLastMessage({conversationID:l,lastMessage:s[e].lastMessage,isInstantMessage:o}),!0===r&&(null==a||a.updateUnreadCount({nextUnreadCount:c.unreadCount,isFromGetConversations:n,isUnreadC2CMessage:i}))}else a.push(c),this.setLocalConversation(l,c)}return{newConversationList:a}}_mergeConversationInfo(e){const{conversationID:t,tmpConversation:s,lastMessage:n,isFromGetConversations:o,isInstantMessage:i}=e,r=this.getLocalConversation(t),a=["unreadCount","allowType","adminForbidType","payload"];!1===i&&a.push("lastMessage"),o&&a.push("isPinned");const{utils:{isUndefined:c,isEmpty:l},common:{deepMerge:u}}=this._core;c(i)&&n&&null===(null==r?void 0:r.lastMessage.payload)&&(r.lastMessage.payload=n.payload),l(null==r?void 0:r.lastMessage.revoker)||(r.lastMessage.revoker=null);u(r,s,a,[null,void 0,"",0,NaN])}_patchLastMessage(e){const{OuterConstant:t}=this._core,{conversationID:s,lastMessage:n,isInstantMessage:o}=e,i=this.getLocalConversation(s);if(i&&n){const{payload:e,nameCard:s,nick:r,cloudCustomData:a=""}=n;o&&(e&&(i.lastMessage.payload=e),i.type===t.CONV_GROUP&&(i.lastMessage.nameCard=s,i.lastMessage.nick=r)),i.lastMessage.cloudCustomData!==a&&(i.lastMessage.cloudCustomData=a)}}_sortConversationList(){const{utils:{isEmpty:e}}=this._core,t=[...this._conversationStore.getConversationMap()],s=[],n=[],o=[],i=[];t.forEach((t=>{!0===t[1].isPinned?e(t[1].lastMessage.lastTime)?n.push(t):s.push(t):e(t[1].lastMessage.lastTime)?i.push(t):o.push(t)}));const r=s.sort(((e,t)=>t[1].lastMessage.lastTime-e[1].lastMessage.lastTime)).concat(n).concat(o.sort(((e,t)=>t[1].lastMessage.lastTime-e[1].lastMessage.lastTime))).concat(i);this._updateConversationMapFromList(r)}_updateNewConversationProfile(e){if(0===e.length)return;const t=[],s=[],{OuterConstant:{CONV_GROUP:n,CONV_C2C:o}}=this._core;e.forEach((e=>{const{conversationID:i,type:r}=e;if(r===o){const e=i.replace(o,"");t.push(e)}else if(r===n){const e=i.replace(n,"");s.push(e)}})),t.length>0&&this._updateC2CConversation(t),s.length>0&&this._updateGroupConversation(s)}_updateC2CConversation(e){var t;const{OuterConstant:{CONV_C2C:s},appStore:{userStore:n},user:o}=this._core;let i=!1;null===(t=o.userProfile)||void 0===t||t.getUserProfile({userIDList:e}).then((e=>{((null==e?void 0:e.data)||[]).forEach((e=>{var t;const{userID:o}=e,r=this.getLocalConversation(`${s}${o}`);if(r){const s=(null===(t=n.getFriend(o))||void 0===t?void 0:t.remark)||"";r.remark=s,r.userProfile=e,i=!0}})),i&&this.emitConversationListUpdate()})).catch((e=>{}))}_updateGroupConversation(e){const{OuterConstant:{CONV_GROUP:t},appStore:{groupStore:s}}=this._core;let n=!1;e.forEach((e=>{const o=s.getGroup(e),i=this.getLocalConversation(`${t}${e}`);o&&i&&(i.groupProfile=o,n=!0)})),n&&this.emitConversationListUpdate()}_isConversationNeedShow(e){const t=this.getLocalConversation(e);if(this._core.utils.isUndefined(t))return!0;const{OuterConstant:s}=this._core,n=t.type===s.CONV_TOPIC,o=t.type===s.CONV_GROUP&&t.subType===s.GRP_ROOM,i=t.type===s.CONV_GROUP&&t.subType===s.GRP_LIVE;return!(n||o||i)}updateUnreadCount(e,t=!0){var s,n;let o=!1;const i=this.getLocalConversation(e),r=null===(n=null===(s=this._core)||void 0===s?void 0:s.message.messageDataHandler)||void 0===n?void 0:n.getLocalMessageList(e);if(!i)return o;const a=i.unreadCount,c=null==r?void 0:r.filter((e=>!e.isRead&&!e._onlineOnlyFlag&&!e.isDeleted)).length;return console.log(`${this._name}._updateUnreadCount conversationID:${e} currentUnreadCount:${a} newUnreadCount:${c}`),a!==c&&(i.unreadCount=c,o=!0,!0===t&&this.emitConversationListUpdate()),o}emitConversationListUpdate(e=!1){e&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:t}}=this._core,s=this.getLocalConversationList();this._emitEvent({name:t,data:s}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var e;const t=this.getTotalUnreadMessageCount();this._totalUnreadCount!==t&&(console.log(`${this._name}._emitTotalUnreadCountUpdate from ${this._totalUnreadCount} to ${t}`),this._totalUnreadCount=t,this._emitEvent({name:null===(e=this._core)||void 0===e?void 0:e.OuterEvent.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,data:t}))}_emitEvent(e){var t;null===(t=this._core)||void 0===t||t.notificationCenter.emitOuterEvent(e.name,e)}getTotalUnreadMessageCount(){const{OuterConstant:e}=this._core,t=this.getLocalConversationList();let s=0;return t.forEach((t=>{t.type!==e.CONV_SYSTEM&&(""!==t.messageRemindType&&t.messageRemindType!==e.MSG_REMIND_ACPT_AND_NOTE||(s+=t.unreadCount))})),s}getLocalConversationList(){return[...this._conversationStore.getConversationMap().values()].filter((e=>this._isConversationNeedShow(e.conversationID)))}hasLocalConversation(e){return this._conversationStore.getConversationMap().has(e)}getLocalConversation(e){return this._conversationStore.getConversationMap().get(e)}setLocalConversation(e,t){return this._conversationStore.getConversationMap().set(e,t)}deleteLocalConversation(e){this._conversationStore.getConversationMap().delete(e)}_updateConversationMapFromList(e){this._clearConversationMap();for(const[t,s]of e)this.setLocalConversation(t,s)}_clearConversationMap(){this._conversationStore.getConversationMap().clear()}patchMessageRemindType(e,t){let s=!1;e.forEach((e=>{const n=this.getLocalConversation(e);(null==n?void 0:n.messageRemindType)!==t&&(n.messageRemindType=t,s=!0)})),console.log(`${this._name}.patchMessageRemindType conversationIDList:${e} messageRemindType:${t} hasUpdated:${s}`),s&&this.emitConversationListUpdate()}markMessageAsRead(e){const{message:{messageDataHandler:t}}=this._core,{conversationID:s,lastReadTime:n=0,lastReadSequence:o=0}=e,i=null==t?void 0:t.getLocalMessageList(s);if(0===i.length)return;const{length:r}=i;for(let e=r-1;e>=0;e--){const t=i[e],s=n&&t.time>n,r=o&&t.sequence>o;if(!s&&!r){if("in"===t.flow&&t.isRead)break;t.setIsRead(!0)}}}appendToPinnedConversation(e){const t=[...this._conversationStore.getConversationMap().entries()],s=t.findIndex((e=>!1===e[1].isPinned));t.splice(s,0,[e.conversationID,e]),this._updateConversationMapFromList(t),this.emitConversationListUpdate()}_reset(){this._clearConversationMap(),this._totalUnreadCount=0,this._groupAtTipsList=[]}_dispose(){const{notificationCenter:e,InnerEvent:{NEW_MESSAGE:t,MESSAGE_DELETED:s,MESSAGE_REVOKED:n,MESSAGE_MODIFIED:o,CONVERSATION_UPDATED:i,LOGOUT:r,DESTROY:a}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:c}}=e;e.unSubscribeInnerEvent(t,this._handleNewMessage,this),e.unSubscribeInnerEvent(t,c,this._handleNewGroupAtTips,this),e.unSubscribeInnerEvent(s,this._handleMessageDeleted,this),e.unSubscribeInnerEvent(n,this._handleMessageRevoked,this),e.unSubscribeInnerEvent(o,this._handleMessageModified,this),e.unSubscribeInnerEvent(i,this._handleConversationUpdated,this),e.unSubscribeInnerEvent(r,this._reset,this),e.unSubscribeInnerEvent(a,this._dispose,this)}};function Yi(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}var zi=new class{constructor(){this._name="SyncConversationList",this._pagingStatus="",this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(e){this._core=e;const{notificationCenter:t,InnerEvent:s,helper:n,constants:o}=e;n.registerWorkflowStep(o.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,o.WORKFLOW_STEP.CONVERSATION_RECOVER,this._syncConversationListOnReOnline,this),n.registerWorkflowStep(o.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,o.WORKFLOW_STEP.CONVERSATION_LIST_SYNC,this._syncConversationList,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this),console.log(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===qi.RESOLVED}_syncConversationListOnReOnline(){return a(this,void 0,void 0,(function*(){return this._syncConversationList()}))}_syncConversationList(){return a(this,void 0,void 0,(function*(){yield this._pagingGetConversationList(!0),this._pagingStatus=qi.RESOLVED,Hi.emitConversationListUpdate()}))}_pagingGetConversationList(e){return a(this,void 0,void 0,(function*(){try{this._pagingStatus=qi.PENDING;const{common:t}=this._core,s=yield function(e,t){return a(this,void 0,void 0,(function*(){const{fromAccount:s,pagingTimeStamp:n,pagingStartIndex:o,pagingPinnedTimeStamp:i,pagingPinnedStartIndex:r}=e;return Yi("recentcontact.page_get",{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:s,StartIndex:o,TimeStamp:n,TopStartIndex:r,TopTimeStamp:i},t)}))}({fromAccount:t.getCurrentUserID(),pagingTimeStamp:e?this._pagingTimeStamp:0,pagingStartIndex:e?this._pagingStartIndex:0,pagingPinnedTimeStamp:e?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:e?this._pagingPinnedStartIndex:0},this._core),{CompleteFlag:n,SessionItem:o=[],TimeStamp:i,StartIndex:r,TopTimeStamp:c,TopStartIndex:l}=s||{};if(o.length>0){const e=this._getConversationOptions(o);Hi.updateLocalConversationList({conversationUpdateFieldList:e,isFromGetConversations:!0,updateUnreadCount:!0}),Hi.emitConversationListUpdate()}this._pagingTimeStamp=i,this._pagingStartIndex=r,this._pagingPinnedTimeStamp=c,this._pagingPinnedStartIndex=l,1!==n&&this._pagingGetConversationList(e)}catch(e){throw console.error(`${this._name}._pagingGetConversationList fail:`,e),e}}))}_getConversationOptions(e){const{utils:{isUndefined:t}}=this._core,s=this._convertConversationKey(e);return this._filterValidConversations(s).map((e=>(t(e.lastMsg)&&(e.lastMsg={elements:[]}),e.type===xi.C2C?this._assembleC2COption(e):this._assembleGroupOption(e))))}_filterValidConversations(e){return e.filter((({type:e,userID:t})=>e===xi.C2C&&!$i(t)||2===e))}_assembleC2COption(e){var t,s,n,o,i,r;const{OuterConstant:a}=this._core,c=this._createUserprofile(e);return{conversationID:`${a.CONV_C2C}${e.userID}`,type:a.CONV_C2C,lastMessage:{lastTime:e.time,lastSequence:e.sequence,fromAccount:e.lastC2CMsgFromAccount,type:(null===(t=e.lastMsg)||void 0===t?void 0:t.elements[0])?null===(s=e.lastMsg)||void 0===s?void 0:s.elements[0].type:null,payload:(null===(n=e.lastMsg)||void 0===n?void 0:n.elements[0])?this._amendLayersOverLimitProp(e.lastMsg.elements[0].content):null,cloudCustomData:(null===(o=e.lastMsg)||void 0===o?void 0:o.cloudCustomData)||"",isRevoked:e.lastMessageFlag===Vi.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(e),revoker:(null===(r=null===(i=e.lastMsg)||void 0===i?void 0:i.revokerInfo)||void 0===r?void 0:r.revoker)||null},unreadCount:0,userProfile:c,peerReadTime:e.peerReadTime,isPinned:1===e.isPinned,customData:e.customMark||"",markList:ki(e.standardMark),conversationGroupList:[],remark:e.friendRemark||"",messageRemindType:this._transMsgRemindType(e.messageRemindType)}}_createUserprofile(e){var t;const{userID:s,nick:n,peerAvatar:o}=e,i=[{tag:"Tag_Profile_IM_Nick",value:n},{tag:"Tag_Profile_IM_Image",value:o}];return null===(t=this._core.user.userProfile)||void 0===t?void 0:t.createProfile(s,i)}_computeIsPeerRead(e){const{common:t}=this._core,s=t.getCurrentUserID(),{lastC2CMsgFromAccount:n,time:o,c2cPeerReadTime:i}=e;return n===s&&o<=i}_assembleGroupOption(e){var t,s,n;const{OuterConstant:o}=this._core;return{conversationID:`${o.CONV_GROUP}${e.groupID}`,type:o.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:e.time,lastSequence:e.sequence,fromAccount:e.msgGroupFromAccount},this._patchTypeAndPayload(e)),{cloudCustomData:(null===(t=e.lastMsg)||void 0===t?void 0:t.cloudCustomData)||"",isRevoked:e.lastMessageFlag===Vi.GROUP,onlineOnlyFlag:!1,nick:e.msgGroupFromNickName||"",nameCard:e.msgGroupFromCardName||"",revoker:(null===(n=null===(s=e.lastMsg)||void 0===s?void 0:s.revokerInfo)||void 0===n?void 0:n.revoker)||null}),groupProfile:{groupID:e.groupID,name:e.groupNick,avatar:e.groupImage,type:e.groupType,nextMessageSeq:e.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(e),peerReadTime:0,isPinned:1===e.isPinned,version:0,customData:e.customMark||"",markList:ki(e.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(e.messageRemindType),subType:e.groupType}}_convertConversationKey(e){return e.map((e=>({type:e.Type,userID:e.To_Account,nick:e.C2cNick,peerAvatar:e.C2cImage,time:e.MsgTimeStamp,sequence:e.MsgSeq,lastC2CMsgFromAccount:e.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(e.LastMsg),lastMessageFlag:e.LastMsgFlags,c2cPeerReadTime:e.LastC2cMsgPeerReadTime,peerReadTime:e.C2cPeerReadTime,friendRemark:e.C2cRemark,isPinned:e.TopFlags,standardMark:e.StandardMark,customMark:e.CustomMark,messageRemindType:e.MsgRecvOption,groupID:e.ToAccount,groupNick:e.GroupNick,groupImage:e.GroupImage,groupType:e.GroupType,nextMessageSeq:e.GroupNextMsgSeq,msgGroupFromAccount:e.MsgGroupFrom_Account,msgGroupFromNickName:e.MsgGroupFromNickName,MsgGroupFromCardName:e.MsgGroupFromCardName,unreadCount:e.UnreadMsgCount,noUnreadCount:e.GroupIgnoredUnreadSeqCount})))}_convertLastMsgKey(e){var t,s,n,o;if(null===(s=null===(t=this._core)||void 0===t?void 0:t.helper)||void 0===s?void 0:s.isEmpty(e))return null;let i="",r=null;return e.MsgBody&&(i=null===(n=e.MsgBody[0])||void 0===n?void 0:n.MsgType,r=this._parseContent(i,e.MsgBody[0])),{event:e.Event,elements:[{type:i,content:r,cloudCustomData:e.CloudCustomData}],revokerInfo:{revoker:null===(o=e.RevokerInfo)||void 0===o?void 0:o.revoker}}}_parseContent(e,t){var s;if(!t)return t;const n=this._core.message.messageFactory.getElementClass(e);return n?null===(s=n.parseServerPushElement(t))||void 0===s?void 0:s.content:t}_amendLayersOverLimitProp(e){const{LayersOverLimit:t}=e;return r(e,["LayersOverLimit"]).layersOverLimit=1===t,e}_transMsgRemindType(e){const{OuterConstant:t}=this._core;let s="";return 0===e?s=t.MSG_REMIND_ACPT_AND_NOTE:1===e?s=t.MSG_REMIND_DISCARD:2===e?s=t.MSG_REMIND_ACPT_NOT_NOTE:3===e&&(s=t.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),s}_patchTypeAndPayload(e){const{OuterConstant:t,utils:{isUndefined:s}}=this._core,{event:n,elements:o=[]}=e.lastMsg||{};return s(n)?{type:o[0]?o[0].type:null,payload:o[0]?this._amendLayersOverLimitProp(o[0].content):null}:{type:t.MSG_GRP_TIP,payload:{}}}_computeGroupUnreadCount(e){const{unreadCount:t=0,noUnreadCount:s=0}=e,n=t-s;return n>0?n:0}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};var Ji=new class{constructor(){this._name="GetConversationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationList",context:this})}getConversationList(e){return a(this,void 0,void 0,(function*(){return{code:0,data:{conversationList:this._getConversationList(e),isSyncCompleted:zi.isSyncCompleted()}}}))}_getConversationList(e){const{utils:{isUndefined:t,isArray:s,isPlainObject:n}}=this._core;if(t(e))return Hi.getLocalConversationList();if(s(e)){if(0===e.length)return[];return Hi.getLocalConversationList().filter((t=>e.includes(t.conversationID)))}if(n(e)){const{type:t,markType:s,groupName:n,hasUnreadCount:o,hasGroupAtInfo:i}=e;return Hi.getLocalConversationList().filter((e=>this._filterType(e,t)&&this._filterMarkType(e,s)&&this._filterGroupName(e,n)&&this._filterUnreadCount(e,o)&&this._filterGroupAtInfo(e,i)))}return[]}_filterType(e,t){const{OuterConstant:s}=this._core;return t!==s.CONV_C2C&&t!==s.CONV_GROUP||e.type===t}_filterGroupName(e,t){const{utils:{isString:s}}=this._core;return!s(t)||(""===t?0===e.conversationGroupList.length:e.conversationGroupList.includes(t))}_filterMarkType(e,t){const{utils:{isNumber:s}}=this._core;return!s(t)||(0===t?0===e.markList.length:e.markList.includes(t))}_filterUnreadCount(e,t){let s=!0;return!0===t?s=e.unreadCount>=1:!1===t&&(s=0===e.unreadCount),s}_filterGroupAtInfo(e,t){let s=!0;return!0===t?s=e.groupAtInfoList.length>=1:!1===t&&(s=0===e.groupAtInfoList.length),s}};function Zi(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}var Xi=new class{constructor(){this._name="GetC2CMessageRemindType"}init(e){this._core=e}get(e){return a(this,void 0,void 0,(function*(){try{const{common:t}=this._core,s=yield function(e,t){return a(this,void 0,void 0,(function*(){const{toAccount:s,userIDList:n}=e;return Zi("openim.get_c2c_peer_mute_notifications",{To_Account:s,Peer_Account:n},t)}))}({toAccount:t.getCurrentUserID(),userIDList:e},this._core),{MuteNotificationsList:n=[]}=s||{};n.forEach((e=>{const{Peer_Account:t,MuteNotifications:s}=e,n=`${this._core.OuterConstant.CONV_C2C}${t}`,o=Fi(s);Hi.patchMessageRemindType([n],o)}))}catch(e){console.error(`${this._name}.get fail:`,e)}}))}};var Qi=new class{constructor(){this._name="GetGroupMessageRemindType"}init(e){this._core=e}get(e){return a(this,void 0,void 0,(function*(){if(0!==e.length)try{const t=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupIDList:s,responseFilter:n}=e;return Zi("group_open_http_svc.get_group_self_member_info",{GroupIdList:s,ResponseFilter:n},t)}))}({groupIDList:e,responseFilter:{MemberInfoFilter:["MsgFlag"]}},this._core),{GroupInfo:s=[]}=t||{};s.forEach((e=>{var t;const{GroupId:s,MemberList:n}=e,o=(null===(t=n[0])||void 0===t?void 0:t.MsgFlag)||"",i=`${this._core.OuterConstant.CONV_GROUP}${s}`;Hi.patchMessageRemindType([i],o)}))}catch(e){console.error(`${this._name}.get fail:`,e)}}))}};var er=new class{constructor(){this._name="GetConversationProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(e){return a(this,void 0,void 0,(function*(){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s,GRP_AVCHATROOM:n},appStore:{groupStore:o},utils:{isEmpty:i}}=this._core,r={code:0,data:{}};let a=Hi.getLocalConversation(e);if(Ui(e))return r.data.conversation=a,r;let c=!1;const l=wi(e)?t:s;if(i(a)&&(c=!0,a=new Ki({conversationID:e,type:l})),console.log(`${this._name}.getConversationProfile conversationID:${e} isNewConversation:${c}`),r.data.conversation=a,null==a?void 0:a.getProfileCompleted())return r;if(l===t){const s=e.replace(t,"");yield this._handleC2CConversation(a,s),c&&(yield Xi.get([s]))}if(l===s){const t=e.replace(s,"");if(!o.getGroup(t))return r;yield this._handleGroupConversation(a,t),c&&a.groupProfile.type!==n&&(yield Qi.get([t]))}return r}))}_handleC2CConversation(e,t){return a(this,void 0,void 0,(function*(){var s,n;const{user:o,helper:i,utils:{isEmpty:r},appStore:{conversationStore:a,userStore:c}}=this._core,{conversationID:l}=e,u=yield null===(s=o.userProfile)||void 0===s?void 0:s.getUserProfile({userIDList:[t]});if(0===(null==u?void 0:u.data.length))throw new i.ChatError({code:Wi.USER_OR_GRP_NOT_FOUND});e.userProfile=null==u?void 0:u.data[0];const d=null===(n=c.getFriend(t))||void 0===n?void 0:n.remark;r(d)||e.remark===d||(e.remark=d),e.setProfileCompleted();const h=Hi.hasLocalConversation(l);console.log(`${this._name}._handleC2CConversation conversationID:${l} hasLocalConversation: ${h}`),h?a.updateConversation(l,e):Hi.appendToPinnedConversation(e)}))}_handleGroupConversation(e,t){return a(this,void 0,void 0,(function*(){const{apiMap:{getGroupProfile:s},appStore:{conversationStore:n}}=this._core,{conversationID:o}=e,i=yield s({groupID:t});e.groupProfile=null==i?void 0:i.data.group,e.setProfileCompleted();const r=Hi.hasLocalConversation(o);console.log(`${this._name}._handleGroupConversation conversationID:${o} hasLocalConversation: ${r}`),r?n.updateConversation(o,e):Hi.appendToPinnedConversation(e)}))}};var tr=new class{init(e){const{helper:t}=e;t.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return Hi.getTotalUnreadMessageCount()}};var sr=new class{constructor(){this._name="SetMessageRead"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setMessageRead",context:this})}handleC2CMessageReadSync(e){const{helper:{isEmpty:t},OuterConstant:s}=this._core;e.forEach((e=>{const{ReadC2cMsgNotify:n}=e;if(!t(n)){const{UinPairReadArray:e=[]}=n;e.forEach((e=>{const{From_Account:t,LastReadTime:n}=e,o=`${s.CONV_C2C}${t}`;console.log(`${this._name}.handleC2CMessageReadSync conversationID:${o} lastReadTime:${n}`),Hi.markMessageAsRead({conversationID:o,lastReadTime:n}),Hi.updateUnreadCount(o)}))}}))}handleGroupMessageReadSync(e){const{OuterConstant:t,utils:{isUndefined:s}}=this._core;e.forEach((e=>{const{GroupReadInfoArray:n}=e.MsgBody;s(n)||n.forEach((e=>{const{GroupId:s,LastReadMsgSeq:n}=e,o=`${t.CONV_GROUP}${s}`;console.log(`${this._name}.handleGroupMessageReadSync conversationID:${o} lastReadSequence:${n}`),Hi.markMessageAsRead({conversationID:o,lastReadSequence:n}),Hi.updateUnreadCount(o),this._clearGroupAtInfoList(o)}))}))}setMessageRead(e){return a(this,void 0,void 0,(function*(){var t,s;const{OuterConstant:n}=this._core,{conversationID:o}=e,i={code:0,data:{}},r=Hi.getLocalConversation(o);if(console.log(`${this._name}.setMessageRead conversationID:${o} unreadCount:${(null==r?void 0:r.unreadCount)||0}`),!r)return i;const a=!(null===(s=null===(t=this._core)||void 0===t?void 0:t.helper)||void 0===s?void 0:s.isEmpty(r.groupAtInfoList));if(r.type===n.CONV_GROUP&&a&&this._deleteGroupAtTips(o),0===r.unreadCount)return i;if(r.type===n.CONV_C2C){const e=this._getLocalMessageMaxTime(r);yield this._setC2CMessageRead(o,e)}if(r.type===n.CONV_GROUP){const e=this._getLocalMessageMaxSequence(r);yield this._setGroupMessageRead(o,e)}return r.type===n.CONV_SYSTEM&&(r.unreadCount=0),Hi.emitConversationListUpdate(),i}))}_deleteGroupAtTips(e){return a(this,void 0,void 0,(function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${e}`);const t=Hi.getLocalConversation(e);if(!t)return;const s=(null==t?void 0:t.groupAtInfoList)||[];if(0!==s.length)try{const{common:t}=this._core,n=s.map((e=>({From_Account:e.from,To_Account:t.getCurrentUserID(),MsgSeq:e.__sequence,MsgRandom:e.__random,GroupId:e.groupID})));yield function(e,t){return a(this,void 0,void 0,(function*(){const{messageListToDelete:s}=e;return Yi("openim.deletemsg",{DelMsgList:s},t)}))}({messageListToDelete:n},this._core),console.log(`${this._name}._deleteGroupAtTips ok. count:${s.length}`),this._clearGroupAtInfoList(e)}catch(e){console.error(`${this._name}._deleteGroupAtTips fail:`,e)}}))}_clearGroupAtInfoList(e){const t=Hi.getLocalConversation(e);if(!t)return;let s=!1;t.groupAtInfoList.length>0&&(t.clearGroupAtInfoList(),s=!0,console.log(`${this._name}._clearGroupAtInfoList conversationID:${e} needEmitConversationUpdate:${s}`)),s&&Hi.emitConversationListUpdate()}_getLocalMessageMaxTime(e){var t;const{conversationID:s}=e,n=this._core.message.messageDataHandler.getLocalMessageList(s),o=Math.max(...n.map((e=>e.time)));let i=(null===(t=null==e?void 0:e.lastMessage)||void 0===t?void 0:t.lastTime)||0;return o>i&&(console.log(`${this._name}._getLocalMessageMaxTime update lastMessageTime from ${i} to ${o}`),i=o),i}_getLocalMessageMaxSequence(e){var t;const{conversationID:s}=e,n=this._core.message.messageDataHandler.getLocalMessageList(s),o=Math.max(...n.map((e=>e.sequence)));let i=(null===(t=null==e?void 0:e.lastMessage)||void 0===t?void 0:t.lastSequence)||0;return o>i&&(console.log(`${this._name}._getLocalMessageMaxSequence update lastMessageSequence from ${i} to ${o}`),i=o),i}_setC2CMessageRead(e,t){return a(this,void 0,void 0,(function*(){try{yield function(e,t){return a(this,void 0,void 0,(function*(){return Yi("openim.msgreaded",e,t)}))}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:e.replace("C2C",""),LastedMsgTime:t,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${t}`),Hi.markMessageAsRead({conversationID:e,lastReadTime:t}),Hi.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setC2CMessageRead fail:`,e),e}}))}_setGroupMessageRead(e,t){return a(this,void 0,void 0,(function*(){try{yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,lastMessageSequence:n}=e;return Yi("group_open_http_svc.msg_read_report",{GroupId:s,MsgReadedSeq:n},t)}))}({groupID:e.replace("GROUP",""),lastMessageSequence:t},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${t}`),Hi.markMessageAsRead({conversationID:e,lastReadSequence:t}),Hi.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setGroupMessageRead fail:`,e),e}}))}};var nr=new class{constructor(){this._name="PinConversation"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"pinConversation",context:this})}handleConversationPinned(e,t){const{utils:{isArray:s}}=this._core;if(!s(e))return;const{OuterConstant:n}=this._core;let o=!1;e.forEach((e=>{const{Type:s,To_Account:i,GroupId:r}=e;let a;1===s?a=Hi.getLocalConversation(`${n.CONV_C2C}${i}`):2===s&&(a=Hi.getLocalConversation(`${n.CONV_GROUP}${r}`)),a&&(console.log(`${this._name}.handleConversationPinned conversationID:${a.conversationID} localPinned:${a.isPinned} remotePinned:${t}`),t&&!a.isPinned&&(a.isPinned=!0,o=!0),!t&&a.isPinned&&(a.isPinned=!1,o=!0))})),o&&Hi.emitConversationListUpdate(!0)}pinConversation(e){return a(this,void 0,void 0,(function*(){const{OuterConstant:t,common:s}=this._core,{conversationID:n,isPinned:o}=e,i={code:0,data:{conversationID:n}},r=Hi.getLocalConversation(n);if(r&&r.isPinned===o)return i;if(Ui(n))return r&&(r.isPinned=o),Hi.emitConversationListUpdate(!0),i;try{let e=null;wi(n)?e={Type:1,To_Account:n.replace(t.CONV_C2C,"")}:Pi(n)&&(e={Type:2,GroupId:n.replace(t.CONV_GROUP,"")});const c=yield function(e,t){return a(this,void 0,void 0,(function*(){const{fromAccount:s,operationType:n,itemList:o}=e;return Yi("recentcontact.top",{From_Account:s,OperationType:n,RecentContactItem:o},t)}))}({fromAccount:s.getCurrentUserID(),operationType:!0===o?1:2,itemList:[e]},this._core);if(console.log(`${this._name}.pinConversation ok, conversationID:${n} isPinned:${o}.`),c){if(r)r.isPinned!==o&&(r.isPinned=o);else{const e=new Ki({conversationID:n,type:wi(n)?t.CONV_C2C:t.CONV_GROUP,isPinned:o});Hi.setLocalConversation(n,e)}Hi.emitConversationListUpdate(!0)}return i}catch(e){throw console.error(`${this._name}.pinConversation fail:`,e),e}}))}};var or=new class{constructor(){this._name="DeleteConversation"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"deleteConversation",context:this})}handleConversationDeleted(e){const{utils:{isArray:t}}=this._core;if(!t(e))return;const{OuterConstant:s}=this._core,n=[];e.forEach((e=>{const{Type:t,Peer_Account:o,GroupId:i}=e;1===t&&n.push(`${s.CONV_C2C}${o}`),2===t&&n.push(`${s.CONV_GROUP}${i}`)})),console.log(`${this._name}.handleConversationDeleted conversationIDList:${n}`),this._deleteLocalConversationList(n)}deleteConversation(e){return a(this,void 0,void 0,(function*(){const{utils:{isString:t}}=this._core;if(t(e))return console.log(`${this._name}.deleteConversation conversationID:${e}`),void(yield this._deleteConversation({conversationIDList:[e],flag:Bi.ONLY_CONVERSATIONID}));const s=Object.assign({},e);s.conversationIDList.length>100&&(s.conversationIDList=s.conversationIDList.slice(0,100)),yield this._deleteConversation(s)}))}_deleteConversation(e){return a(this,void 0,void 0,(function*(){const{conversationIDList:t,clearHistoryMessage:s=!0,flag:n=0}=e;console.log(`${this._name}._deleteConversation conversationIDList:${t} clearHistoryMessage:${s}`);try{const e=yield Promise.all([this._deleteConversationFromLocal(t),this._deleteConversationFromServer(t,s)]),o=[...e[0],...e[1]];if(0===o.length)throw new this._core.helper.ChatError({code:Wi.CONV_NOT_FOUND});return console.log(`${this._name}._deleteConversation ok.`),{code:0,data:n===Bi.ONLY_CONVERSATIONID?{conversationID:o[0]}:{conversationIDList:o}}}catch(e){throw console.error(`${this._name}._deleteConversation fail:`,e),e}}))}_deleteConversationFromLocal(e){const{OuterConstant:t}=this._core;return e.filter((e=>{var s;if(!Hi.hasLocalConversation(e))return!1;const n=null===(s=Hi.getLocalConversation(e))||void 0===s?void 0:s.type;return n!==t.CONV_GROUP||this._hasLocalGroup(e)?n===t.CONV_SYSTEM&&(this._deleteLocalConversation(e),!0):(this._deleteLocalConversation(e),!0)}))}_deleteConversationFromServer(e,t){return a(this,void 0,void 0,(function*(){const{OuterConstant:s,common:n}=this._core,o={fromAccount:n.getCurrentUserID(),conversationList:[],clearHistoryMessage:t?1:0};if(e.forEach((e=>{var t;if(Hi.hasLocalConversation(e)){const n=(null===(t=Hi.getLocalConversation(e))||void 0===t?void 0:t.type)||"",i=e.replace(n,"");n===s.CONV_C2C?o.conversationList.push({To_Account:i,Type:1}):n===s.CONV_GROUP&&this._hasLocalGroup(e)&&o.conversationList.push({ToGroupid:i,Type:2})}})),0===o.conversationList.length)return[];const i=yield function(e,t){return a(this,void 0,void 0,(function*(){const{fromAccount:s,conversationList:n,clearHistoryMessage:o}=e;return Yi("recentcontact.batch_delete",{From_Account:s,ContactItem:n,ClearRamble:o},t)}))}(o,this._core);if(i){const{ResultItem:e=[]}=i,t=[];return e.length>0&&e.forEach((e=>{if(0===e.ResultCode){const n=1===e.type?`${s.CONV_C2C}${e.To_Account}`:`${s.CONV_GROUP}${e.ToGroupid}`;t.push(n)}})),this._deleteLocalConversationList(t),t}return[]}))}_deleteLocalConversationList(e){let t=!1;e.forEach((e=>{Hi.hasLocalConversation(e)&&(this._deleteLocalConversation(e,!1),t=!0)})),console.log(`${this._name}._deleteLocalConversationList isUpdate:${t}`),t&&Hi.emitConversationListUpdate()}_deleteLocalConversation(e,t=!0){const s=Hi.hasLocalConversation(e);console.log(`${this._name}._deleteLocalConversation conversationID:${e} has:${s}`),s&&(Hi.deleteLocalConversation(e),this._deleteConversationLocalMessage(e),t&&Hi.emitConversationListUpdate())}_hasLocalGroup(e){const{OuterConstant:{CONV_GROUP:t},appStore:{groupStore:s}}=this._core,n=e.replace(t,"");return!!s.getGroup(n)}_deleteConversationLocalMessage(e){console.log(`${this._name}._deleteConversationLocalMessage conversationID:${e}`),this._core.message.messageDataHandler.deleteConversationMessageList(e)}};var ir=new class{constructor(){this._name="SetConversationDraft"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(e){return a(this,void 0,void 0,(function*(){const{conversationID:t,draftText:s}=e;if(console.log(`${this._name} conversationID:${t} draftText:${s}`),!Hi.hasLocalConversation(t))throw new this._core.helper.ChatError({code:Wi.CONV_NOT_FOUND});const n=Hi.getLocalConversation(t);return null==n||n.setDraftText(s),Hi.emitConversationListUpdate(),{code:0,data:{conversation:n}}}))}};var rr=new class{constructor(){this._name="SetC2CMessageRemindType"}init(e){this._core=e}set(e,t){return a(this,void 0,void 0,(function*(){e.length>30&&(console.warn(`${this._name}.set userIDList length:${e.length} exceeds limit 30`),e.splice(30));const s=function(){const{MSG_REMIND_ACPT_AND_NOTE:e,MSG_REMIND_DISCARD:t,MSG_REMIND_ACPT_NOT_NOTE:s}=Li.core.OuterConstant;return{[e]:0,[t]:1,[s]:2}}()[t],n=yield function(e,t){return a(this,void 0,void 0,(function*(){const{userIDList:s,receiveMessageOption:n}=e;return Zi("openim.set_c2c_peer_mute_notifications",{Peer_Account:s,Mute_Notifications:n},t)}))}({userIDList:e,receiveMessageOption:s},this._core),{ErrorList:o=[]}=n||{},i=[];o.forEach((t=>{const{Peer_Account:s,ErrorCode:n}=t;i.push({userID:s,code:n});const o=e.indexOf(s);o>-1&&e.splice(o,1)}));const r=[],c=[],{OuterConstant:l}=this._core;return e.forEach((e=>{c.push(`${l.CONV_C2C}${e}`),r.push({userID:e})})),Hi.patchMessageRemindType(c,t),{code:0,data:{successUserIDList:r,failureUserIDList:i}}}))}};var ar=new class{constructor(){this._name="SetGroupMessageRemindType"}init(e){this._core=e}set(e,t){return a(this,void 0,void 0,(function*(){const{common:s,OuterConstant:n}=this._core;yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,userID:n,receiveMessageOption:o}=e;return Zi("group_open_http_svc.modify_group_member_info",{GroupId:s,Member_Account:n,MsgFlag:o},t)}))}({groupID:e,userID:s.getCurrentUserID(),receiveMessageOption:t},this._core);const o=`${n.CONV_GROUP}${e}`;return Hi.patchMessageRemindType([o],t),{code:0,data:{groupID:e,messageRemindType:t}}}))}};var cr=new class{constructor(){this._name="SetMessageRemindType"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setMessageRemindType",context:this})}handleC2CMessageRemindTypeSync(e){const{helper:{isEmpty:t},OuterConstant:s}=this._core;e.forEach((e=>{const{MuteNotificationsSync:n}=e;if(!t(n)){const{To_Account:e,MuteNotifications:t}=n,o=e.map((e=>`${s.CONV_C2C}${e}`)),i=Fi(t);console.log(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${o} messageRemindType:${i}`),Hi.patchMessageRemindType(o,i)}}))}setMessageRemindType(e){return a(this,void 0,void 0,(function*(){const t="setMessageRemindType",{groupID:s,userIDList:n,messageRemindType:o}=e,{helper:i,utils:{isUndefined:r}}=this._core;try{if(!r(s)){console.log(`${this._name}.${t} groupID:${s} messageRemindType:${o}`);return yield ar.set(s,o)}if(!r(n)){console.log(`${this._name}.${t} userIDList:${n} messageRemindType:${o}`);return yield rr.set(n,o)}throw new i.ChatError({functionName:t,message:"userIDList or groupID is required"})}catch(e){const s=new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var lr=new class{init(e){console.log("ConversationAction.init"),this._core=e,zi.init(e),Ji.init(e),er.init(e),tr.init(e),sr.init(e),nr.init(e),or.init(e),ir.init(e),cr.init(e);const{notificationCenter:t,InnerEvent:{MESSAGE_PUSH:s,DESTROY:n}}=this._core,{InnerEventSubType:{CONV_MODIFIED:o,C2C_MESSAGE_READ_SYNC:i,GROUP_MESSAGE_READ_SYNC:r,C2C_REMIND_TYPE_SYNC:a}}=t;t.subscribeInnerEvent(s,o,this._onConversationModified,this),t.subscribeInnerEvent(s,i,this._onC2CMessageReadSync,this),t.subscribeInnerEvent(s,a,this._onC2CMessageRemindTypeSync,this),t.subscribeInnerEvent(s,r,this._onGroupMessageReadSync,this),t.subscribeInnerEvent(n,this._dispose,this)}handleLoginSuccess(){zi.handleLoginSuccess()}_onConversationModified(e){const{RecentContactMod:t=[]}=e;t.forEach((e=>{const{PushType:t}=e;if(t===ji.CONV_DELETED){const{RecentContactList:t}=e.RecentContactDeleteItem;or.handleConversationDeleted(t)}if(t===ji.CONV_PINED){const{RecentContactList:t}=e.RecentContactTopItem;nr.handleConversationPinned(t,!0)}if(t===ji.CONV_UNPINED){const{RecentContactList:t}=e.RecentContactTopItem;nr.handleConversationPinned(t,!1)}}))}_onC2CMessageReadSync(e){const{C2cNotifyMsgArray:t=[]}=e;sr.handleC2CMessageReadSync(t)}_onC2CMessageRemindTypeSync(e){const{C2cNotifyMsgArray:t=[]}=e;cr.handleC2CMessageRemindTypeSync(t)}_onGroupMessageReadSync(e){const{GroupTips:t=[]}=e;sr.handleGroupMessageReadSync(t)}_dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t,DESTROY:s}}=this._core,{InnerEventSubType:{CONV_MODIFIED:n,C2C_MESSAGE_READ_SYNC:o,GROUP_MESSAGE_READ_SYNC:i,C2C_REMIND_TYPE_SYNC:r}}=e;e.unSubscribeInnerEvent(t,n,this._onConversationModified,this),e.unSubscribeInnerEvent(t,o,this._onC2CMessageReadSync,this),e.unSubscribeInnerEvent(t,r,this._onC2CMessageRemindTypeSync,this),e.unSubscribeInnerEvent(t,i,this._onGroupMessageReadSync,this),e.unSubscribeInnerEvent(s,this._dispose,this)}};var ur=new class{init(e){console.log("ReceiveMessageOptions.init"),this._core=e,rr.init(e),ar.init(e),Xi.init(e),Qi.init(e)}};const dr=e=>!wi(e)&&!Pi(e)&&!Ui(e),hr={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!dr(e)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!dr(e)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!dr(e)||"conversationID is invalid."},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},deleteConversation:[{key:"options",required:!0,rules:["string","object"],allowEmpty:!1,customValidator:e=>{const{core:{utils:{isArray:t,isObject:s,isString:n}}}=Li;if(!n(e)&&!s(e))return"options is String or Object.";if(n(e)&&dr(e))return"conversationID is invalid.";if(s(e)){if(!t(e.conversationIDList))return"conversationIDList is not Array.";if(0===e.conversationIDList.length)return"conversationIDList is empty.";if(e.conversationIDList.some((e=>{if(dr(e))return!0})))return"conversationIDList includes invalid conversationID.";if(e.clearHistoryMessage&&"boolean"!=typeof e.clearHistoryMessage)return"clearHistoryMessage is not Boolean."}return!0}}],setConversationDraft:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!wi(e)&&!Pi(e))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}}},gr={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0};var pr=new class{install(e){Li.init(e),lr.init(e),ur.init(e),Hi.init(e),e.helper.registerValidateConfig({auth:gr,params:hr})}handleLoginSuccess(){lr.handleLoginSuccess()}};const _r=new class{init(e){this.core=e}},mr="AVChatRoom",vr="AV_HISTORY_MSG",fr=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Ir=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Sr=["Role","JoinTime","MsgFlag","MsgSeq"],Er=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],Cr=0,yr=1,Mr="notStart",Or="resolved",Tr="rejected",Ar=10018,Dr=11e3,Rr=2,br=["Owner","Admin","Member"],Nr=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],Lr=0,wr=1,Pr=2,Ur=4,Gr=1,kr=2,Fr=3,$r=4,qr=5,xr=1,Vr=0,Br=4,jr=6,Wr=1,Kr=2,Hr=3,Yr=4,zr=5,Jr=6,Zr=400,Xr=300,Qr={from:!0,groupID:!0,groupName:!0,to:!0},ea={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},ta=2,sa=4,na=5,oa=7,ia=8,ra=15,aa=20,ca=21,la=2600,ua=2602,da=2603,ha=2620,ga=2621,pa=2623,_a=2660,ma=2661,va=2681,fa=2683,Ia=2684,Sa=2685,Ea=2687,Ca=e=>e===_r.core.OuterConstant.GRP_PUBLIC,ya=e=>e===_r.core.OuterConstant.GRP_AVCHATROOM,Ma=(e,t)=>{const{isArray:s}=_r.core.utils;if(!s(e)||!s(t))return!1;let n=!1;return t.forEach((({key:t,value:s})=>{const o=e.find((e=>e.key===t));o?o.value!==s&&(o.value=s,n=!0):(e.push({key:t,value:s}),n=!0)})),n},Oa=e=>{const t=[];if(!e)return t;for(let s=0,n=e.length;s<n;s++){const{Key:n,Value:o}=e[s];t.push({key:n,value:o})}return t},Ta=e=>{const t=[];for(let s=0,n=e.length;s<n;s++){const{key:n,value:o}=e[s];t.push({Key:n,Value:o})}return t},Aa=["groupID","name","avatar","type","introduction","notification","ownerID","selfInfo","createTime","infoSequence","lastInfoTime","lastMessage","nextMessageSeq","memberCount","maxMemberCount","memberList","joinOption","groupCustomField","muteAllMembers","isSupportTopic","inviteOption","_lastRevokedTime"];class Da{constructor(e){this.groupID="",this.name="",this.avatar="",this.type="",this.introduction="",this.notification="",this.ownerID="",this.createTime=0,this.selfInfo={messageRemindType:"",joinTime:"",nameCard:"",role:"",userID:"",memberCustomField:void 0,readedSequence:0,excludedUnreadSequenceList:void 0},this.lastMessage={lastTime:0,lastSequence:0,fromAccount:"",messageForShow:""},this.nextMessageSeq=0,this.memberCount=0,this.maxMemberCount=0,this.joinOption="",this.inviteOption="",this.groupCustomField=[],this.muteAllMembers=!1,this.isSupportTopic=!1,this._lastRevokedTime=0,this._initGroup(e)}_initGroup(e){const{utils:{isString:t}}=_r.core;for(const s in e)Aa.indexOf(s)<0||("selfInfo"!==s?"isSupportTopic"!==s?"muteAllMembers"===s&&t(e[s])?this.muteAllMembers="On"===e[s]:this[s]=e[s]:this.isSupportTopic=1===e[s]:this.updateSelfInfo(e[s]))}updateGroup(e){const{utils:{isArray:t,isUndefined:s,isNumber:n,isString:o},common:{deepMerge:i}}=_r.core;e.appid=void 0,e.grossTopicNextMsgSeq=void 0,e.selfInfo&&(e.selfInfo.grossTopicReadSeq=void 0);const r=JSON.parse(JSON.stringify(e));r.lastMsgTime&&(this.lastMessage.lastTime=r.lastMsgTime),o(r.muteAllMembers)&&(r.muteAllMembers="On"===r.muteAllMembers),r.groupCustomField&&Ma(this.groupCustomField,r.groupCustomField),s(r.isSupportTopic)||(this.isSupportTopic=n(r.isSupportTopic)?1===r.isSupportTopic:r.isSupportTopic),i(this,r,["members","errorCode","lastMsgTime","groupCustomField","isSupportTopic"]),t(r.members)&&r.members.length>0&&r.members.forEach((e=>{e.userID===this.selfInfo.userID&&i(this.selfInfo,e,["sequence"])}))}updateSelfInfo(e){const{nameCard:t,joinTime:s,role:n,messageRemindType:o,readedSequence:i,excludedUnreadSequenceList:r}=e,{common:{deepMerge:a}}=_r.core;a(this.selfInfo,{nameCard:t,joinTime:s,role:n,messageRemindType:o,readedSequence:i,excludedUnreadSequenceList:r},[],["",null,void 0,0,NaN])}setSelfNameCard(e){this.selfInfo.nameCard=e}}var Ra=new class{constructor(){this._name="GroupDataHandler"}init(e){this._core=e;const{appStore:{groupStore:t}}=e;this._groupMap=t.getGroupMap(),console.log(`${this._name}.init`)}hasLocalGroup(e){return this._groupMap.has(e)}getLocalGroup(e){return this._groupMap.get(e)}updateLocalGroup(e){const{common:{getCurrentUserID:t}}=this._core;let s;e.forEach((e=>{var t;s=e.groupID,this.hasLocalGroup(s)?null===(t=this.getLocalGroup(s))||void 0===t||t.updateGroup(e):this._groupMap.set(s,new Da(e))}));const n=t();for(const[,e]of this._groupMap)e.selfInfo.userID=n,"Owner"===e.selfInfo.role&&(e.ownerID=n)}deleteLocalGroup(e){this._groupMap.delete(e)}getLocalGroupList(){return[...this._groupMap.values()]}clearLocalGroup(){this._groupMap.clear()}emitGroupListUpdate(){const e=this.getLocalGroupList(),{OuterEvent:{GROUP_LIST_UPDATED:t},notificationCenter:s}=this._core;s.emitOuterEvent(t,{name:t,data:e})}updateConversationGroupProfile(e){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core,n=`${s}${e}`;if(t.getConversation(n)){const s=this.getLocalGroup(e);t.updateConversation(n,{groupProfile:s})}}reset(){this.clearLocalGroup()}};function ba(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}const Na=function(e){return{code:0,data:e||{}}};var La=new class{constructor(){this._name="GetGroupList",this._pagingStatus=Mr,this.PAGING_GRP_COUNT_LIMIT=200}init(e){this._core=e;const{helper:t,constants:{WORKFLOW_NAME:s,WORKFLOW_STEP:n}}=e;t.registerApi({apiName:"getGroupList",context:this}),t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_LOGIN,n.GROUP_LIST_SYNC,this._syncGroupList,this)}getGroupList(){return a(this,void 0,void 0,(function*(){if(console.log(`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===Tr||this._pagingStatus===Mr)return this._syncGroupList().then((()=>{const e=Ra.getLocalGroupList();return Na({groupList:e,isSyncCompleted:this._isSyncCompleted()})})).catch((e=>{throw console.error(`${this._name}.getGroupList fail:`,e),e}));const e=Ra.getLocalGroupList();return console.log(`${this._name}.getGroupList return group count:${e.length}`),Na({groupList:e,isSyncCompleted:this._isSyncCompleted()})}))}_syncGroupList(){return a(this,void 0,void 0,(function*(){this._pagingStatus===Mr&&Ra.clearLocalGroup();const e=this.PAGING_GRP_COUNT_LIMIT,t=[];try{yield this._pagingGetGroupList({limit:e,offset:0,groupList:t}),this._pagingStatus=Or,this._groupListTreeShaking(t),Ra.updateLocalGroup(t);const s=Ra.getLocalGroupList();return console.log(`${this._name}._syncGroupList ok, count:${s.length}`),Ra.emitGroupListUpdate(),s}catch(e){throw this._pagingStatus=Tr,console.error(`${this._name}._syncGroupList fail:`,e),e}}))}_pagingGetGroupList(e){return a(this,void 0,void 0,(function*(){const{isCommunityRelay:t=!1,groupList:s}=e;let n,{limit:o,offset:i}=e;const r=[...fr];t&&(n=this._core.OuterConstant.GRP_COMMUNITY,r.push("AtInfoList"));try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{type:s,limit:n,offset:o,memberAccount:i,responseFilter:r}=e;return ba(s?"million_group_open_http_svc.get_joined_group_list":"group_open_http_svc.get_joined_group_list",{Limit:n,Offset:o,Member_Account:i,ResponseFilter:r,SupportTopic:0,NeedAppDefineData:1},t)}))}({type:n,limit:o,offset:i,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:r,SelfInfoFilter:[...Sr]}},this._core),{GroupIdList:c=[],TotalCount:l=0}=e||{},u=this._convertGroupKey(c);s.push(...u);const d=i+o,h=!(l>d),g=`offset:${i} limit:${o} total:${l} isCompleted:${h} current:${s.length} isCommunityRelay:${t}`;return console.log(`${this._name}._pagingGetGroupList ok. ${g}`),t?h?s:(i=d,this._pagingGetGroupList({isCommunityRelay:!0,limit:o,offset:i,groupList:s})):h?(console.log(`${this._name}._pagingGetGroupList start to get community list`),i=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:o,offset:i,groupList:s})):(i=d,this._pagingGetGroupList({limit:o,offset:i,groupList:s}))}catch(e){if(e.ErrorCode===Ar)return console.warn(`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${o}`),o=50,this._pagingGetGroupList({isCommunityRelay:t,limit:o,offset:i,groupList:s});if(t)return e.code===Dr&&console.log(`${this._name}._pagingGetGroupList ok. community unavailable`),s;throw e}}))}_groupListTreeShaking(e){const t=new Map([...Ra.getLocalGroupList()]);for(let s=0,n=e.length;s<n;s++)t.delete(e[s].groupID);const s=[...t.keys()];for(let e=0,t=s.length;e<t;e++)Ra.deleteLocalGroup(s[e])}_isSyncCompleted(){return this._pagingStatus===Or}_convertGroupKey(e){const t=[];for(let s=0,n=e.length;s<n;s++){const{AppDefinedData:n,ApplyJoinOption:o,CreateTime:i,FaceUrl:r,GroupId:a,Introduction:c,InviteJoinOption:l,LastInfoTime:u,LastMsgTime:d,MemberNum:h,MaxMemberNum:g,MuteAllMember:p,Name:_,NextMsgSeq:m,Notification:v,Owner_Account:f,Type:I,LastRecallTime:S,SelfInfo:E}=e[s],C=Oa(n),y=this._convertSelfInfo(E);t.push({groupCustomField:C,joinOption:o,createTime:i,avatar:r,groupID:a,introduction:c,inviteOption:l,lastInfoTime:u,lastMsgTime:d,memberCount:h,maxMemberCount:g,muteAllMembers:p,name:_,nextMessageSeq:m,notification:v,ownerID:f,type:I,_lastRevokedTime:S,selfInfo:y})}return t}_convertSelfInfo(e){const{JoinTime:t,MsgFlag:s,MsgSeq:n,NoUnreadSeqList:o,Role:i}=e;return{joinTime:t,messageRemindType:s,readedSequence:n,excludedUnreadSequenceList:o,role:i}}};var wa=new class{constructor(){this._name="CreateGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"createGroup",context:this})}createGroup(e){return a(this,void 0,void 0,(function*(){var t;this._preCheckParams(e),console.log(`${this._name}.createGroup options:`,e);try{const{utils:{isEmpty:s},common:{getCurrentUserID:n}}=this._core,o=yield function(e,t){return a(this,void 0,void 0,(function*(){const{name:s,type:n,groupID:o,introduction:i,notification:r,avatar:a,maxMemberNum:c,joinOption:l,inviteOption:u,memberList:d,groupCustomField:h,isSupportTopic:g}=e;let p;return d&&(p=d.map((e=>{const{userID:t,memberCustomField:s}=e;return{Member_Account:t,AppMemberDefinedData:s?Ta(s):void 0}}))),ba("group_open_http_svc.create_group",{Name:s,Type:n,GroupId:o,Introduction:i,Notification:r,FaceUrl:a,MaxMemberCount:c,ApplyJoinOption:l,InviteJoinOption:u,MemberList:p,AppDefinedData:h,SupportTopic:g,webPushFlag:1},t)}))}(Object.assign(Object.assign({},e),{ownerID:n()}),this._core),{GroupId:i,OverJoinedGroupLimit_Account:r=[]}=o||{};if(console.log(`${this._name}.createGroup ok, groupType:${e.type} groupID:${i} overLimitUserIDList:${r}`),s(e.memberList)||s(r)||(e.memberList=null===(t=e.memberList)||void 0===t?void 0:t.filter((e=>r.includes(e.userID)))),this._notNeedUpdateLocalGroup(e))return Na({group:new Da(e)});Ra.updateLocalGroup([Object.assign(Object.assign({},e),{groupID:i})]),this._sendCustomMessage(i,e.type);const c=Ra.getLocalGroup(i);return Ra.emitGroupListUpdate(),Na({group:c})}catch(e){throw console.error(`${this._name}.createGroup fail:`,e),e}}))}_preCheckParams(e){const{type:t,groupID:s}=e,{utils:{isEmpty:n,isUndefined:o},common:{isCommunity:i}}=this._core,r=!n(s);if(!(()=>{const{GRP_PUBLIC:e,GRP_WORK:t,GRP_MEETING:s,GRP_AVCHATROOM:n,GRP_COMMUNITY:o}=_r.core.OuterConstant;return[e,t,s,n,o]})().includes(t))throw new this._core.helper.ChatError({code:la});if(!i({type:t})){if(r&&i({groupID:s}))throw new this._core.helper.ChatError({code:ua});o(e.isSupportTopic)||(e.isSupportTopic=void 0)}if(this._canIUseMemberList(t)||o(e.memberList)||(e.memberList=void 0),this._canIUseJoinOption(t)||o(e.joinOption)||(e.joinOption=void 0),this._canIUseTopic(e)&&(e.isSupportTopic=!0===e.isSupportTopic?1:0),i({type:t})&&r&&!i({groupID:s}))throw new this._core.helper.ChatError({code:ua})}_canIUseMemberList(e){return!ya(e)}_canIUseJoinOption(e){return Ca(e)||this._core.common.isCommunity({type:e})}_canIUseTopic(e){const{type:t,isSupportTopic:s}=e,{utils:{isUndefined:n},common:{isCommunity:o}}=this._core;return o({type:t})&&n(s)}_notNeedUpdateLocalGroup(e){const{type:t,isSupportTopic:s}=e,{OuterConstant:n}=this._core;return t===n.GRP_AVCHATROOM||t===n.GRP_COMMUNITY&&1===s}_sendCustomMessage(e,t){var s,n,o,i,r,a;const{OuterConstant:c}=this._core;let l="Create Group",u=Cr;t===c.GRP_COMMUNITY&&(l="Create Community",u=yr);const d={to:e,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:l,cmd:u,opUser:this._core.store.get("login").userId,version:4})}},h=null===(o=null===(n=null===(s=this._core)||void 0===s?void 0:s.message)||void 0===n?void 0:n.messageFactory)||void 0===o?void 0:o.createCustomMessage(d);null===(a=null===(r=null===(i=this._core)||void 0===i?void 0:i.message)||void 0===r?void 0:r.messageSender)||void 0===a||a.sendMessage(h,{})}};var Pa=new class{constructor(){this._name="AttributesDataHandler",this._groupAttributesCache=new Map,this._groupAttributesCacheValuesCopy={}}init(e){this._core=e;const{helper:t,constants:s}=e;t.registerWorkflowStep(s.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,s.WORKFLOW_STEP.GROUP_ATTRIBUTE_CACHE_CLEAR,this.clearLocalMainSequence,this)}clearLocalMainSequence(){this._groupAttributesCache.forEach((e=>{e.localMainSequence=0}))}isGroupAttributesUpdated(e){const{elements:{newGroupProfile:t}}=e,{utils:{isEmpty:s,isUndefined:n}}=this._core;return!n(t)&&!s(t.groupAttributeOption)}handleGroupAttributesUpdated(e){const{groupID:t,groupAttributeOption:s}=e,{serverMainSequence:n,groupAttributeList:o=[],operation:i}=s;console.log(`${this._name}.handleGroupAttributesUpdated groupID:${t} operation:${i}`);const{utils:{isUndefined:r}}=this._core;r(i)||(this.refreshGroupAttributesCache({groupID:t,serverMainSequence:n,groupAttributeList:o,operation:i}),this.emitGroupAttributesUpdated(t))}initGroupAttributesCache(e){const{groupID:t,avChatRoomKey:s}=e;this._groupAttributesCache.set(t,{lastUpdateTime:0,localMainSequence:0,serverMainSequence:0,avChatRoomKey:s,values:new Map}),console.log(`${this._name}.initGroupAttributesCache. groupID:${t} avChatRoomKey:${s}`)}hasGroupAttributesCache(e){return this._groupAttributesCache.has(e)}getGroupAttributesCache(e){return this.hasGroupAttributesCache(e)||this.initGroupAttributesCache({groupID:e}),this._groupAttributesCache.get(e)}deleteGroupAttributesCache(e){this.hasGroupAttributesCache(e)&&this._groupAttributesCache.delete(e)}refreshGroupAttributesCache(e){const{groupID:t,serverMainSequence:s,groupAttributeList:n,operation:o}=e;if(this.hasGroupAttributesCache(t)){const e=this.getGroupAttributesCache(t),{localMainSequence:i}=e;o!==qr&&s-i!=1||(e.serverMainSequence=s,e.localMainSequence=s,e.lastUpdateTime=Date.now(),this._updateGroupAttributesCacheValues({groupAttributes:e,groupAttributeList:n,operation:o})),s-i>1&&(e.serverMainSequence=s),this._groupAttributesCache.set(t,e),console.log(`${this._name}.refreshGroupAttributesCache. operation:${o} localMainSequence:${i} serverMainSequence:${s}`)}}_updateGroupAttributesCacheValues(e){const{groupAttributes:t,groupAttributeList:s=[],operation:n}=e;n!==Fr?n!==$r?(n===Gr&&t.values.clear(),s.forEach((e=>{const{key:s,value:n,sequence:o}=e;t.values.set(s,{value:n,sequence:o})}))):s.forEach((e=>{t.values.delete(e.key)})):t.values.clear()}getGroupAttributesCacheValues(e){var t;const{groupID:s,keyList:n=[]}=e,o={};if(this.hasGroupAttributesCache(s)){const{values:e}=this.getGroupAttributesCache(s);if(0===n.length){for(const s of e.keys())o[s]=(null===(t=e.get(s))||void 0===t?void 0:t.value)||"";return o}return n.forEach((t=>{var s;e.has(t)&&(o[t]=(null===(s=e.get(t))||void 0===s?void 0:s.value)||"")})),o}return o}saveGroupAttributesCacheValuesCopy(e){this._groupAttributesCacheValuesCopy=this.getGroupAttributesCacheValues({groupID:e})}emitGroupAttributesUpdated(e){var t;const s=this.getGroupAttributesCacheValues({groupID:e}),{updatedKeyList:n,deletedKeyList:o}=this._computeValuesChangedData(s);console.log(`${this._name}.emitGroupAttributesUpdated update count:${n.length}, delete count:${o.length}`),0===n.length&&0===o.length||this._emitEvent({name:null===(t=this._core)||void 0===t?void 0:t.OuterEvent.GROUP_ATTRIBUTES_UPDATED,data:{groupID:e,groupAttributes:s,updatedKeyList:n,deletedKeyList:o}})}_computeValuesChangedData(e){const{utils:{isUndefined:t}}=this._core,s=[],n=[];return Object.keys(e).forEach((t=>{e[t]!==this._groupAttributesCacheValuesCopy[t]&&s.push(t)})),Object.keys(this._groupAttributesCacheValuesCopy).forEach((s=>{t(e[s])&&n.push(s)})),this._groupAttributesCacheValuesCopy={},{updatedKeyList:s,deletedKeyList:n}}_emitEvent(e){var t;null===(t=this._core)||void 0===t||t.notificationCenter.emitOuterEvent(e.name,e)}convertKeyValueMapToList(e){const t=[];return Object.keys(e).forEach((s=>{t.push({key:s,value:e[s]})})),t}};var Ua=new class{constructor(){this._name="DismissGroup"}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"dismissGroup",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}dismissGroup(e){return a(this,void 0,void 0,(function*(){console.log(`${this._name}.dismissGroup groupID:${e}`);try{yield function(e,t){return a(this,void 0,void 0,(function*(){return ba("group_open_http_svc.destroy_group",{GroupId:e},t)}))}(e,this._core),console.log(`${this._name}.dismissGroup ok.`);const{type:t}=Ra.getLocalGroup(e);return Ra.deleteLocalGroup(e),Ra.emitGroupListUpdate(),Pa.deleteGroupAttributesCache(e),Na({groupID:e,type:t})}catch(e){throw console.error(`${this._name}.dismissGroup fail:`,e),e}}))}};var Ga=new class{constructor(){this._name="GetGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(e){return a(this,void 0,void 0,(function*(){const{groupID:t,groupCustomFieldFilter:s}=e,n={groupIDList:[t],responseFilter:{GroupBaseInfoFilter:[...fr],AppDefinedDataFilter_Group:s,MemberInfoFilter:[...Er]}};try{const e=yield this.getGroupProfileAdvance(n),{successGroupList:s,failureGroupList:o}=e;if(o.length>0)throw o[0];let i;return!Ra.hasLocalGroup(t)&&ya(s[0].type)?i=new Da(s[0]):(Ra.updateLocalGroup(s),i=Ra.getLocalGroup(t)),i.isSupportTopic||Ra.updateConversationGroupProfile(t),console.log(`${this._name}.getGroupProfile ok.`),Na({group:i})}catch(e){throw console.error(`${this._name}.getGroupProfile fail:`,e),e}}))}getGroupProfileAdvance(e){return a(this,void 0,void 0,(function*(){const{groupIDList:t}=e,{common:{isCommunity:s}}=this._core,n=t.filter((e=>!s({groupID:e}))),o=t.filter((e=>s({groupID:e})));n.length>50&&(n.length=50),o.length>50&&(o.length=50);const i=yield Promise.all([this._getGroupProfileAdvance(Object.assign(Object.assign({},e),{groupIDList:n})),this._getGroupProfileAdvance(Object.assign(Object.assign({},e),{groupIDList:o,isCommunityProfile:!0}))]),r=[],a=[];return i.forEach((e=>{r.push(...e.successGroupList),a.push(...e.failureGroupList)})),{successGroupList:r,failureGroupList:a}}))}_getGroupProfileAdvance(e){return a(this,void 0,void 0,(function*(){const{isCommunityProfile:t=!1}=e,s=r(e,["isCommunityProfile"]);if(0===s.groupIDList.length)return{successGroupList:[],failureGroupList:[]};try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupIDList:s,responseFilter:n}=e;return ba("group_open_http_svc.get_group_self_member_info",{GroupIdList:s,ResponseFilter:n},t)}))}(s,this._core),{GroupInfo:t=[]}=e||{},n=this._convertGroupProfileKey(t),{utils:{isUndefined:o}}=this._core,i=n.filter((e=>o(e.errorCode)||0===e.errorCode)),r=n.filter((e=>e.errorCode&&0!==e.errorCode)).map((e=>({code:e.errorCode,message:e.errorInfo,data:{groupID:e.groupID}})));return console.log(`${this._name}._getGroupProfileAdvance ok, groupID:${s.groupIDList.join(",")}`),{successGroupList:i,failureGroupList:r}}catch(e){if(t)return{successGroupList:[],failureGroupList:[]};throw e}}))}_convertGroupProfileKey(e){const t=[];for(let s=0,n=e.length;s<n;s++){const{AppDefinedData:n,ApplyJoinOption:o,CreateTime:i,FaceUrl:r,GroupId:a,InfoSeq:c,Introduction:l,InviteJoinOption:u,LastInfoTime:d,LastMsgTime:h,MaxMemberNum:g,MemberNum:p,MuteAllMember:_,Name:m,NextMsgSeq:v,Notification:f,Owner_Account:I,ShutUpAllMember:S,ShutUpUntil:E,Type:C,MemberList:y,ErrorCode:M,ErrorInfo:O}=e[s],T=Oa(n),A=this._convertMembers(y);t.push({groupCustomField:T,joinOption:o,createTime:i,avatar:r,groupID:a,infoSequence:c,introduction:l,inviteOption:u,lastInfoTime:d,lastMsgTime:h,maxMemberCount:g,memberCount:p,muteAllMembers:_,name:m,nextMessageSeq:v,notification:f,ownerID:I,shutUpAllMember:S,muteUntil:E,type:C,members:A,errorCode:M,errorInfo:O})}return t}_convertMembers(e){if(!e)return[];const t=[];for(let s=0,n=e.length;s<n;s++){const{AppMemberDefinedData:n,JoinTime:o,Member_Account:i,MsgFlag:r,MsgSeq:a,NameCard:c,Role:l}=e[s],u=Oa(n);t.push({memberCustomField:u,joinTime:o,userID:i,messageRemindType:r,sequence:a,nameCard:c,role:l})}return t}};var ka=new class{constructor(){this._name="JoinGroup"}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"joinGroup",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}joinGroup(e){return a(this,void 0,void 0,(function*(){const{groupID:t}=e;try{if(Ra.hasLocalGroup(t))try{return yield Ga.getGroupProfile({groupID:t}),Na({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS})}catch(s){console.warn(`${this._name}.joinGroup ${t} was unjoined, start to join!`),Ra.deleteLocalGroup(t);return yield this._applyJoinGroup(e)}return yield this._applyJoinGroup(e)}catch(e){throw console.error(`${this._name}.joinGroup fail:`,e),e}}))}_applyJoinGroup(e){return a(this,void 0,void 0,(function*(){const{OuterConstant:t,helper:s}=this._core,{groupID:n}=e,o=Object.assign({},e),i=s.checkBusinessCapabilityBits(vr);i&&(o.historyMessageFlag=1);const r=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,applyMessage:n,historyMessageFlag:o}=e;return ba("group_open_http_svc.apply_join_group",{GroupId:s,ApplyMsg:n,HugeGroupHistoryMsgFlag:o},t)}))}(o,this._core),{JoinedStatus:c,LongPollingKey:l,StartSeq:u,HugeGroupFlag:d,AVChatRoomKey:h,RspMsgList:g=[]}=r||{},p=`groupID:${n} joinedStatus:${c} longPollingKey:${l} startSeq:${u} avChatRoomFlag:${d} canGetAVChatRoomHistoryMsg:${i}, historyMessageCount:${g.length}`;if(console.log(`${this._name}._applyJoinGroup ok, ${p}`),c===t.JOIN_STATUS_WAIT_APPROVAL)return{code:0,data:{status:t.JOIN_STATUS_WAIT_APPROVAL}};if(c===t.JOIN_STATUS_SUCCESS){let e=null;try{e=(yield Ga.getGroupProfile({groupID:n})).data.group}catch(t){e=new Da({groupID:n}),console.warn(`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${n}, errorCode:`,null==t?void 0:t.code)}return this._handleJoinResult({group:e,avChatRoomFlag:d,longPollingKey:l,startSequence:u,avChatRoomKey:h,historyMessageList:g})}throw new this._core.helper.ChatError({code:_a})}))}_handleJoinResult(e){const{group:t,avChatRoomFlag:s,avChatRoomKey:n}=e;return 1===s?(Pa.initGroupAttributesCache({groupID:t.groupID,avChatRoomKey:n}),Na(e)):(Ra.updateLocalGroup([t]),Ra.emitGroupListUpdate(),Na({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:t}))}};var Fa=new class{constructor(){this._name="QuitGroup"}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"quitGroup",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}quitGroup(e){return a(this,void 0,void 0,(function*(){if(!Ra.hasLocalGroup(e))throw new this._core.helper.ChatError({code:pa});try{yield function(e,t){return a(this,void 0,void 0,(function*(){return ba("group_open_http_svc.quit_group",{GroupId:e},t)}))}(e,this._core),console.log(`${this._name}.quitGroup ok, groupID:${e}`);const{type:t}=Ra.getLocalGroup(e);return Ra.deleteLocalGroup(e),Ra.emitGroupListUpdate(),Pa.deleteGroupAttributesCache(e),Na({groupID:e,type:t})}catch(e){throw console.error(`${this._name}.quitGroup fail:`,e),e}}))}};var $a=new class{constructor(){this._name="SearchGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(e){return a(this,void 0,void 0,(function*(){console.log(`${this._name}.searchGroupByID groupID:${e}`);try{const t=yield function(e,t){return a(this,void 0,void 0,(function*(){return ba("group_open_http_svc.get_group_public_info",{GroupIdList:[e],GroupBasePublicInfoFilter:[...Ir]},t)}))}(e,this._core),{GroupInfo:s=[]}=t||{},{AppDefinedData:n=[],ApplyJoinOption:o,CreateTime:i,FaceUrl:r,Introduction:c,InviteJoinOption:l,MaxMemberNum:u,MemberNum:d,Name:h,Owner_Account:g,Type:p,ErrorCode:_,ErrorInfo:m}=s[0];if(0!==_)throw new this._core.helper.ChatError({code:_,message:m});console.log(`${this._name}.searchGroupByID ok.`);const v=Oa(n),f=new Da({groupID:e,name:h,avatar:r,introduction:c,joinOption:o,inviteOption:l,maxMemberCount:u,memberCount:d,type:p,ownerID:g,createTime:i,groupCustomField:v});return Na({group:f})}catch(e){throw console.error(`${this._name}.searchGroupByID fail:`,e),e}}))}};var qa=new class{constructor(){this._name="UpdateGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(e){return a(this,void 0,void 0,(function*(){const{groupID:t}=e,{utils:{isUndefined:s}}=this._core;let n=Ra.getLocalGroup(t);if(n){const{type:t}=n;this._canIUseJoinOption(t)||s(e.joinOption)||(console.warn(`${this._name}.updateGroupProfile joinOption is unavailable for Work/Meeting/AVChatRoom`),e.joinOption=void 0)}s(e.muteAllMembers)||(e.muteAllMembers=!0===e.muteAllMembers?"On":"Off");try{return yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,name:n,avatar:o,introduction:i,notification:r,muteAllMembers:a,joinOption:c,inviteOption:l,groupCustomField:u}=e;return ba("group_open_http_svc.modify_group_base_info",{GroupId:s,Name:n,FaceUrl:o,Introduction:i,Notification:r,ShutUpAllMember:a,ApplyJoinOption:c,InviteJoinOption:l,AppDefinedData:u?Ta(u):void 0},t)}))}(e,this._core),console.log(`${this._name}.updateGroupProfile groupID:${t} ok.`),n?(n.updateGroup(e),Ra.emitGroupListUpdate()):n=new Da(e),Na({group:n})}catch(e){throw console.error(`${this._name}.updateGroupProfile groupID:${t} fail:`,e),e}}))}_canIUseJoinOption(e){return Ca(e)||this._core.common.isCommunity({type:e})}};var xa=new class{constructor(){this._name="ChangeGroupOwner"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(e){return a(this,void 0,void 0,(function*(){const t="changeGroupOwner",{groupID:s,newOwnerID:n}=e,o=Ra.getLocalGroup(s),{helper:i,OuterConstant:r,common:{getCurrentUserID:c}}=this._core;if((null==o?void 0:o.type)===r.GRP_AVCHATROOM)throw new i.ChatError({functionName:t,code:ha});if(n===c())throw new i.ChatError({functionName:t,code:ga});console.log(`${this._name}.${t} groupID:${s} newOwnerID:${n}`);try{return yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,newOwnerID:n}=e;return ba("group_open_http_svc.change_group_owner",{GroupId:s,NewOwner_Account:n},t)}))}(e,this._core),console.log(`${this._name}.${t} ok.`),o.ownerID=n,Ra.emitGroupListUpdate(),Na({group:o})}catch(e){const s=new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var Va=new class{constructor(){this._name="GetGroupOnlineMemberCount",this._onlineMemberCountMap=new Map}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}getGroupOnlineMemberCount(e){return a(this,void 0,void 0,(function*(){const t="getGroupOnlineMemberCount",s=Ra.hasLocalGroup(e);if(console.log(`${this._name}.${t} groupID:${e} hasLocalGroup:${s}`),!s)return Na({memberCount:0});const n=Date.now();if(this._onlineMemberCountMap.has(e)){const t=this._onlineMemberCountMap.get(e),{lastReqTime:s=0,memberCount:o=0}=t||{};if(n-s<=6e4)return Na({memberCount:o})}try{const s=yield function(e,t){return a(this,void 0,void 0,(function*(){return ba("group_open_http_svc.get_online_member_num",{GroupId:e},t)}))}(e,this._core),{OnlineMemberNum:n=0}=s||{};return this._onlineMemberCountMap.set(e,{lastReqTime:Date.now(),memberCount:n}),console.log(`${this._name}.${t} ok. groupID:${e} memberCount:${n}`),Na({memberCount:n})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var Ba=new class{init(e,t){console.log("GroupAction.init"),La.init(e),wa.init(e),Ua.init(e,t),ka.init(e,t),Fa.init(e,t),$a.init(e),Ga.init(e),qa.init(e),xa.init(e),Va.init(e,t)}dismissGroup(e){return Ua.dismissGroup(e)}joinGroup(e){return ka.joinGroup(e)}quitGroup(e){return Fa.quitGroup(e)}getGroupOnlineMemberCount(e){return Va.getGroupOnlineMemberCount(e)}};function ja(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}var Wa=new class{constructor(){this._name="GetGroupApplicationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return a(this,void 0,void 0,(function*(){const e="getGroupApplicationList";try{const t=yield Promise.all([this._getGroupApplicationList(),this._getGroupApplicationList({type:this._core.OuterConstant.GRP_COMMUNITY})]);console.log(`${this._name}.${e} ok.`);const s=this._handleGroupApplicationResult([...t[0],...t[1]]);return Na({applicationList:s})}catch(t){const s=new this._core.helper.ChatError({functionName:e,code:null==t?void 0:t.errorCode,message:null==t?void 0:t.errorInfo});throw console.error(`${this._name}.${e} fail:`,s),s}}))}_getGroupApplicationList(e){return a(this,void 0,void 0,(function*(){const{type:t,startTime:s=0,limit:n=20}=e||{},{common:o}=this._core;let i;try{i=yield function(e,t){return a(this,void 0,void 0,(function*(){const{type:s,startTime:n,limit:o,handleAccount:i}=e;return ja(_r.core.common.isCommunity({type:s})?"million_group_open_http_svc.get_pendency":"group_open_http_svc.get_pendency",{StartTime:n,Limit:o,Handle_Account:i},t)}))}({type:t,startTime:s,limit:n,handleAccount:o.getCurrentUserID()},this._core)}catch(e){if(11e3!==(null==e?void 0:e.errorCode))throw e;i={}}const{NextStartTime:r=0,PendencyList:c=[]}=i||{};if(0===r)return c;const l=yield this._getGroupApplicationList(Object.assign(Object.assign({},e),{startTime:r}));return[...c,...l]}))}_handleGroupApplicationResult(e){const t=[];return e.forEach((e=>{const s=this._convertApplicationData(e),{handled:n}=s,o=r(s,["handled"]);0===n&&t.push(o)})),t}_convertApplicationData(e){const{Handled:t,AddTime:s,ApplyInviteMsg:n,Authentication:o,FromUserNickName:i,From_Account:r,GroupId:a,GroupName:c,PendencyType:l,To_Account:u}=e;return{handled:t,messageKey:s,applicant:r,applicantNick:i,groupID:a,groupName:c,authentication:o,applicationType:l,userID:u,note:n}}};var Ka=new class{constructor(){this._name="HandleGroupApplication"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(e){return a(this,void 0,void 0,(function*(){const t="handleGroupApplication",{application:s}=e,n=this._handleParams(e);try{(null==s?void 0:s.applicationType)===Rr?yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,invitee:a}=e;return ja(_r.core.common.isCommunity({groupID:s})?"million_group_open_http_svc.handle_invite_join_permission_group":"group_open_http_svc.handle_invite_join_permission_group",{GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,Invited_Account:a},t)}))}(n,this._core):yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,messageKey:a}=e;return ja(_r.core.common.isCommunity({groupID:s})?"million_group_open_http_svc.handle_apply_join_group":"group_open_http_svc.handle_apply_join_group",{GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,MsgKey:a},t)}))}(n,this._core),console.log(`${this._name}.${t} ok.`);const e=Ra.getLocalGroup(n.groupID);return Na({group:e})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}_handleParams(e){var t;const{handleAction:s,handleMessage:n,message:o,application:i}=e;let r,a,c,l,u;if(o){const{payload:e}=o||{};r=e.operatorID,a=null===(t=e.groupProfile)||void 0===t?void 0:t.groupID,c=e.authentication,l=e.messageKey}else r=(null==i?void 0:i.applicant)||"",a=(null==i?void 0:i.groupID)||"",c=(null==i?void 0:i.authentication)||"",l=(null==i?void 0:i.messageKey)||0;return(null==i?void 0:i.applicationType)===Rr&&(u=i.userID),{handleAction:s,handleMessage:n,applicant:r,invitee:u,groupID:a,authentication:c,messageKey:l}}};var Ha=new class{init(e){console.log("GroupApplication.init"),Wa.init(e),Ka.init(e)}};let Ya=class{constructor(e){this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this.isOnline=!1,this.updateMember(e)}updateMember(e){const{core:{utils:{isUndefined:t},common:{deepMerge:s}}}=_r;t(e.muteTime)||(this.muteUntil=Math.floor((Date.now()+1e3*e.muteTime)/1e3)),t(e.onlineStatus)||(this.isOnline="Online"===e.onlineStatus);const n=[null,void 0,"",0,NaN];e.memberCustomField&&Ma(this.memberCustomField,e.memberCustomField),s(this,e,["memberCustomField","marks","onlineStatus","muteTime"],n)}};function za(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}function Ja(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,userID:n,muteTime:o,role:i,nameCard:r,memberCustomField:a}=e;let c;a&&(c=Ta(a));return za("group_open_http_svc.modify_group_member_info",{GroupId:s,Member_Account:n,ShutUpTime:o,Role:i,NameCard:r,AppMemberDefinedData:c},t)}))}var Za=new class{constructor(){this._name="GetGroupMemberList"}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}getGroupMemberList(e){return a(this,void 0,void 0,(function*(){const t="getGroupMemberList",{groupID:s,offset:n=0,count:o=100,role:i="",filter:r=""}=e;console.log(`${this._name}.${t} groupID:${s} offset:${n} count:${o} role:${i} filter:${r}`);const c=Ra.getLocalGroup(s),l=o>100?100:o,u={groupID:s,offset:n,limit:l,memberRoleFilter:br.includes(i)?[i]:void 0,memberInfoFilter:Nr};try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,offset:n,limit:o,memberRoleFilter:i,memberInfoFilter:r}=e;return za("group_open_http_svc.get_group_member_info",{GroupId:s,Offset:n,Limit:o,MemberRoleFilter:i,MemberInfoFilter:r},t)}))}(u,this._core),{MemberList:o,MemberNum:i,Next:r}=e||{};console.log(`${this._name}.${t} ok, totalMemberCount:${i} next:${r}`);const{utils:{isArray:d,isEmpty:h},common:{isCommunity:g}}=this._core;if(c&&(c.memberCount=i),!d(o)||0===o.length)return Na({memberList:[],offset:0});let p=n+l;g({groupID:s})&&(p=h(r)?0:r),o.length<l&&(p=0);let _=this._convertMemberInfo(o);_=yield this._patchAvatarAndNick(_);const m=this._generateGroupMember(_);return Na({memberList:m,offset:p})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}_convertMemberInfo(e){const t=[];for(let s=0,n=e.length;s<n;s++){const{AppMemberDefinedData:n,JoinTime:o,Member_Account:i,OnlineStatus:r,Role:a,ShutUpUntil:c}=e[s],l=Oa(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l})}return t}_patchAvatarAndNick(e){return a(this,void 0,void 0,(function*(){var t;const s=e.map((e=>e.userID)),n=yield null===(t=this._core.user.userProfile)||void 0===t?void 0:t.getUserProfile({userIDList:s}),o=(null==n?void 0:n.data)||[],i=new Map(o.map((e=>[e.userID,e])));return e.forEach((e=>{if(i.has(e.userID)){const{nick:t="",avatar:s=""}=i.get(e.userID);e.nick=t,e.avatar=s}})),e}))}_generateGroupMember(e){const t=[];for(let s=0,n=e.length;s<n;s++){const n=new Ya(e[s]);t.push(n)}return t}};var Xa=new class{constructor(){this._name="GetGroupMemberProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupMemberProfile",context:this})}getGroupMemberProfile(e){return a(this,void 0,void 0,(function*(){const t="getGroupMemberProfile",{groupID:s,userIDList:n,memberCustomFieldFilter:o}=e,i=Ra.getLocalGroup(s),{helper:r,utils:{isArray:c}}=this._core;if(i&&ya(i.type))throw new r.ChatError({functionName:t,replacement1:t,code:Ea});n.length>50&&(console.warn(`${this._name}.${t} userIDList length:${n.length} exceeds limit 50`),n.splice(50));try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,userIDList:n,memberInfoFilter:o,memberCustomFieldFilter:i}=e;return za("group_open_http_svc.get_specified_group_member_info",{GroupId:s,Member_List_Account:n,MemberInfoFilter:o,AppDefinedDataFilter_GroupMember:i},t)}))}({groupID:s,userIDList:n,memberCustomFieldFilter:o,memberInfoFilter:[...Nr]},this._core);console.log(`${this._name}.${t} ok.`);const{MemberList:i}=e||{};if(!c(i)||0===i.length)return Na({memberList:[]});let r=this._convertMemberInfo(i);r=yield this._getMemberAvatarAndNick(r);const l=this._generateGroupMember(r);return Na({memberList:l})}catch(e){const s=new r.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}_convertMemberInfo(e){const t=[];for(let s=0,n=e.length;s<n;s++){const{AppMemberDefinedData:n,JoinTime:o,Member_Account:i,OnlineStatus:r,Role:a,ShutUpUntil:c}=e[s],l=Oa(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l})}return t}_getMemberAvatarAndNick(e){return a(this,void 0,void 0,(function*(){var t;const s=e.map((e=>e.userID)),n=yield null===(t=this._core.user.userProfile)||void 0===t?void 0:t.getUserProfile({userIDList:s}),o=(null==n?void 0:n.data)||[],i=new Map(o.map((e=>[e.userID,e])));return e.forEach((e=>{if(i.has(e.userID)){const{nick:t="",avatar:s=""}=i.get(e.userID);e.nick=t,e.avatar=s}})),e}))}_generateGroupMember(e){const t=[];for(let s=0,n=e.length;s<n;s++){const n=new Ya(e[s]);t.push(n)}return t}};var Qa=new class{constructor(){this._name="AddGroupMember"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"addGroupMember",context:this})}addGroupMember(e){return a(this,void 0,void 0,(function*(){const t="addGroupMember",{groupID:s,userIDList:n}=e,o=Ra.getLocalGroup(s),{helper:i}=this._core;if(o&&ya(o.type))throw new i.ChatError({functionName:t,code:ma});const r=n.map((e=>({Member_Account:e})));try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,userIDList:n}=e;return za("group_open_http_svc.add_group_member",{GroupId:s,MemberList:n},t)}))}({groupID:s,userIDList:r},this._core),{MemberList:n=[]}=e||{},{failureUserIDList:i,successUserIDList:c,existedUserIDList:l,overLimitUserIDList:u}=this._handleResult(n);return console.log(`${this._name}.${t} groupID:${s} ok, successUserIDList:${c} failureUserIDList:${i} existedUserIDList:${l} overLimitUserIDList:${u}`),Na({failureUserIDList:i,successUserIDList:c,existedUserIDList:l,overLimitUserIDList:u,group:o})}catch(e){const s=new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}_handleResult(e){const t=[],s=[],n=[],o=[];return e.forEach((e=>{const{Result:i,Member_Account:r}=e;i===Lr?t.push(r):i===wr?s.push(r):i===Pr?n.push(r):i===Ur&&o.push(r)})),{failureUserIDList:t,successUserIDList:s,existedUserIDList:n,overLimitUserIDList:o}}};var ec=new class{constructor(){this._name="DeleteGroupMember"}init(e,t){this._core=e;const{helper:s}=e;s.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>!t.getInstalledSubPlugins().includes(mr)})}deleteGroupMember(e){return a(this,void 0,void 0,(function*(){const t="deleteGroupMember",{groupID:s,userIDList:n}=e,o=Ra.getLocalGroup(s),{helper:i,utils:{isUndefined:r}}=this._core;if(r(o))throw new i.ChatError({functionName:t,code:da});n.length>20&&(console.warn(`${this._name}.${t} userIDList length:${n.length} exceeds limit 20`),n.splice(20));try{return yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,userIDList:n,reason:o}=e;return za("group_open_http_svc.delete_group_member",{GroupId:s,MemberToDel_Account:n,Reason:o},t)}))}({groupID:s,userIDList:n},this._core),console.log(`${this._name}.${t} ok, groupID:${s} userIDList length:${n.length}`),Na({group:o,userIDList:n})}catch(e){const s=new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var tc=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(e){return a(this,void 0,void 0,(function*(){const t="setGroupMemberMuteTime",{helper:s}=this._core;this._preCheckSettingMuteParams(e);try{yield Ja(e,this._core);const{groupID:s,userID:n,muteTime:o}=e;console.log(`${this._name}.${t} ok, groupID:${s} userID:${n} muteTime:${o}`);const i=Ra.getLocalGroup(s),r=new Ya({userID:n,muteTime:o});return Na({group:i,member:r})}catch(e){const n=new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,n),n}}))}_preCheckSettingMuteParams(e){const{userID:t}=e,{store:s,helper:n}=this._core;if(t===s.get("login").userId)throw new n.ChatError({functionName:"setGroupMemberMuteTime",code:Sa})}};var sc=new class{constructor(){this._name="SetGroupMemberRole"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(e){return a(this,void 0,void 0,(function*(){const t="setGroupMemberRole",{helper:s}=this._core;this._preCheckSettingRoleParams(e);try{yield Ja(e,this._core);const{groupID:s,userID:n,role:o}=e;console.log(`${this._name}.${t} ok, groupID:${s} userID:${n} role:${o}`);const i=Ra.getLocalGroup(s),r=new Ya({userID:n,role:o});return Na({group:i,member:r})}catch(e){const n=new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,n),n}}))}_preCheckSettingRoleParams(e){var t;const{groupID:s,userID:n,role:o}=e,{store:i,helper:r,OuterConstant:a,common:{isCommunity:c}}=this._core,l=Ra.getLocalGroup(s);if((null===(t=null==l?void 0:l.selfInfo)||void 0===t?void 0:t.role)!==a.GRP_MBR_ROLE_OWNER)throw new r.ChatError({functionName:"setGroupMemberRole",code:va});if(n===i.get("login").userId)throw new r.ChatError({functionName:"setGroupMemberRole",code:Ia});const u=[...br];if(c({groupID:s})&&u.push(a.GRP_MBR_ROLE_CUSTOM),!u.includes(o))throw new r.ChatError({functionName:"setGroupMemberRole",code:fa})}};var nc=new class{constructor(){this._name="SetGroupMemberNameCard"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(e){return a(this,void 0,void 0,(function*(){const t="setGroupMemberNameCard",{helper:s}=this._core;this._preCheckSettingNameCardParams(e);try{yield Ja(e,this._core);const{groupID:s,userID:n,nameCard:o}=e;console.log(`${this._name}.${t} ok, groupID:${s} userID:${n} nameCard:${o}`);const i=Ra.getLocalGroup(s),r=new Ya({userID:n,nameCard:o});return Na({group:i,member:r})}catch(e){const n=new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,n),n}}))}_preCheckSettingNameCardParams(e){const{groupID:t}=e,{helper:s}=this._core,n=Ra.getLocalGroup(t);if(ya(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberNameCard",code:Ea})}};var oc=new class{constructor(){this._name="SetGroupMemberCustomField"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(e){return a(this,void 0,void 0,(function*(){const t="setGroupMemberCustomField",{helper:s}=this._core;this._preCheckSettingCustomFiledParams(e);try{yield Ja(e,this._core);const{groupID:s,userID:n,memberCustomField:o}=e;console.log(`${this._name}.${t} ok, groupID:${s} userID:${n} memberCustomField:${JSON.stringify(o)}`);const i=Ra.getLocalGroup(s),r=new Ya({userID:n,memberCustomField:o});return Na({group:i,member:r})}catch(e){const n=new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,n),n}}))}_preCheckSettingCustomFiledParams(e){const{groupID:t}=e,{helper:s}=this._core,n=Ra.getLocalGroup(t);if(ya(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberCustomField",code:Ea})}};var ic=new class{init(e,t){console.log("GroupMember.init"),Za.init(e,t),Xa.init(e),Qa.init(e),ec.init(e,t),tc.init(e),sc.init(e),nc.init(e),oc.init(e)}getGroupMemberList(e){return Za.getGroupMemberList(e)}deleteGroupMember(e){return ec.deleteGroupMember(e)}};var rc=new class{init(e){this._core=e}};function ac(e,t,s){return a(this,void 0,void 0,(function*(){const{helper:n,channel:o}=s,i=n.generateProtocolData({servcmd:e,data:t}),r=`${i.head.seq}${e}`;return yield o.sendPacket(i,{requestId:r})}))}var cc=new class{constructor(){this._name="InitGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(e){return a(this,void 0,void 0,(function*(){const t="initGroupAttributes",{groupID:s,groupAttributes:n}=e,{serverMainSequence:o,avChatRoomKey:i}=Pa.getGroupAttributesCache(s),r=Pa.convertKeyValueMapToList(n);try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e;return ac("group_open_http_svc.set_group_attr",{GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]},t)}))}({groupID:s,avChatRoomKey:i,groupAttributeList:r,mainSequence:o},this._core),{AttrMainSeq:c,GroupAttr:l}=e||{};console.log(`${this._name}.${t} ok. groupID:${s} serverMainSequence:${c}`);const u=l.map((e=>{const{Key:t,seq:s}=e;return{key:t,value:n[t],sequence:s}}));return Pa.saveGroupAttributesCacheValuesCopy(s),Pa.refreshGroupAttributesCache({groupID:s,serverMainSequence:c,groupAttributeList:u,operation:Gr}),Pa.emitGroupAttributesUpdated(s),Na({groupAttributes:n})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var lc=new class{constructor(){this._name="SetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupAttributes",context:this})}setGroupAttributes(e){return a(this,void 0,void 0,(function*(){const t="setGroupAttributes",{groupID:s,groupAttributes:n}=e,{serverMainSequence:o,avChatRoomKey:i,values:r}=Pa.getGroupAttributesCache(s),c=Pa.convertKeyValueMapToList(n).map((e=>{var t;const{key:s,value:n}=e;return{key:s,value:n,seq:(null===(t=r.get(e.key))||void 0===t?void 0:t.sequence)||0}}));try{const e=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e;return ac("group_open_http_svc.modify_group_attr",{GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]},t)}))}({groupID:s,avChatRoomKey:i,groupAttributeList:c,mainSequence:o},this._core),{AttrMainSeq:r,GroupAttr:l}=e||{};console.log(`${this._name}.${t} ok. groupID:${s} serverMainSequence:${r}`);const u=l.map((e=>{const{Key:t,seq:s}=e;return{key:t,value:n[t],sequence:s}}));return Pa.saveGroupAttributesCacheValuesCopy(s),Pa.refreshGroupAttributesCache({groupID:s,serverMainSequence:r,groupAttributeList:u,operation:kr}),Pa.emitGroupAttributesUpdated(s),Na({groupAttributes:n})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}};var uc=new class{constructor(){this._name="DeleteGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"deleteGroupAttributes",context:this})}deleteGroupAttributes(e){return a(this,void 0,void 0,(function*(){const t="deleteGroupAttributes",{groupID:s,keyList:n=[]}=e;try{let e;e=0===n.length?yield this._clearGroupAttributes(s):yield this._deleteGroupAttributes(s,n);const{resultList:o,serverMainSequence:i,operation:r,groupAttributeList:a}=e||{};return console.log(`${this._name}.${t} ok. groupID:${s} operation: ${r}`),Pa.saveGroupAttributesCacheValuesCopy(s),Pa.refreshGroupAttributesCache({groupID:s,serverMainSequence:i,groupAttributeList:a,operation:r}),Pa.emitGroupAttributesUpdated(s),Na({keyList:o})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}}))}_deleteGroupAttributes(e,t){return a(this,void 0,void 0,(function*(){const{serverMainSequence:s,avChatRoomKey:n,values:o}=Pa.getGroupAttributesCache(e),i=[],r=[];t.forEach((e=>{if(o.has(e)){const{sequence:t=0}=o.get(e)||{};r.push({key:e,seq:t}),i.push(e)}}));const c=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e;return ac("group_open_http_svc.delete_group_attr",{GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]},t)}))}({groupID:e,avChatRoomKey:n,groupAttributeList:r,mainSequence:s},this._core),{AttrMainSeq:l}=c||{};return{resultList:i,serverMainSequence:l,groupAttributeList:r,operation:$r}}))}_clearGroupAttributes(e){return a(this,void 0,void 0,(function*(){const{serverMainSequence:t,avChatRoomKey:s,values:n}=Pa.getGroupAttributesCache(e),o=[...n.keys()],i=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,mainSequence:n,avChatRoomKey:o}=e;return ac("group_open_http_svc.clear_group_attr",{GroupId:s,AttrMainSeq:n,BytesKey:o,AttrControl:["RaceConflict"]},t)}))}({groupID:e,avChatRoomKey:s,mainSequence:t},this._core),{AttrMainSeq:r}=i||{};return{resultList:o,serverMainSequence:r,operation:Fr}}))}};var dc=new class{constructor(){this._name="GetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupAttributes",context:this})}getGroupAttributes(e){return a(this,void 0,void 0,(function*(){const t="getGroupAttributes",{groupID:s}=e,{avChatRoomKey:n,lastUpdateTime:o,localMainSequence:i,serverMainSequence:r}=Pa.getGroupAttributesCache(s);if(Date.now()-o>=3e4||i<r)try{yield this.getGroupAttributesFromServer({groupID:s,avChatRoomKey:n});const o=Pa.getGroupAttributesCacheValues(e);return console.log(`${this._name}.${t} from server. groupID:${s}`),Na({groupAttributes:o})}catch(e){const s=new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo});throw console.error(`${this._name}.${t} fail:`,s),s}const a=Pa.getGroupAttributesCacheValues(e);return console.log(`${this._name}.${t} from cache. groupID:${s}`),Na({groupAttributes:a})}))}getGroupAttributesFromServer(e){return a(this,void 0,void 0,(function*(){const{utils:{isUndefined:t}}=this._core,{groupID:s,avChatRoomKey:n}=e,o=t(n)?Vr:xr,i=yield function(e,t){return a(this,void 0,void 0,(function*(){const{groupID:s,groupType:n,avChatRoomKey:o}=e;return ac("group_open_attr_http_svc.get_group_attr",{GroupId:s,GroupType:n,Key:o},t)}))}({groupID:s,avChatRoomKey:n,groupType:o},this._core),{AttrMainSeq:r,GroupAttrAry:c}=i||{};if(console.log(`${this._name}._getGroupAttributesFromServer ok. groupID:${s} serverMainSequence:${r}`),!t(r)){const e=c.map((e=>{const{key:t,value:s,seq:n}=e;return{key:t,value:s,sequence:n}}));Pa.refreshGroupAttributesCache({groupID:s,serverMainSequence:r,groupAttributeList:e,operation:qr})}}))}};var hc=new class{init(e){console.log("GroupAttribute.init"),cc.init(e),lc.init(e),uc.init(e),dc.init(e),Pa.init(e)}isGroupAttributesUpdated(e){return Pa.isGroupAttributesUpdated(e)}handleGroupAttributesUpdated(e){const{to:t,elements:{newGroupProfile:s}}=e,{groupAttributeOption:n}=s,{serverMainSequence:o,withChangedAttributeInfo:i}=n,{localMainSequence:r}=Pa.getGroupAttributesCache(t),a=o-r;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${t} withChangedAttributeInfo:${i} diffSequence:${a}`),0!==a)if(Pa.saveGroupAttributesCacheValuesCopy(t),1!==i||1!==a){if(Pa.hasGroupAttributesCache(t)){const{avChatRoomKey:e}=Pa.getGroupAttributesCache(t);dc.getGroupAttributesFromServer({groupID:t,avChatRoomKey:e}).then((()=>{Pa.emitGroupAttributesUpdated(t)})).catch((()=>{}))}}else Pa.handleGroupAttributesUpdated({groupID:t,groupAttributeOption:n})}};function gc(e,t="tips"){const{ClientSeq:s,From_Account:n,MsgClientTime:o,MsgPriority:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,TinyId:l,ToGroupId:u,GroupInfo:d,MsgBody:h}=e,g=function(e){const{GroupCode:t,GroupId:s,GroupName:n,GroupType:o,MsgFrom_AccountExtraInfo:i,From_Account:r,To_Account:a}=e;return{groupCode:t,groupID:s,groupName:n,type:o,messageFromAccountExtraInformation:i,from:r,to:a}}(d);return{clientSequence:s,from:n,clientTime:o,priority:i,random:r,sequence:a,time:c,tinyID:l,to:u,groupProfile:g,elements:"tips"===t?pc(h):function(e){const t={};return Object.keys(e).forEach((s=>{switch(s){case"MsgKey":t.messageKey=e[s];break;case"Operator_Account":t.operatorID=e[s];break;case"ReportType":t.operationType=e[s];break;case"Authentication":t.authentication=e[s];break;case"MsgFlag":t.messageRemindType=e[s];break;case"UserDefinedField":t.userDefinedField=e[s];break;case"RemarkInfo":t.remarkInfo=e[s];break;case"BanDuration":t.duration=e[s]}})),t}(h)}}function pc(e){const t={};return Object.keys(e).forEach((s=>{switch(s){case"MemberNum":t.memberCount=e[s];break;case"OpType":t.operationType=e[s];break;case"Operator_Account":t.operatorID=e[s];break;case"List_Account":t.userIDList=e[s];break;case"MsgMemberExtraInfo":t.memberInfoList=e[s].map((e=>_c(e)));break;case"MsgOperatorMemberExtraInfo":t.operatorInfo=_c(e[s]);break;case"MsgGroupNewInfo":t.newGroupProfile=function(e){const t={};return Object.keys(e).forEach((s=>{switch(s){case"GroupIntroduction":t.introduction=e[s];break;case"GroupName":t.groupName=e[s];break;case"GroupFaceUrl":t.avatar=e[s];break;case"GroupNotification":t.notification=e[s];break;case"ApplyJoinOption":t.joinOption=e[s];break;case"InviteJoinOption":t.inviteOption=e[s];break;case"ShutupAll":t.muteAllMembers=e[s];break;case"Owner_Account":t.ownerID=e[s];break;case"GroupAttrOption":t.groupAttributeOption=function(e){const{BytesChangedKeys:t,GroupAttrSeq:s,OpType:n,PushChangedAttrValFlag:o,GroupAttrInfo:i}=e,r=i.map((e=>{const{Key:t,Val:s,SubKeySeq:n}=e;return{key:t,value:s,sequence:n}}));return{changedKeyList:t,groupAttributeList:r,serverMainSequence:s,operation:n,withChangedAttributeInfo:o}}(e[s])}})),t}(e[s]);break;case"MsgMemberInfo":t.msgMemberInfo=e[s].map((e=>function(e){const{ShutupTime:t,User_Account:s}=e;return{muteTime:t,userID:s}}(e)));break;case"OnlineMemberInfo":t.onlineMemberInfo=function(e){const{ExpireTime:t,OnlineMemberNum:s}=e;return{expireTime:t,onlineMemberNum:s}}(e[s])}})),t}function _c(e){const{ImageUrl:t,NickName:s,Role:n,UserId:o}=e;return{avatar:t,nick:s,role:n,userID:o}}class mc{constructor(e){this.type=_r.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(e)}static parseServerPushElement(e){const t=pc(e);return new mc(t)}_initContent(e){Object.keys(e).forEach((t=>{switch(t){case"groupProfile":this._initGroupProfile(e[t]);break;case"operatorInfo":this._initOperatorInfo(e[t]);break;case"memberInfoList":case"msgMemberInfo":this._updateMemberList(e[t]);break;case"newGroupProfile":this._initNewGroupProfile(e[t]);break;case"memberExtraInfo":case"remarkInfo":case"onlineMemberInfo":break;default:this.content[t]=e[t]}})),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}_initGroupProfile(e){this.content.groupProfile={};const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];Qr[n]&&(this.content.groupProfile[n]=e[n])}}_initOperatorInfo(e){this.content.operatorInfo={};const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];this.content.operatorInfo[n]=e[n]}}_updateMemberList(e){this.content.memberList?this.content.memberList.forEach((t=>{e.forEach((e=>{t.userID===e.userID&&Object.assign(t,e)}))})):this.content.memberList=e}_initNewGroupProfile(e){this.content.newGroupProfile={};const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];"muteAllMembers"!==n?this.content.newGroupProfile[n]=e[n]:this.content.newGroupProfile.muteAllMembers=1===e.muteAllMembers}}}var vc=new class{constructor(){this._name="GroupTipsNotification"}init(e){this._core=e;const{message:{messageFactory:t},OuterConstant:s}=e;null==t||t.registerElementClass(s.MSG_GRP_TIP,mc)}onNewGroupTips(e){console.log(`${this._name}.onNewGroupTips options:${JSON.stringify(e)}`);const{messageList:t}=this._handleGroupTips(e),{notificationCenter:s,OuterEvent:n}=this._core;t.length>0&&(s.emitOuterEvent(n.MESSAGE_RECEIVED,{name:n.MESSAGE_RECEIVED,data:t}),this._handleGroupTipMessage(t))}_handleGroupTips(e){const{Event:t,GroupTips:s}=e,n=new Map,o=[],i=[];for(let e=0,o=s.length;e<o;e++){const o=gc(s[e],"tips");if(t===jr&&hc.isGroupAttributesUpdated(o)){hc.handleGroupAttributesUpdated(o);continue}const{groupProfile:{groupID:r}}=o;if(!Ra.hasLocalGroup(r))continue;const a=this._assembleMessage(o);if(t===jr&&(a._onlineOnlyFlag=!0,i.push(a)),t===Br){if(!this._core.message.messageDataHandler.storeConversationMessage(a))continue;i.push(a)}this._handleConversationOptions(n,a)}return o.push(...n.values()),{conversationUpdateFieldList:o,messageList:i}}_assembleMessage(e){const{OuterConstant:t,message:{messageFactory:s}}=this._core;e.flow="in",e.conversationType=t.CONV_GROUP;const n=s.createMessage(e);this._patchNickAndAvatar(e.elements,n);const o=new mc(Object.assign(Object.assign({},e.elements),{groupProfile:Object.assign({},e.groupProfile)}));return n.setElement(o),n.isSystemMessage=!1,n}_patchNickAndAvatar(e,t){const{utils:{isEmpty:s}}=this._core,{operationType:n,memberInfoList:o,operatorInfo:i}=e;let r={};if(s(o)?s(i)||(r=i):n!==Wr&&n!==Hr&&n!==Yr&&n!==zr||(r=Object.assign({},o[0])),!s(r)){const{nick:e="",avatar:s=""}=r;t.nick=e,t.avatar=s}}_handleConversationOptions(e,t){const{conversationID:s,conversationType:n}=t;let o;if(e.has(s))o=e.get(s),"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||o.unreadCount++),o.type=n,o.lastMessage=t._isExcludedFromLastMessage?"":t;else{let e=0;"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||(e=1)),o={conversationID:s,unreadCount:e,type:n,lastMessage:t._isExcludedFromLastMessage?"":t}}e.set(s,o)}_handleGroupTipMessage(e){e.forEach((e=>{const{operationType:t}=e.payload;switch(t){case Wr:this._handleNewMemberJoined(e);break;case Kr:this._handleMemberQuitted(e);break;case Hr:this._handleMemberKicked(e);break;case Jr:this._handleGroupProfileUpdated(e)}}))}_handleNewMemberJoined(e){this._handleGroupMemberCountUpdated(e)}_handleMemberQuitted(e){this._handleGroupMemberCountUpdated(e)}_handleMemberKicked(e){this._handleGroupMemberCountUpdated(e)}_handleGroupProfileUpdated(e){var t;const{newGroupProfile:s,groupProfile:n,operatorInfo:o}=e.payload,{groupID:i}=n,r=Ra.getLocalGroup(i);Object.keys(s).forEach((e=>{switch(e){case"ownerID":this._handleGroupOwnerChanged(i,s);break;case"groupName":r.name=s[e];break;default:r[e]=s[e]}}));const{utils:{isUndefined:a}}=this._core;a(o)||(null===(t=null==r?void 0:r.selfInfo)||void 0===t?void 0:t.userID)!==o.userID||Object.keys(o).forEach((e=>{"nameCard"===e&&r.updateSelfInfo({nameCard:o[e]}),"role"===e&&this._updateSelfRole(r,o[e])})),Ra.emitGroupListUpdate(),Ra.updateConversationGroupProfile(i)}_handleGroupOwnerChanged(e,t){const{common:s,OuterConstant:n}=this._core,o=Ra.getLocalGroup(e),i=s.getCurrentUserID(),{ownerID:r}=t;i===r&&o.updateGroup({ownerID:r,selfInfo:{role:n.GRP_MBR_ROLE_OWNER}})}_updateSelfRole(e,t){const{OuterConstant:s}=this._core;let n=s.GRP_MBR_ROLE_MEMBER;t===Zr?n=s.GRP_MBR_ROLE_OWNER:t===Xr&&(n=s.GRP_MBR_ROLE_ADMIN),e.updateSelfInfo({role:n})}_handleGroupMemberCountUpdated(e){const{memberCount:t,groupProfile:{groupID:s}}=e.payload,n=Ra.getLocalGroup(s),{utils:{isNumber:o}}=this._core;n&&o(t)&&n.memberCount!==t&&(n.memberCount=t,Ra.emitGroupListUpdate(),Ra.updateConversationGroupProfile(s))}};class fc{constructor(e){this.type=_r.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(e)}_initContent(e){Object.keys(e).forEach((t=>{switch(t){case"remarkInfo":this.content.handleMessage=e[t];break;case"groupProfile":this._initGroupProfile(e[t]);break;case"memberInfoList":break;default:this.content[t]=e[t]}}))}_initGroupProfile(e){this.content.groupProfile={};const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];ea[n]&&(this.content.groupProfile[n]=e[n])}}}var Ic=new class{constructor(){this._name="GroupSystemNotification"}init(e){this._core=e;const{message:{messageFactory:t},OuterConstant:{MSG_GRP_SYS_NOTICE:s}}=e;null==t||t.registerElementClass(s,fc)}onNewGroupSystemNotification(e){const{GroupTips:t=[],isInstantMessage:s=!0}=e;console.log(`${this._name}.onNewGroupSystemNotification count:${t.length} isInstantMessage:${s}`);const{conversationUpdateFieldList:n,messageList:o}=this._handleGroupSystemNotification(t,s),{notificationCenter:i,OuterEvent:r}=this._core;n.length>0&&this._handleGroupSysTemMessage(s,o),!0===s&&o.length>0&&i.emitOuterEvent(r.MESSAGE_RECEIVED,{name:r.MESSAGE_RECEIVED,data:o})}_handleGroupSystemNotification(e,t){const s=[];let n={};for(let o=0;o<e.length;o++){const i=gc(e[o],"system"),{elements:{operationType:r}}=i;if(r===ra)continue;const a=this._assembleMessage(i);this._core.message.messageDataHandler.storeConversationMessage(a)&&(s.push(a),n=this._handleConversationOptions(a,t))}return n.lastMessage=s[s.length-1],{conversationUpdateFieldList:s.length>0?[n]:[],messageList:s}}_assembleMessage(e){const{message:{messageFactory:t},OuterConstant:s,utils:{randomInt:n}}=this._core;e.flow="in",e.conversationType=s.CONV_SYSTEM,e.conversationSubType=e.groupProfile.type,e.conversationID=s.CONV_SYSTEM;const o=t.createMessage(e),i=new fc(Object.assign(Object.assign({},e.elements),{groupProfile:Object.assign({},e.groupProfile)}));o.setElement(i),o.isSystemMessage=!0;const r=1===o.sequence&&1===o.random,a=2===o.sequence&&2===o.random;return(r||a)&&(o.sequence=n(),o.random=n(),o.generateMessageID()),o}_handleConversationOptions(e,t){const{OuterConstant:s}=this._core,n={conversationID:s.CONV_SYSTEM,unreadCount:0,type:s.CONV_SYSTEM,subType:e.conversationSubType,lastMessage:null};return t&&n.unreadCount++,n}_handleGroupSysTemMessage(e,t){e&&t.forEach((e=>{const{operationType:t}=e.payload;switch(t){case ta:this._handleGroupJoinResult(e);break;case sa:this._handleMemberKicked(e);break;case na:this._handleGroupDismissed(e);break;case oa:this._handleGroupInvitedResult(e);break;case ia:this._handleGroupQuitResult(e);break;case aa:this._handleMessageRemindTypeSynced(e);break;case ca:this._handleAVChatRoomMemberBanned(e)}}))}_handleGroupJoinResult(e){const{groupProfile:t}=e.payload,{groupID:s,type:n}=t,o=Ra.hasLocalGroup(s);console.log(`${this._name}._handleGroupJoinResult groupID:${s} type:${n} hasLocalGroup:${o}`),o||ya(n)||(Ra.updateLocalGroup([Object.assign({},t)]),Ra.emitGroupListUpdate())}_handleMemberKicked(e){const{groupProfile:{groupID:t,type:s}}=e.payload;Ra.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupDismissed(e){const{groupProfile:{groupID:t,type:s}}=e.payload;Ra.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupInvitedResult(e){const{groupProfile:t}=e.payload,{groupID:s}=t,n=Ra.hasLocalGroup(s);console.log(`${this._name}._handleGroupInvitedResult groupID:${s} hasLocalGroup:${n}`),n||(Ra.updateLocalGroup([Object.assign({},t)]),Ra.emitGroupListUpdate())}_handleGroupQuitResult(e){const{groupProfile:{groupID:t,type:s}}=e.payload,n=Ra.hasLocalGroup(t);console.log(`${this._name}._handleGroupQuitResult groupID:${t} type:${s} hasLocalGroup:${n}`),n&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleMessageRemindTypeSynced(e){const{groupProfile:{groupID:t},messageRemindType:s}=e.payload;this._updateConversationProfile(t,{messageRemindType:s})}_handleAVChatRoomMemberBanned(e){const{groupProfile:{groupID:t,type:s}}=e.payload;this._deleteLocalGroup(t,s)}_deleteLocalGroup(e,t){if(ya(t)){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core;t.deleteConversation(`${s}${e}`)}Ra.deleteLocalGroup(e),Ra.emitGroupListUpdate()}_updateConversationProfile(e,t){const{appStore:{conversationStore:s},OuterConstant:{CONV_GROUP:n}}=this._core,o=`${n}${e}`;s.getConversation(o)&&s.updateConversation(o,t)}};var Sc=new class{init(e){this._core=e,console.log("GroupNotificationHandler.init"),vc.init(e),Ic.init(e);const{notificationCenter:t,InnerEvent:s}=e,{InnerEventSubType:n}=t;t.subscribeInnerEvent(s.MESSAGE_PUSH,n.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),t.subscribeInnerEvent(s.MESSAGE_PUSH,n.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this),t.subscribeInnerEvent(s.DESTROY,this._dispose,this)}_onNewGroupTipsNotification(e){vc.onNewGroupTips(e)}_onNewGroupSystemNotification(e){Ic.onNewGroupSystemNotification(e)}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core,{InnerEventSubType:s}=e;e.unSubscribeInnerEvent(t.MESSAGE_PUSH,s.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),e.unSubscribeInnerEvent(t.MESSAGE_PUSH,s.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this)}};const Ec={required:!0,rules:["string"],allowEmpty:!1},Cc={required:!0,rules:["number"],allowEmpty:!1},yc={required:!0,rules:["array"],allowEmpty:!1},Mc={required:!0,rules:["object"],allowEmpty:!1},Oc={createGroup:{name:Ec,type:Ec},dismissGroup:[Object.assign({key:"groupID"},Ec)],joinGroup:{groupID:Ec,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},Ec)],searchGroupByID:[Object.assign({key:"groupID"},Ec)],getGroupProfile:{groupID:Ec,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:Ec,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:Ec,newOwnerID:Ec},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},Ec)],handleGroupApplication:{handleAction:Ec},getGroupMemberList:{groupID:Ec},getGroupMemberProfile:{groupID:Ec,userIDList:yc,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:Ec,userIDList:yc},deleteGroupMember:{groupID:Ec,userIDList:yc},setGroupMemberMuteTime:{groupID:Ec,userID:Ec,muteTime:Object.assign(Object.assign({},Cc),{customValidator:e=>!(e<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:Ec,userID:Ec,role:Ec},setGroupMemberNameCard:{groupID:Ec,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:Ec},setGroupMemberCustomField:{groupID:Ec,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:yc},markGroupMemberList:{groupID:Ec,markType:Object.assign(Object.assign({},Cc),{customValidator:e=>!(e<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:yc},initGroupAttributes:{groupID:Ec,groupAttributes:Mc},setGroupAttributes:{groupID:Ec,groupAttributes:Mc},deleteGroupAttributes:{groupID:Ec,keyList:Object.assign(Object.assign({},yc),{allowEmpty:!0})},getGroupAttributes:{groupID:Ec,keyList:Object.assign(Object.assign({},yc),{allowEmpty:!0})}},Tc={getGroupList:!0,createGroup:!0,dismissGroup:!0,joinGroup:!0,quitGroup:!0,searchGroupByID:!0,getGroupProfile:!0,updateGroupProfile:!0,changeGroupOwner:!0,getGroupOnlineMemberCount:!0,getGroupApplicationList:!0,handleGroupApplication:!0,getGroupMemberList:!0,getGroupMemberProfile:!0,addGroupMember:!0,deleteGroupMember:!0,setGroupMemberMuteTime:!0,setGroupMemberRole:!0,setGroupMemberNameCard:!0,setGroupMemberCustomField:!0,markGroupMemberList:!0,initGroupAttributes:!0,setGroupAttributes:!0,getGroupAttributes:!0,deleteGroupAttributes:!0};var Ac=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=Ra,this.groupAction=Ba,this.groupAttribute=hc,this.groupMember=ic}install(e,t=[]){this._core=e,_r.init(e),Ra.init(e),Ba.init(e,this),ic.init(e,this),Ha.init(e),rc.init(e),hc.init(e),Sc.init(e),e.helper.registerValidateConfig({auth:Tc,params:Oc}),this._installSubPlugins(t);const{notificationCenter:s,InnerEvent:n}=e;s.subscribeInnerEvent(n.LOGOUT,this._reset,this),s.subscribeInnerEvent(n.DESTROY,this._dispose,this)}getInstalledSubPlugins(){return this._installedSubPlugins}_installSubPlugins(e){const{utils:{isArray:t}}=this._core;e&&t(e)&&e.forEach((e=>{var t;null===(t=e.install)||void 0===t||t.call(e,this._core,this),this._installedSubPlugins.push(e.name)}))}_reset(){Ra.reset()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Dc=new class{init(e){this.core=e}};const Rc="message",bc="user",Nc={OR:"or",AND:"and"},Lc=20,wc=20,Pc=20,Uc={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!e||(!!(Array.isArray(e)&&e.length<=5)||"keywordList should be an array and length <= 5")},Gc={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>!e||(!![Nc.OR,Nc.AND].includes(e)||"keywordListMatchType should be OR or AND")},kc={required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"==typeof e&&e>=1&&e<=100||"count must be a number between 1 and 100"},Fc={required:!1,rules:["string"],allowEmpty:!0},$c={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dc.core;if(!Array.isArray(e))return"groupTypeList should be an array";const s=[t.GRP_PUBLIC,t.GRP_COMMUNITY,t.GRP_WORK,t.GRP_MEETING];let n=!1;for(let t=0;t<e.length;t++)if(-1===s.indexOf(e[t])){n=!0;break}return!n||"groupTypeList should be supported group type"}},qc={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dc.core,s=[t.MSG_TEXT,t.MSG_IMAGE,t.MSG_AUDIO,t.MSG_FILE,t.MSG_VIDEO,t.MSG_LOCATION,t.MSG_CUSTOM,t.MSG_MERGER];let n=!1;for(let t=0;t<e.length;t++)if(-1===s.indexOf(e[t])){n=!0;break}return!n||"messageTypeList should be supported message type"}},xc={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dc.core;return!(!(null==e?void 0:e.startsWith(t.CONV_C2C))&&!(null==e?void 0:e.startsWith(t.CONV_GROUP))&&e!==t.CONV_SYSTEM)||"conversationID is invalid"}},Vc=e=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:t=>"number"==typeof t&&t>=0||`${e} should be a number >= 0';`}),Bc={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dc.core;return!![t.GENDER_FEMALE,t.GENDER_MALE].includes(e)||"gender is invalid"}},jc={searchCloudMessages:{keywordList:Uc,keywordListMatchType:Gc,cursor:Fc,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!!(Array.isArray(e)&&e.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:qc,conversationID:xc,timePosition:Vc("timePosition"),timePeriod:Vc("timePeriod")},searchCloudUsers:{keywordList:Uc,keywordListMatchType:Gc,cursor:Fc,count:kc,miniBirthday:Vc("miniBirthday"),maxBirthday:Vc("maxBirthday"),gender:Bc},searchCloudGroupMembers:{keywordList:Uc,keywordListMatchType:Gc,cursor:Fc,count:kc,groupTypeList:$c,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:Uc,keywordListMatchType:Gc,cursor:Fc,count:kc,groupTypeList:$c}},Wc={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var Kc=new class{install(e){this._core=e,Dc.init(e),e.helper.registerApi({apiName:"searchCloudMessages",context:this}),e.helper.registerApi({apiName:"searchCloudUsers",context:this}),e.helper.registerApi({apiName:"searchCloudGroupMembers",context:this}),e.helper.registerApi({apiName:"searchCloudGroups",context:this}),e.helper.registerValidateConfig({auth:Wc,params:jc})}searchCloudMessages(e){return a(this,void 0,void 0,(function*(){try{const{OuterConstant:t,helper:s,ssoLog:n}=this._core,o=n.createSSOLogData({method:"searchCloudMessages"}),{conversationID:i,timePeriod:c,timePosition:l}=e,u=r(e,["conversationID","timePeriod","timePosition"]),d=Object.assign({count:100},u);i&&(i.startsWith(t.CONV_C2C)?d.account=i.replace(t.CONV_C2C,""):i.startsWith(t.CONV_GROUP)&&(d.groupID=i.replace(t.CONV_GROUP,""))),this._setTimeRangeParams(d,{timePeriod:c,timePosition:l});const h=yield function(e){return a(this,void 0,void 0,(function*(){const{count:t,keywordList:s,keywordListMatchType:n,senderUserIDList:o,messageTypeList:i,endTime:r,startTime:a,cursor:c,account:l,groupID:u}=e,d={Count:t,KeywordList:s,MatchType:n,SendUserIDList:o,MsgTypeList:i,EndTime:r,StartTime:a,Cursor:c,PeerAccount:l,GroupID:u};return Dc.core.common.buildAndSendPacket({servcmd:"message_search.query",data:d})}))}(d);if(!h)return{code:0,data:{}};const{ErrorCode:g,ErrorInfo:p,TotalCount:_,Cursor:m="",ConversationMsgs:v=[]}=h;if(0!==g)throw{errorCode:g,errorInfo:p};const f=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} res: totalCount:${_}`;o.setLogInfo({message:f}).end();const I=v.map((n=>{const{MsgList:o,Count:i,GroupID:r,UserID:a}=n,c=r?`${t.CONV_GROUP}${r}`:`${t.CONV_C2C}${a}`;if(this._isSearchingAllConversations(e)&&i>1)return{conversationID:c,messageCount:i,messageList:[]};const l=o.map((e=>s.isEmpty(r)?function(e,t){const s=t.OuterConstant.CONV_C2C,n=t.message.messageHelper.parseServerPushMessage(e),o=t.message.messageFactory.createMessage(Object.assign(Object.assign({},n),{conversationType:s,flow:"in"}));return o.setElement(n.elements),o}(e,this._core):function(e,t){const s=t.OuterConstant.CONV_GROUP,n=t.message.messageHelper.parseServerGroupMessage(e),o=t.message.messageFactory.createMessage(Object.assign(Object.assign({},n),{conversationType:s,flow:"in"}));return o.setElement(n.elements),o}(e,this._core)));return{conversationID:c,messageCount:i,messageList:l}}));return{code:0,data:{searchResultList:I,cursor:m,totalCount:_}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:Rc,functionName:"searchCloudMessages"})}}))}searchCloudUsers(e){return a(this,void 0,void 0,(function*(){var t;try{const s=this._core.ssoLog.createSSOLogData({method:"searchCloudUsers"}),{keywordListMatchType:n,count:o=wc}=e,i=r(e,["keywordListMatchType","count"]),c=Object.assign({count:o,keywordListMatchType:n===Nc.AND?1:0},i);this._setBirthdayRangeParams(c,e);const l=yield function(e){return a(this,void 0,void 0,(function*(){const{count:t,keywordList:s,keywordListMatchType:n,miniBirthday:o,maxBirthday:i,cursor:r,gender:a}=e,c={Count:t,Keywords:s,KeywordMatchType:n,Cursor:r,UserBirthStart:o,UserBirthEnd:i,Gender:a};return Dc.core.common.buildAndSendPacket({servcmd:"user_search.query",data:c})}))}(c);if(!l)return{error:0,data:{}};const{ErrorCode:u,ErrorInfo:d,TotalCount:h,Cursor:g="",Users:p=[]}=l;if(0!==u)throw{errorCode:u,errorInfo:d};const _=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${h}`;s.setLogInfo({message:_}).end();const m=[];for(let e=0,s=p.length;e<s;e++){const{UserID:s,ProfileItems:n}=p[e];if(s===this._core.OuterConstant.USER_NOT_FOUND||""===s)continue;const o=n.map((e=>({tag:e.Tag,value:e.StrValue}))),i=null===(t=this._core.user.userProfile)||void 0===t?void 0:t.createProfile(s,o);m.push(i)}return{code:0,data:{searchResultList:m,cursor:g,totalCount:h}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:bc,functionName:"searchCloudUsers"})}}))}searchCloudGroupMembers(e){return a(this,void 0,void 0,(function*(){try{const t=this._core.ssoLog.createSSOLogData({method:"searchCloudGroupMembers"}),{count:s=Pc,keywordListMatchType:n}=e,o=r(e,["count","keywordListMatchType"]),i=Object.assign({count:s,keywordListMatchType:n===Nc.AND?1:0},o),c=yield function(e){return a(this,void 0,void 0,(function*(){const{count:t,keywordList:s,keywordListMatchType:n,groupTypeList:o,cursor:i,groupIDList:r}=e,a={Count:t,Keywords:s,KeywordMatchType:n,Cursor:i,GroupType:o,GroupIdList:r};return Dc.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:a})}))}(i);if(!c)return{code:0,data:{}};const{ErrorCode:l,ErrorInfo:u,GroupMembers:d,Cursor:h,TotalCount:g}=c;if(0!==l)throw{errorCode:l,errorInfo:u};const p=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${g}`;t.setLogInfo({message:p}).end();const _=new Map;return d.forEach((e=>{const{GroupID:t,GroupName:s,GroupType:n,GroupFaceUrl:o,GroupMemberUserName:i,GroupMemberUserID:r,GroupMemberNameCard:a}=e,c={groupID:t,name:s,type:n,avatar:o},l={userID:r,nick:i,nameCard:a};if(_.has(t)){const e=_.get(t);e.memberList.push(l),_.set(t,e)}else _.set(t,{groupInfo:c,memberList:[l]})})),{code:0,data:{searchResultList:[..._.values()],cursor:h,totalCount:g}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:bc,functionName:"searchCloudGroupMembers"})}}))}searchCloudGroups(e){return a(this,void 0,void 0,(function*(){try{const t=this._core.ssoLog.createSSOLogData({method:"searchCloudGroups"}),{count:s=Lc,keywordListMatchType:n}=e,o=r(e,["count","keywordListMatchType"]),i=Object.assign({count:s,keywordListMatchType:n===Nc.AND?1:0},o),c=yield function(e){return a(this,void 0,void 0,(function*(){const{count:t,keywordList:s,keywordListMatchType:n,groupTypeList:o,cursor:i}=e,r={Count:t,Keywords:s,KeywordMatchType:n,Cursor:i,GroupType:o};return Dc.core.common.buildAndSendPacket({servcmd:"group_search.query",data:r})}))}(i);if(!c)return{code:0,data:{}};const{ErrorCode:l,ErrorInfo:u,Groups:d,Cursor:h,TotalCount:g}=c;if(0!==l)throw{errorCode:l,errorInfo:u};const p=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${g}`;t.setLogInfo({message:p}).end();return{code:0,data:{searchResultList:(null==d?void 0:d.map((e=>function(e){const{GroupFaceUrl:t,GroupID:s,GroupIntroduction:n,GroupMemberNum:o,GroupName:i,GroupOwnerTinyID:r,GroupOwnerUserID:a,GroupOwnerUserName:c,GroupType:l}=e;return{avatar:t,groupID:s,introduction:n,memberCount:o,name:i,ownerTinyID:r,ownerID:a,ownerNick:c,type:l}}(e))))||[],cursor:h,totalCount:g}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:bc,functionName:"searchCloudGroups"})}}))}_setTimeRangeParams(e,{timePeriod:t,timePosition:s}){t&&t>0&&(e.startTime=s&&s>0?s-t:this._core.helper.timeManager.getServerTimeSeconds()-t),e.startTime&&e.startTime<0&&(e.startTime=void 0),s&&s>0&&(e.endTime=s)}_handleError({errorCode:e,errorMessage:t,searchType:s,functionName:n}){const{ssoLog:o,helper:i}=this._core;let r=e;60020===e?r="SearchUnable":s!==Rc&&27003===e?r="SearchParamsError":s!==Rc&&60018===e&&(r="SearchOverLimit");const a=new i.ChatError({code:r,message:t});throw o.getSSOLogData(n).setError(a).end(),a}_isSearchingAllConversations(e){return this._core.helper.isEmpty(e.conversationID)}_setBirthdayRangeParams(e,t){const{miniBirthday:s,maxBirthday:n}=t;void 0!==s&&(e.miniBirthday=s,void 0===n&&(e.maxBirthday=4294967295)),void 0!==n&&(e.maxBirthday=n)}};let Hc=[];const Yc=[xs,function(e){Ps.install(e),$s.install(e),qs.install(e)},Ws,en,nn,Ro,Ni,pr,Ac,Kc,Ln];Hc=Yc;var zc=Object.freeze({__proto__:null,ChatError:cs,buildAndSendPacket:function(e){return a(this,void 0,void 0,(function*(){const{servcmd:t,data:s}=e,n=kt.common.generateProtocolData({servcmd:t,data:s}),o=`${n.head.seq}${t}`;return kt.channel.sendPacket(n,{requestId:o})}))},get builtInPlugins(){return Hc},checkBusinessCapabilityBits:Es,deepMerge:Ts,destroy:ll,exposeApiForClient:ul,exposeApiForPlugin:dl,getCurrentUserID:Ms,getErrorMessage:as,getMessagePreviewText:Ds,isCommunity:({type:e,groupID:t})=>e===ts.GRP_COMMUNITY||`${t}`.startsWith(Qt.COMMUNITY)&&!`${t}`.includes(Qt.TOPIC),isTopic:As,isUnlimitedAVChatRoom:function(){var e;return!!(null===(e=kt.store.get("instance"))||void 0===e?void 0:e.unlimitedAVChatRoom)},liteChatInstanceMap:Cs,registerApi:al,registerExperimentalAPI:cl,registerInterceptor:fs,registerPlugin:ol,registerValidateConfig:Is,requireAuth:ls,setLogLevel:rl,statKeyFeatureUsage:il,validateAndExecute:vs,validateParameters:hs,workflowManager:ys});var Jc=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(e){return this._conversationMap.get(e)}updateConversation(e,t){const s=this._conversationMap.get(e);s&&!he(t)&&(Object.keys(t).forEach((e=>{s[e]=t[e]})),kt.notificationCenter.emitInnerEvent(Vt.CONVERSATION_UPDATED))}deleteConversation(e){this._conversationMap.has(e)&&(this._conversationMap.delete(e),kt.notificationCenter.emitInnerEvent(Vt.CONVERSATION_UPDATED))}};var Zc=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(e){return this._groupMap.get(e)}updateGroup(e,t){const s=this._groupMap.get(e);s&&!he(t)&&Object.keys(t).forEach((e=>{s[e]=t[e]}))}};var Xc=new class{constructor(){this._messagesByConversation=new Map}updateMessage(e,t,s){var n;const{operation:o,updateUnreadCount:i=!0}=s,a=r(s,["operation","updateUnreadCount"]),c=[];for(const s of t){const t=null===(n=this._messagesByConversation.get(e))||void 0===n?void 0:n.get(s);if(!t)return!1;Object.keys(a).forEach((e=>{t[e]=a[e]})),c.push(t)}return this._emitMessageStoreOperationEvent(o,{conversationID:e,messageList:c,updateUnreadCount:i}),c}getMessagesByConversation(e){var t;return[...(null===(t=this._messagesByConversation.get(e))||void 0===t?void 0:t.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(e,t){kt.notificationCenter.emitInnerEvent(e,t)}};var Qc=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(e){return this.userProfileMap.get(e)}getFriend(e){return this.friendMap.get(e)}},el=Object.freeze({__proto__:null,conversationStore:Jc,groupStore:Zc,messageStore:Xc,userStore:Qc});const tl={on:kt.notificationCenter.subscribeOuterEvent.bind(kt.notificationCenter),off:kt.notificationCenter.unSubscribeOuterEvent.bind(kt.notificationCenter),destroy:ll,callExperimentalAPI:function(e,t){if(sl[e])return sl[e](t);return Promise.reject(new Error(`API ${e} is not found`))},use:Ss.installExternalPlugin.bind(Ss),registerPlugin:ol,setLogLevel:rl},sl={},nl={};function ol(e){console.log("registerPlugin",e)}function il(e){console.log("statTUIKeyFeatures",e)}function rl(e){console.log("setLogLevel",e),kt&&"function"==typeof kt.setLogLevel&&(null==kt||kt.setLogLevel(e))}function al(e){const{apiName:t,context:s,methodName:n=t,matcher:o}=e;nl[t]||(nl[t]=[]),nl[t].push({context:s,methodName:n,matcher:o}),tl[t]&&1!==nl[t].length||(tl[t]=(...e)=>{vs(n,e);const s=nl[t];for(const t of s)if(!t.matcher||t.matcher(e))return t.context[t.methodName].bind(t.context)(...e)})}function cl(e,t,s){const n=s||e;sl[e]=t[n].bind(t)}function ll(){return a(this,void 0,void 0,(function*(){var e,t;try{(null===(e=kt.store.get("login"))||void 0===e?void 0:e.isLogin)&&(yield tl.logout()),kt.notificationCenter.emitInnerEvent(Vt.DESTROY)}catch(e){console.debug("destroy error: ",e)}finally{kt.notificationCenter.emitOuterEvent(qt.SDK_DESTROY,{SDKAppID:null===(t=kt.store.get("instance"))||void 0===t?void 0:t.sdkAppId}),Cs.clear(),Ss.clear(),ys.destroy(),kt.destroy()}}))}function ul(){return tl}function dl(){return Object.assign(Object.assign({InnerEvent:Vt,InnerEventSubType:kt.notificationCenter.InnerEventSubType,OuterEvent:qt,OuterConstant:ts,SignalingEvent:Bt,helper:Object.assign(Object.assign(Object.assign({},kt.utils),kt.common),{registerApi:al,registerExperimentalAPI:cl,registerInterceptor:fs,registerValidateConfig:Is,checkBusinessCapabilityBits:Es,registerWorkflowStep:ys.registerWorkflowStep.bind(ys),ChatError:cs}),apiMap:tl},kt),{constants:Object.assign(Object.assign({},rs),kt.constants),common:Object.assign(Object.assign({},zc),kt.common),utils:kt.utils,appStore:el})}sl.statTUIKeyFeatures=il;var hl,gl,pl;!function(e){e[e.USER_INITIATED=0]="USER_INITIATED",e[e.KICKED_OUT=1]="KICKED_OUT"}(hl||(hl={})),function(e){e[e.multipleAccount=1]="multipleAccount",e[e.multipleDevice=2]="multipleDevice",e[e.restApi=3]="restApi"}(gl||(gl={})),function(e){e[e.multipleDevice=3002]="multipleDevice",e[e.multipleAccount=3003]="multipleAccount",e[e.usersigExpired=70001]="usersigExpired",e[e.restApi=20002]="restApi"}(pl||(pl={}));const _l={[gl.multipleAccount]:"multipleAccount",[gl.multipleDevice]:"multipleDevice",[gl.restApi]:"REST_API_Kick",[pl.multipleAccount]:"multipleAccount",[pl.multipleDevice]:"multipleDevice",[pl.restApi]:"REST_API_Kick",[pl.usersigExpired]:"userSigExpired"},ml="login_online_presence_task",{ERROR:vl,DESTROY:fl,FORCE_OFFLINE:Il}=Vt,{KICKED_OUT_MULT_ACCOUNT:Sl,KICKED_OUT_MULT_DEVICE:El,KICKED_OUT_REST_API:Cl,ACCOUNT_A2KEY_EXPIRED:yl,MSG_A2KEY_EXPIRED:Ml}=ss;class Ol{init(){const{notificationCenter:e}=kt;e.subscribeInnerEvent(Il,this._handleForceOfflineFromServerPush,this),e.subscribeInnerEvent(vl,Ml,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(vl,yl,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(vl,Sl,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(vl,El,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(vl,Cl,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(fl,this._dispose,this)}_handleForceOfflineFromServerPush(e){const{EventArray:t=[]}=(null==e?void 0:e.body)||{};this._extractKickedOutMessages(t).forEach((e=>{const{KickoutMsgNotify:{KickType:t,NewInstInfo:s}}=e;this._processKickedOutReasonInfo({kickedOutReasonCode:t,newInstanceInfo:s})}))}_extractKickedOutMessages(e){return e.reduce(((e,t)=>[...e,...t.C2cNotifyMsgArray||[]]),[]).filter((e=>{var t;return this._isKickedOut(null===(t=null==e?void 0:e.KickoutMsgNotify)||void 0===t?void 0:t.KickType)}))}_handleForceOfflineFromResponse(e){const{errorCode:t}=e;this._processKickedOutReasonInfo({kickedOutReasonCode:t})}_processKickedOutReasonInfo(e){return a(this,void 0,void 0,(function*(){const{kickedOutReasonCode:t}=e;try{yield kt.login.loginAction.logout(hl.KICKED_OUT)}catch(e){console.debug(e)}finally{this._logKickedOutEvent(e),kt.notificationCenter.emitOuterEvent(qt.KICKED_OUT,{data:{type:_l[t]},name:qt.KICKED_OUT}),[gl.restApi,yl,Ml].includes(t)&&kt.channel.reconnect()}}))}_logKickedOutEvent(e){const{kickedOutReasonCode:t,newInstanceInfo:s={}}=e,n=kt.ssoLog.createSSOLogData({method:"kickedOut"}),o=`type:${_l[t]} newInstanceInfo: ${JSON.stringify(s)}`;n.setLogInfo({message:o}).end(!0),console.warn(`loginModule.${o}`)}_isKickedOut(e){return[gl.multipleAccount,gl.multipleDevice,gl.restApi].includes(e)}_dispose(){const{notificationCenter:e}=kt;e.unSubscribeInnerEvent(Il,this._handleForceOfflineFromServerPush,this),e.unSubscribeInnerEvent(vl,yl,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(vl,Ml,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(vl,Sl,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(vl,El,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(vl,Cl,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(fl,this._dispose,this)}}function Tl(){return a(this,void 0,void 0,(function*(){const e="im_open_status.wslogin",t=kt.common.generateProtocolData({servcmd:e,data:{state:"Online",isWebUniapp:0,InstType:0,customInfo:""}}),s=`${t.head.seq}${e}`;try{const e=yield kt.channel.sendPacket(t,{timeout:9e4,requestId:s});if(e){const{HelloInterval:t,InstId:s,TinyId:n,TimeStamp:o,CustomStatus:i,PurchaseBits:r,A2Key:a,RichMsgAuthKey:c,ErrorCode:l,ErrorInfo:u,ActionStatus:d}=e;return{helloInterval:t,instanceID:s,tinyID:n,timeStamp:o,customStatus:i,purchaseBits:r,a2Key:a,authKey:c,errorCode:l,errorInfo:u,actionStatus:d}}}catch(e){throw console.warn(e),e}}))}class Al{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120}init(){const{notificationCenter:e,store:t}=kt;t.set("login",{isReady:!1}),al({apiName:"login",context:this}),al({apiName:"logout",context:this}),al({apiName:"getLoginUser",context:this}),al({apiName:"isReady",context:this}),e.subscribeInnerEvent(Vt.RECONNECTED,this._reLogin,this),kt.notificationCenter.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}login(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"login",eventType:4});try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new cs({functionName:"login",code:ss.REPEAT_LOGIN});const t=yield this._performLogin(e);return this._validateAfterLogin(t),this._handleLoginSuccess(t),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),{code:0,data:t}}catch(e){const{errorCode:s}=e,n=new cs({functionName:"login",code:s});throw t.setError(n).end(!0),n}finally{this._latestLoginAt=0}}))}_reLogin(){return a(this,void 0,void 0,(function*(){var e;try{if(!this._isLoginIn())return;const t=kt.ssoLog.createSSOLogData({method:"reLogin"}),s=yield Tl();if(s){const{instanceID:n,customStatus:o}=s;kt.store.set("login",{statusInstanceId:n}),ys.executeWorkflow(ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:o,statusType:zt.USER_STATUS_ONLINE});const i=`socketId:${null===(e=kt.channel.getSocketAdapter())||void 0===e?void 0:e.getId()} instanceId:${n}`;t.setLogInfo({message:i}).end(!0)}}catch(e){console.warn(e)}}))}logout(){return a(this,arguments,void 0,(function*(e=hl.USER_INITIATED){kt.ssoLog.createSSOLogData({method:"logout"}).setLogInfo({moreMessage:`identifier:${Ms()}`}).end(!0);try{yield this._performLogout(e)}catch(e){const{errorCode:t}=e,s=new cs({functionName:"logout",code:t});this._handleLogoutError(s)}finally{this._handleLogoutCompleted()}return{code:0,data:{}}}))}getLoginUser(){return this._isLoginIn()?Ms():""}isReady(){var e;return null===(e=kt.store.get("login"))||void 0===e?void 0:e.isReady}_updateAndEmitSDKReady(){kt.store.set("login",{isReady:!0}),setTimeout((()=>{kt.notificationCenter.emitOuterEvent(qt.SDK_READY,{name:qt.SDK_READY})}),1)}_updateAndEmitSDKNotReady(){kt.store.set("login",{isReady:!1}),kt.notificationCenter.emitOuterEvent(qt.SDK_NOT_READY,{name:qt.SDK_NOT_READY})}_validateAfterLogin(e){var t,s;const n="login";if(!e)throw new cs({functionName:n,message:"login response is empty"});const{tinyID:o,a2Key:i}=e||{},r=kt.ssoLog.getSSOLogData(n);if(!o){const e=new cs({functionName:n,code:ss.NO_TINYID});throw null===(t=null==r?void 0:r.setError)||void 0===t||t.call(r,e).end(),e}if(!i){const e=new cs({functionName:n,code:ss.NO_A2KEY});throw null===(s=null==r?void 0:r.setError)||void 0===s||s.call(r,e).end(),e}}_createRepeatLoginResponse(){var e;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:as({code:"RepeatLogin",replacement1:null===(e=kt.store.get("login"))||void 0===e?void 0:e.userId}),repeatLogin:!0}}}_performLogin(e){return a(this,void 0,void 0,(function*(){const{userID:t,userSig:s}=e;return kt.store.set("login",{userId:t,userSig:s}),this._latestLoginAt=Date.now(),Tl()}))}_ensureAsyncComplete(){return a(this,void 0,void 0,(function*(){yield new Promise((e=>{setTimeout((()=>e(null)),1)}))}))}_handleLoginSuccess(e){const{timeManager:t}=kt.common,{helloInterval:s,timeStamp:n,customStatus:o,purchaseBits:i}=e,r=1e3*n;t.calculateTimeOffsetWithServer(this._latestLoginAt,r),this._helloInterval=s||120,this._updateLoginStore(e),kt.user.userStatus.setCustomStatus(o),ys.executeWorkflow(ns.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:i}),kt.common.taskScheduler.addTask({id:ml,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this}),this._logLoginSuccess(e)}_performLogout(e){return function(e){return a(this,void 0,void 0,(function*(){const{logoutReason:t}=e,s="im_open_status.wslogout",n=kt.common.generateProtocolData({servcmd:s,data:{wslogout_type:t,isWebUniapp:0}}),o=`${n.head.seq}${s}`;return yield kt.channel.sendPacket(n,{requestId:o})}))}({logoutReason:e})}_handleLogoutError(e){kt.ssoLog.getSSOLogData("logout").setError(e).end(),console.error(`logout ${e}`)}_handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),ys.reset(),kt.notificationCenter.emitInnerEvent("logout")}_updateLoginStore(e){const{a2Key:t,tinyID:s,instanceID:n,authKey:o}=e;kt.store.set("login",{a2Key:t,tinyID:s,statusInstanceId:n,authKey:o,isLoggedIn:!0})}_logLoginSuccess(e){var t;const s=kt.ssoLog.getSSOLogData("login"),{helloInterval:n,instanceID:o,timeStamp:i,customStatus:r}=e,a=null===(t=kt.channel.getSocketAdapter())||void 0===t?void 0:t.getId(),c=kt.common.timeManager.getTimeOffsetWithServer(),{appId:l,href:u}=kt.store.get("instance")||{},d=`login._logLoginSuccess socketID:${a} scene: helloInterval:${n} instanceID:${o}\n timeStamp:${i} offset:${c} customStatus:${r} href: ${u} appId: ${l}`;console.log(`login ok. ${d}`),s.updateLogCreatedAtByTimeOffset(),s.setLogInfo({moreMessage:d}).end()}_sendOnlinePresenceRequest(){return a(this,void 0,void 0,(function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const e="im_open_status.wshello",t=kt.common.generateProtocolData({servcmd:e,data:{isWebUniapp:0}}),s=`${t.head.seq}${e}`;return kt.channel.sendPacket(t,{requestId:s})}()}catch(e){console.warn("Login._sendOnlinePresenceRequest error:",e)}}))}_isLoginIn(){var e;return!0===(null===(e=kt.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){console.log("Login reset"),kt.common.taskScheduler.removeTask(ml),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,kt.store.clear("login"),kt.store.set("login",{isReady:!1})}_dispose(){console.log("Login dispose"),this._reset();const{notificationCenter:e}=kt;e.unSubscribeInnerEvent(Vt.RECONNECTED,this._reLogin,this),e.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this)}}const Dl={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},Rl={logout:!0};class bl{constructor(){this.loginAction=new Al,this.kickedOutHandler=new Ol,this.loginAction.init(),this.kickedOutHandler.init(),Is({auth:Rl,params:Dl})}}var Nl,Ll,wl;!function(e){e.CONV_C2C="C2C",e.CONV_GROUP="GROUP",e.CONV_TOPIC="TOPIC",e.CONV_SYSTEM="@TIM#SYSTEM"}(Nl||(Nl={})),function(e){e.MSG_PRIORITY_HIGH="High",e.MSG_PRIORITY_NORMAL="Normal",e.MSG_PRIORITY_LOW="Low",e.MSG_PRIORITY_LOWEST="Lowest"}(Ll||(Ll={})),function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem",e.MSG_IMAGE="TIMImageElem",e.MSG_AUDIO="TIMSoundElem",e.MSG_FILE="TIMFileElem",e.MSG_VIDEO="TIMVideoFileElem",e.MSG_GRP_TIP="TIMGroupTipElem",e.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",e.MSG_MERGER="TIMRelayElem"}(wl||(wl={}));const Pl={1:Ll.MSG_PRIORITY_HIGH,2:Ll.MSG_PRIORITY_NORMAL,3:Ll.MSG_PRIORITY_LOW,4:Ll.MSG_PRIORITY_LOWEST},Ul=0,Gl=1;var kl;!function(e){e.IN="in",e.OUT="out"}(kl||(kl={}));const Fl={};function $l(e){if(!e)return 0;if(void 0===Fl[e]){const t=new Date,s=`3${t.getHours()}`.slice(-2),n=`0${t.getMinutes()}`.slice(-2),o=`0${t.getSeconds()}`.slice(-2);Fl[e]=parseInt([s,n,o,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${Fl[e]}`)}else Fl[e]+=1;return Fl[e]}class ql{constructor(e){this.ID="",this.random=0,this.sequence=0,this.nameCard="",this.isRead=!1,this.isPeerRead=!1,this.isDeleted=!1,this.isResend=!1,this.hasRiskContent=!1,this._onlineOnlyFlag=!1,this.atUserList=[],this._groupAtInfoList=[],this.isBroadcastMessage=!1,this.priority=Ll.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:t=kt.common.timeManager.getServerTimeSeconds()||0,senderTinyID:s,currentUser:n,needReadReceipt:o,isSupportExtension:i,customModerationConfigurationId:r,to:a,from:c,nick:l="",avatar:u="",time:d,messageControlInfo:h,tinyID:g,cloudCustomData:p="",messageLifeTime:_,messageVersion:m=0,conversationType:v,sequence:f,checkResult:I=0,isPlaceMessage:S=0,messageFlagBits:E,receiverList:C,isSystemMessage:y=!1,status:M=Kt.SUCCESS,revokeReason:O="",conversationSubType:T,clientSequence:A,protocol:D="JSON",revokerInfo:R={userID:"",nick:"",avatar:""},readReceiptInfo:b={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:N,groupProfile:L,atUserList:w,flow:P,isRead:U=!1}=e;var G;this.clientTime=t,this.senderTinyID=s||g,this.needReadReceipt=!0===o||1===o,this.isSupportExtension=!0===i||1===i,this._cmConfigID=r,this.to=a,this.nick=l,this.avatar=u,this.protocol=D,this.random=void 0===N?(G=G||99999999,Math.round(Math.random()*G)):N,this.time=d||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!(null==h?void 0:h.excludedFromLastMessage),this._isExcludedFromUnreadCount=!!(null==h?void 0:h.excludedFromUnreadCount),this.isModified=!!m,this.cloudCustomData=p,this.messageLifeTime=_,this.from=c||null,this.sequence=f||0,this.conversationType=v||Nl.CONV_C2C,this.hasRiskContent=I>1,this.version=m,this.isPlaceMessage=S,this.isRevoked=2===S||8===E,this.isSystemMessage=y,this.readReceiptInfo=b,this.revokeReason=O,this.revokerInfo=R,this._receiverList=C,this.conversationSubType=T,this.revoker=(null==R?void 0:R.revoker)||"",this.clientSequence=A||f||0,this.status=M,this.atUserList=w||[],this.flow=P,this.isRead=U,this.reInitialize(n),this._initC2CReadReceiptInfo(e),this._extractGroupInfo(L)}getElements(){return this._elements}isOnlineMessage(){return 0===this.messageLifeTime}setElement(e){Array.isArray(e)?this._elements=e:this._elements=[e],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map((e=>e.transformToServerFormat())):this._elements.transformToServerFormat():null}setRelayFlag(e){this._relayFlag=e}validateBeforeSend(){var e,t,s;return this._relayFlag?{isValid:!0}:(null===(e=this._elements)||void 0===e?void 0:e.length)>0?null===(s=null===(t=this._elements[0])||void 0===t?void 0:t.validateBeforeSend)||void 0===s?void 0:s.call(t):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(e){const{readReceiptSentByPeer:t,timestamp:s=0}=e;this.conversationType===Nl.CONV_C2C&&!0===this.needReadReceipt&&(this.readReceiptInfo.isPeerRead=1===t,this.readReceiptInfo.timestamp=s)}_extractGroupInfo(e){if(!e)return;const{From_AccountNick:t,From_AccountHeadurl:s,MsgFrom_AccountExtraInfo:n}=e,{NameCard:o}=n||{};"string"==typeof t&&(this.nick=t),"string"==typeof s&&(this.avatar=s),"string"==typeof o&&(this.nameCard=o)}reInitialize(e){e===this.from&&(this.isRead=!0),this._initSequence(e),this._concatConversationID(e),this.generateMessageID()}_concatConversationID(e){let t="";const s=this.conversationType;s!==Nl.CONV_SYSTEM?(t=s===Nl.CONV_C2C?e===this.from?this.to:this.from:this.to,this.conversationID=t?`${s}${t}`:null):this.conversationID=Nl.CONV_SYSTEM}_initSequence(e){0===this.clientSequence&&e&&(this.clientSequence=$l(e)),0===this.sequence&&this.conversationType===Nl.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===Nl.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(e){this.isRead=e}}class xl{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Data:s,Ext:n,Desc:o}=t;return new xl({data:s,description:o,extension:n})}constructor(e){this.type=wl.MSG_CUSTOM;const{data:t="",description:s="",extension:n=""}=e;this.content={data:t,description:s,extension:n}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{data:n,description:o,extension:i}=s;return{MsgType:this.type,MsgContent:{Data:n,Ext:i,Desc:o}}}validateBeforeSend(){const{isEmpty:e}=kt.utils,t=[this.content.data,this.content.description,this.content.extension].some((t=>!e(t)));return{isValid:t,error:t?null:{message:"content can not be empty"}}}}class Vl{static parseServerPushElement(e){const{MsgContent:t={Text:""}}=e,{Text:s}=t;return new Vl({text:s})}constructor(e){this.type=Wt.MSG_TEXT,this.content={text:e.text||""}}validateBeforeSend(){var e,t;return(null===(t=null===(e=this.content)||void 0===e?void 0:e.text)||void 0===t?void 0:t.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(e){const{isMergerMessage:t=!1}=e||{},s=t?this.payload:this.content,{text:n}=s;return{MsgType:this.type,MsgContent:{Text:n}}}}class Bl{constructor(){this._elementClassMap={[wl.MSG_CUSTOM]:xl,[wl.MSG_TEXT]:Vl}}init(){al({apiName:"createCustomMessage",context:this}),al({apiName:"createTextMessage",context:this})}registerElementClass(e,t){var s;void 0!==(s=t).prototype&&"constructor"in s.prototype&&(this._elementClassMap[e]=t)}getElementClass(e){return this._elementClassMap[e]}createMessage(e){const{from:t,flow:s=kl.OUT}=e,{userId:n}=kt.store.get("login")||{};this._isSendByCurrentInstance({from:t,flow:s,currentUser:n})?this._updateWithSenderInfo(e):this._isMultiEndpointSyncMessage({from:t,flow:s,currentUser:n})&&(e.flow=kl.OUT);const o=Object.assign(Object.assign({},e),{currentUser:n});return new ql(o)}createCustomMessage(e){const t=Ms(),s=this.createMessage(Object.assign(Object.assign({},e),{from:t})),n=this._elementClassMap[wl.MSG_CUSTOM];if(!s)return null;if(n){const t=new n(e.payload);s.setElement(t)}return s}createTextMessage(e){var t;if(!e)return null;const s="string"==typeof e.payload?e.payload:(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.text)||"",n=new Vl({text:s}),o=Ms(),i=kt.message.messageFactory.createMessage(Object.assign(Object.assign({},e),{from:o}));return i.setElement(n),i}_updateWithSenderInfo(e){const{nick:t,avatar:s}=e,{userId:n,tinyID:o}=kt.store.get("login")||{},i=Qc.getUserProfile(n);return e.nick=t||(null==i?void 0:i.nick)||"",e.avatar=s||(null==i?void 0:i.avatar)||"",e.tinyID=e.tinyID||o||"",e.from=n,e.status=Kt.UNSENT,e.flow=kl.OUT,e}_isMultiEndpointSyncMessage(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===kl.IN}_isSendByCurrentInstance(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===kl.OUT}}function jl(e){const t=e.lastIndexOf(".");return-1===t?e:e.slice(0,t)}function Wl(e){const{androidInfo:t={},androidOPPOChannelID:s=""}=e,n=t.OPPOChannelID||s;return Object.assign(Object.assign({},t),{Sound:jl(t.sound||""),OPPOChannelID:n,GoogleChannelID:t.FCMChannelID||""})}function Kl(e){const{apnsInfo:t={},ignoreIOSBadge:s=!1,disableVoipPush:n}=e,o=!0===t.ignoreIOSBadge||!0===s?1:0;let i;return void 0!==n&&(i=!1===n?1:0),void 0!==t.disableVoipPush&&(i=!1===t.disableVoipPush?1:0),Object.assign(Object.assign({},t),{badgeMode:o,isVoipPush:i})}function Hl(e){return kt.utils.isPlainObject(e)?{PushFlag:!0===e.disablePush?1:0,Title:e.title||"",Desc:e.description||"",Ext:e.extension||"",ApnsInfo:Kl(e),AndroidInfo:Wl(e)}:null}function Yl(e){const{From_AccountHeadurl:t,From_AccountNick:s,IsNeedReadReceipt:n,IsPeerRead:o,IsSyncMsg:i,MsgBody:r,MsgClientTime:a,MsgLifeTime:c,MsgRandom:l,MsgSeq:u,MsgTimeStamp:d,SendMsgControl:h,SupportMessageExtension:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,MsgVersion:v,MsgFlagBits:f,RevokerInfo:I}=e;let S,{From_Account:E,To_Account:C}=e;if(1===i){const e=C;C=E,E=e}if(I){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=I;S={reason:e,revoker:t,revokerFromUin:s,userID:t}}return{from:E,avatar:t,nick:s,needReadReceipt:1===n,isSyncMessage:i,clientTime:a,messageLifeTime:c,random:l,sequence:u,time:d,messageControlInfo:{excludedFromLastMessage:1===(null==h?void 0:h.NoLastMsg),excludedFromUnreadCount:1===(null==h?void 0:h.NoUnread)},isSupportExtension:g,to:C,tinyID:p,checkResult:_,cloudCustomData:m,revokerInfo:S,messageVersion:v,messageFlagBits:f,readReceiptSentByPeer:o,elements:Zl(r)}}function zl(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,To_Account:a,MsgVersion:c,CloudCustomData:l}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,to:a,elements:Zl(s),messageVersion:c,cloudCustomData:l}}function Jl(e){const{ClientSeq:t,From_Account:s,GroupInfo:n,MsgBody:o,MsgClientTime:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,SendMsgControl:l,SupportMessageExtension:u,TinyId:d,ToGroupId:h,CloudCustomData:g,MsgVersion:p,MsgCheckResult:_,NeedReadReceipt:m,IsPlaceMsg:v,RevokerInfo:f,GroupAtInfo:I}=e;let S,E=Ll.MSG_PRIORITY_NORMAL;if(Object.keys(Pl).includes(String(e.MsgPriority))&&(E=Pl[e.MsgPriority]),f){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=f;S={reason:e,revoker:t,revokerFromUin:s,userID:t}}const C=function(e){const t=[];Array.isArray(e)&&e.forEach((e=>{e.GroupAtAllFlag===Ul?t.push(e.GroupAt_Account):e.GroupAtAllFlag===Gl&&t.push(ts.MSG_AT_ALL)}));return t}(I);return{clientSequence:t,from:s,groupProfile:n,clientTime:i,priority:E,random:r,sequence:a,time:c,messageControlInfo:{excludedFromLastMessage:1===(null==l?void 0:l.NoLastMsg),excludedFromUnreadCount:1===(null==l?void 0:l.NoUnread)},isSupportExtension:u,to:h,tinyID:d,cloudCustomData:g,messageVersion:p,messageCheckResult:_,needReadReceipt:m,isPlaceMessage:v,revokerInfo:S,atUserList:C,elements:Zl(o)}}function Zl(e){if(!e)return null;if(Array.isArray(e))return e.map((e=>{const t=kt.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)}));const t=kt.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)}function Xl(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,GroupId:a,TopicId:c,MsgVersion:l,CloudCustomData:u}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,groupID:a,topicID:c,elements:Zl(s),messageVersion:l,cloudCustomData:u}}function Ql({conversationUpdateFields:e,message:t}){const{conversationID:s,conversationType:n,conversationSubType:o,flow:i,_isExcludedFromUnreadCount:r,_isExcludedFromLastMessage:a}=t,c=a?"":t,l=!r&&i===kl.IN;e.has(s)?(e.get(s).lastMessage=c,l&&e.get(s).unreadCount++):e.set(s,{conversationID:s,type:n,subType:o,unreadCount:l?1:0,lastMessage:c})}var eu=Object.freeze({__proto__:null,autoIncrementIndex:$l,parseServerGroupMessage:Jl,parseServerPushC2CModifyMessage:zl,parseServerPushGroupModifyMessage:Xl,parseServerPushMessage:Yl,parseServerPushMessageElement:Zl,updateConversationFields:Ql});const{isPlainObject:tu}=kt.utils;function su(e,t={}){const{onlineUserOnly:s,messageControlInfo:n}=t;let{offlinePushInfo:o}=t;e.conversationType===Nl.CONV_C2C&&!0===s&&(o?o.disablePush=!0:o={disablePush:!0});let i="";"string"==typeof e.cloudCustomData&&e.cloudCustomData.length>0&&(i=e.cloudCustomData);const r=[];if(n&&tu(n)){const{excludedFromUnreadCount:e,excludedFromLastMessage:t,excludedFromContentModeration:s}=n;!0===e&&r.push("NoUnread"),!0===t&&r.push("NoLastMsg"),!0===s&&r.push("NoMsgCheck")}return{onlineUserOnly:s,cloudCustomData:i,messageControlInfo:r,offlinePushInfo:o}}function nu(e){const{webhookInfo:{disableCloudMessagePreHook:t=!1,disableCloudMessagePostHook:s=!1}={}}=e||{};if(!t&&!s)return;const n=[];return t&&n.push("ForbidBeforeSendMsgCallback"),s&&n.push("ForbidAfterSendMsgCallback"),n}function ou(e,t){return a(this,void 0,void 0,(function*(){const s=e.conversationType===Nl.CONV_GROUP?function(e,t){var s;const n=su(e,t),{onlineUserOnly:o,cloudCustomData:i,messageControlInfo:r,offlinePushInfo:a}=n,c=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));return{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:null===(s=kt.store.get("login"))||void 0===s?void 0:s.userId,GroupId:e.to,MsgBody:c,CloudCustomData:i,Random:e.random,MsgPriority:e.priority,ClientSeq:e.clientSequence,GroupAtInfo:e._groupAtInfoList,OnlineOnlyFlag:o?1:0,MsgClientTime:e.clientTime,OfflinePushInfo:Hl(a),SendMsgControl:o?void 0:r,NeedReadReceipt:!0===e.needReadReceipt?1:0,receiverList:null,SupportMessageExtension:!0===e.isSupportExtension?1:0,IsRelayMsg:!0===e._relayFlag?1:0,CustomModerationConfigID:e._cmConfigID,ForbidCallbackControl:nu(t)}}}(e,t):function(e,t){var s;const n=su(e,t),{onlineUserOnly:o,cloudCustomData:i,messageControlInfo:r,offlinePushInfo:a}=n,c=!0===o?0:void 0,l=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:null===(s=kt.store.get("login"))||void 0===s?void 0:s.userId,To_Account:e.to,MsgBody:l,CloudCustomData:i,MsgSeq:e.sequence,MsgRandom:e.random,MsgLifeTime:c,From_AccountNick:e.nick,From_AccountHeadurl:e.avatar,SendMsgControl:0!==c?r:void 0,MsgClientTime:e.clientTime,IsNeedReadReceipt:!0===e.needReadReceipt?1:0,SupportMessageExtension:!0===e.isSupportExtension?1:0,IsRelayMsg:!0===e._relayFlag?1:0,CustomModerationConfigID:e._cmConfigID,OfflinePushInfo:Hl(a),forbidCallbackControl:nu(t)}}}(e,t),n=kt.common.generateProtocolData(s),o=`${n.head.seq}${n.head.servcmd}`,i=yield kt.channel.sendPacket(n,{requestId:o});return i?{time:i.MsgTime,messageDropReason:i.MsgDropReason,sequence:i.MsgSeq}:null}))}const{isPlainObject:iu}=kt.utils,{MSG_AUDIO:ru,MSG_FILE:au,MSG_IMAGE:cu,MSG_VIDEO:lu,MSG_MERGER:uu}=ts;class du{init(){al({apiName:"sendMessage",context:this,matcher:e=>![ru,au,cu,lu,uu].includes(e[0].type)})}sendMessage(e,t){return a(this,void 0,void 0,(function*(){const s=kt.ssoLog.createSSOLogData({method:"sendMessage"});if(!(e instanceof ql)){const e=new cs({code:ss.MSG_INSTANCE_REQUIRED});throw s.setError(e).end(),e}const n=e.validateBeforeSend();if(!n.isValid){const{code:e,message:t=""}=n.error||{},o=new cs({code:e,message:t});throw s.setError(o).end(),o}let o=!1;const{messageDataHandler:i}=kt.message||{};try{const{messageControlInfo:n}=t||{};let r=null;if(i.addRandomOfSentMessage(e.random),e.conversationType===Nl.CONV_C2C?(o=!0===(null==t?void 0:t.onlineUserOnly),r=yield ou(e,t)):e.conversationType===Nl.CONV_GROUP&&(r=yield ou(e,t)),r){const{messageDropReason:a,sequence:c,time:l}=r;if(this._updateNickAndAvatarOfSentMessageByMe(e),a&&this._logRateLimitInfo(e,c),!0===e.isResend){const t=i.findMessage(e.ID);t&&(console.log(`sendMessage resend ok. ID:${t.ID}`),i.deleteConversationMessage(t))}return e.status=Kt.SUCCESS,e.time=l,e.conversationType===Nl.CONV_GROUP&&(e.sequence=c),o?e._onlineOnlyFlag=!0:(i.storeConversationMessage(e),this._applySentMessageControlInfo(e,n),this._emitOnlineMessageSent(e)),s.setLogInfo({message:`options: ${JSON.stringify(t)}`}).end(),{code:0,data:{message:e}}}}catch(t){e.status=Kt.FAIL,i.removeRandomOfSentMessage(e.random);const{errorCode:s,errorInfo:n=""}=t||{};this._hasRiskContent(s)&&(e.hasRiskContent=!0),o||this._isRejectedByRestApi(s)||i.storeConversationMessage(e);const r=new cs({code:s,message:n,data:{message:e}});throw this._logSendMessageError({message:e,error:r}),r}}))}_hasRiskContent(e){return 80001===e||80004===e}_isRejectedByRestApi(e){return e>=10100&&e<=10200||e>=120001&&e<=13e4}_logSendMessageError({message:e,error:t}){const s=kt.ssoLog.createSSOLogData({method:"sendMessage"});let n=`head.seq: type:${e.type} from:${e.from} to:${e.to}`;if(kt.utils.IN_BROWSER){if("connection"in navigator){const e=navigator.connection;n+=` downlink:${e.downlink} effectiveType:${e.effectiveType} rtt:${e.rtt}`}if("memory"in window.performance){const e=window.performance.memory;n+=` usedJSHeapSize:${e.usedJSHeapSize} totalJSHeapSize:${e.totalJSHeapSize} jsHeapSizeLimit:${e.jsHeapSizeLimit}`}}s.setLogInfo({message:n}).setError(t).end()}_emitOnlineMessageSent(e){const t=e._isExcludedFromLastMessage?"":e,{conversationID:s,conversationType:n}=e;kt.notificationCenter.emitInnerEvent(Vt.NEW_MESSAGE,{result:{conversationUpdateFieldList:[{conversationID:s,type:n,message:e,lastMessage:t,unreadCount:0}]}})}_applySentMessageControlInfo(e,t){t&&iu(t)&&(!0===t.excludedFromLastMessage&&(e._isExcludedFromLastMessage=!0),!0===t.excludedFromUnreadCount&&(e._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(e,t){const s=kt.ssoLog.createSSOLogData({method:"messageDropReason"}),n=`from:${e.from} to:${e.to} sequence:${t} messageDropReason:${messageDropReason}`;s.setLogInfo({message:n}).end(),console.warn(`sendMessage ${n}`)}_updateNickAndAvatarOfSentMessageByMe(e){const{messageDataHandler:t}=kt.message||{};let s=!1;const{conversationID:n}=e,o=t.getLatestMsgSentByMe(n);if(o){const{nick:i,avatar:r}=o;i===e.nick&&r===e.avatar||(s=!0),s&&t.updateNickAndAvatarOfSentMessage({conversationID:n,latestNick:e.nick,latestAvatar:e.avatar,isSentByMe:!0})}}}class hu{constructor(e){this.value=e,this.next=null}}class gu{constructor(e){this.head=null,this.tail=null,this.size=0,this.capacity=e}append(e){this.size>=this.capacity&&this.removeHead();const t=new hu(e);this.head?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),this.size+=1}delete(e){if(!this.head)return;if(this.head.value===e)return void(this.head=this.head.next);let t=this.head;for(;t.next;){if(t.next.value===e)return void(t.next=t.next.next);t=t.next}}has(e){if(!this.head)return!1;let t=this.head,s=!1;for(;t;)t.value===e&&(s=!0),t=t.next;return s}removeHead(){this.head&&(this.head===this.tail?(this.head=null,this.tail=null):this.head=this.head.next,this.size-=1)}peek(){var e;return null===(e=this.head)||void 0===e?void 0:e.value}length(){return this.size}isEmpty(){return 0===this.size}isFull(){return this.size===this.capacity}clear(){this.head=null,this.tail=null,this.size=0}}class pu{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new gu(100),kt.notificationCenter.subscribeInnerEvent(Vt.LOGOUT,this._reset,this),kt.notificationCenter.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}get _messagesByConversation(){return Xc.getMessages()}storeConversationMessage(e,t=!1){const{conversationID:s}=e;if(!s)return!1;if(this._messagesByConversation.has(s)||this._messagesByConversation.set(s,new Map),this._shouldSkipStoreMessage(e,t))return!1;const n=this._getUniqueIdOfMessage(e);return this._messagesByConversation.get(s).set(n,e),this._updateLatestMessageMap(e),!0}_updateLatestMessageMap(e){const{conversationID:t}=e;"out"===e.flow?this._setLatestMsgSentByMe(t,e):t.startsWith("C2C")&&this._setLatestMsgSentByPeer(t,e)}_shouldSkipStoreMessage(e,t){const s=this._getUniqueIdOfMessage(e),n=this._messagesByConversation.get(e.conversationID);if(null==n?void 0:n.has(s)){const e=null==n?void 0:n.get(s);if(!t||!0===(null==e?void 0:e.isModified))return!0}return!1}deleteConversationMessage(e){var t;const{conversationID:s=""}=e,n=this._getUniqueIdOfMessage(e);this._messagesByConversation.has(s)&&(null===(t=this._messagesByConversation.get(s))||void 0===t||t.delete(n))}modifyConversationMessage(e,t){var s;if(!this._messagesByConversation.has(e)&&!this._sparseMessagesByConversation.has(e))return{isUpdated:!1,message:null};const n=this._getUniqueIdOfMessage(t),o=this._getMessageFromLocalMessage(e,n);if(o){const{messageVersion:n,elements:i,cloudCustomData:r,checkResult:a=0}=t,c=a>1;if(console.log(`conversationToMessageMap modifyConversationMessage localVersion:${o.version} remoteVersion:${n}`),o.version<n){const t=this._getUniqueIdOfMessage(o),a=ge(i);return(null===(s=this._messagesByConversation.get(e))||void 0===s?void 0:s.has(t))?Xc.updateMessage(e,[t],{isModified:!0,version:n,_elements:a,payload:a[0].content,type:a[0].type,cloudCustomData:r,hasRiskContent:c,operation:Ht.modify}):(o.version=n,o._elements=a,o.payload=o._elements[0].content,o.type=o._elements[0].type,o.cloudCustomData=r,o.isModified=!0,o.hasRiskContent=c),{isUpdated:!0,message:o}}return{isUpdated:!1,message:o}}return{isUpdated:!1,message:null}}_getMessageFromLocalMessage(e,t){var s;if(this._messagesByConversation.has(e))return null===(s=this._messagesByConversation.get(e))||void 0===s?void 0:s.get(t);if(this._sparseMessagesByConversation.has(e)){const s=[...this._sparseMessagesByConversation.get(e).values()];for(let e=0;e<s.length;e++)if(this._getUniqueIdOfMessage(s[e])===t)return s[e]}return null}findMessage(e){let t=null;const s=Array.from(this._messagesByConversation.values());for(const n of s){if(t=Array.from(n.values()).find((t=>t.ID===e))||null,t)break}if(!t){const s=Array.from(this._sparseMessagesByConversation.values());for(const n of s)if(t=n.get(e)||null,t)break}return t}deleteConversationMessageList(e){this._messagesByConversation.has(e)&&(this._messagesByConversation.delete(e),this._latestMessageSentByMeMap.delete(e),this._latestMessageSentByPeerMap.delete(e)),this._sparseMessagesByConversation.has(e)&&this._sparseMessagesByConversation.delete(e)}revokeMessage({conversationID:e,sequence:t,random:s,revoker:n}){const o=this._messagesByConversation.get(e);let i=null;if(o){const r=Array.from(o.values());if(i=this._findMessageBySequenceAndRandom({messageList:r,random:s,sequence:t}),i){const t=this._getUniqueIdOfMessage(i);return Xc.updateMessage(e,[t],{isRevoked:!0,revoker:n,operation:Ht.revoke}),i}}if(this._sparseMessagesByConversation.has(e)){const o=Array.from(this._sparseMessagesByConversation.get(e).values());if(i=this._findMessageBySequenceAndRandom({messageList:o,random:s,sequence:t}),i)return i.isRevoked=!0,i.revoker=n,i}}_findMessageBySequenceAndRandom({messageList:e,sequence:t,random:s}){for(let n=0;n<e.length;n+=1){const o=e[n];if(o.sequence===t&&(c(s)||o.random===s))return o}return null}prependLocalMessageList(e){const{messageList:t,conversationID:s}=e;if(0===t.length)return[];const n=[],o=[],i=this._messagesByConversation.get(s)||new Map;for(const e of t){const t=this._getUniqueIdOfMessage(e);i.has(t)||(n.push(e),o.push([t,e]))}if(o.length>0){const e=new Map([...o,...i.entries()]);this._messagesByConversation.set(s,e),this._updateLatestMessageSentByMe(s),this._updateLatestMessageSentByPeer(s)}return n}storeSparseMessageList(e){if(0===e.length)return;const{conversationID:t}=e[0],s=e.length;this._sparseMessagesByConversation.has(t)||this._sparseMessagesByConversation.set(t,new Map);const n=this._sparseMessagesByConversation.get(t);for(let t=0;t<s;t++){const s=e[t];n.has(s.ID)||n.set(s.ID,s)}}_updateLatestMessageSentByMe(e){var t;const s=Array.from((null===(t=this._messagesByConversation.get(e))||void 0===t?void 0:t.values())||[]);if(0!==s.length)for(let t=s.length-1;t>=0;t--)if("out"===s[t].flow){this._setLatestMsgSentByMe(e,s[t]);break}}_updateLatestMessageSentByPeer(e){var t;const s=Array.from((null===(t=this._messagesByConversation.get(e))||void 0===t?void 0:t.values())||[]);if(0!==s.length&&e.startsWith("C2C"))for(let t=s.length-1;t>=0;t--)if("in"===s[t].flow){this._setLatestMsgSentByPeer(e,s[t]);break}}_getUniqueIdOfMessage(e){const{from:t,to:s,random:n,sequence:o,time:i}=e;return`${t}-${s}-${n}-${o}-${i}`}_setLatestMsgSentByPeer(e,t){this._latestMessageSentByPeerMap.set(e,t)}_setLatestMsgSentByMe(e,t){this._latestMessageSentByMeMap.set(e,t)}getLatestMsgSentByPeer(e){return this._latestMessageSentByPeerMap.get(e)}getLatestMsgSentByMe(e){return this._latestMessageSentByMeMap.get(e)}addRandomOfSentMessage(e){this._randomOfSentMessageList.append(e)}removeRandomOfSentMessage(e){this._randomOfSentMessageList.delete(e)}updateNickAndAvatarOfSentMessage(e){const{conversationID:t="",latestAvatar:s,latestNick:n,isSentByMe:o=!0}=e,i=this._messagesByConversation.get(t);if(!i)return;const r=Array.from(i.values()),a=o?"out":"in";r.forEach((e=>{const{nick:t,avatar:o,flow:i}=e;i===a&&(t!==n&&(e.nick=n),o!==s&&(e.avatar=s))}))}isInMessageList(e){var t;const{conversationID:s}=e;if(!s)return!1;if(!this._messagesByConversation.has(s))return!1;const n=this._getUniqueIdOfMessage(e);return null===(t=this._messagesByConversation.get(s))||void 0===t?void 0:t.has(n)}isMessageSentByCurrentInstance(e){const{random:t}=e;return this._randomOfSentMessageList.has(t)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(e){const t=this._messagesByConversation.get(e);return t?[...t.values()]:[]}getSparseMessageList(e){const t=this._sparseMessagesByConversation.get(e);return t?[...t.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),kt.notificationCenter.unSubscribeInnerEvent(Vt.LOGOUT,this._reset,this),kt.notificationCenter.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this)}}function _u(e,t){const s=Jc.getConversation(e);if(null==s?void 0:s.lastMessage){const{lastMessage:n}=s,{lastTime:o,lastSequence:i,version:r}=n,{time:a,sequence:c,messageVersion:l,elements:u,cloudCustomData:d}=t;o===a&&i===c&&r!==l&&(n.type=u[0].type,n.payload=u[0].content,n.messageForShow=Ds(n.type,n.payload),n.cloudCustomData=d,n.version=l,Jc.updateConversation(e,{lastMessage:n}))}}class mu{init(){al({apiName:"modifyMessage",context:this})}modifyMessage(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"modifyMessage"}),{to:s,payload:n,sequence:o,conversationType:i,random:r,time:c,from:l,type:u}=e;if(!this._canModifyMessageElement(u))return void t.setLogInfo({message:`can not modify message element. message type: ${u}`}).end();const d=e.getElements();d.length>1&&(d[0].type=u,d[0].content=n);try{let n=null,u=null;if(t.setLogInfo({message:`to:${s}`}),i===Nl.CONV_C2C?n=yield function(e){return a(this,void 0,void 0,(function*(){const t="openim.modify_c2c_msg",{from:s,to:n,version:o=0,sequence:i,random:r,time:a,type:c,cloudCustomData:l}=e,u=kt.common.generateProtocolData({servcmd:t,data:{From_Account:s,To_Account:n,MsgVersion:o,MsgSeq:i,MsgRandom:r,MsgTime:a,MsgType:c,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:l}}),d=`${u.head.seq}${t}`,h=yield kt.channel.sendPacket(u,{requestId:d});if(h){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=h;return{elements:Zl(e),messageVersion:t,cloudCustomData:s}}}))}(e):i===Nl.CONV_GROUP&&(n=yield function(e){return a(this,void 0,void 0,(function*(){const t="openim.modify_group_msg",{to:s,version:n=0,sequence:o,cloudCustomData:i}=e;let r,a=s;As(s)&&(a=s.split(Qt.TOPIC)[0],r=s);const c=kt.common.generateProtocolData({servcmd:t,data:{GroupId:a,TopicId:r,MsgVersion:n,MsgSeq:o,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:i}}),l=`${c.head.seq}${t}`,u=yield kt.channel.sendPacket(c,{requestId:l});if(u){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=u;return{elements:Zl(e),messageVersion:t,cloudCustomData:s}}}))}(e)),n){t.end();let a=`${i}${s}`;return s===Ms()&&i===Nl.CONV_C2C&&(a=`${i}${l}`),u={conversationType:i,from:l,to:s,time:c,random:r,sequence:o,elements:null==n?void 0:n.elements,cloudCustomData:null==n?void 0:n.cloudCustomData,messageVersion:null==n?void 0:n.messageVersion,conversationID:a},this._handleModifyMessageSuccess(u),{code:0,data:{message:e}}}}catch(e){const{errorCode:t}=e||{},s=new cs({functionName:"modifyMessage",code:t});throw this._logModifyMessageError(s),s}}))}_logModifyMessageError(e){kt.ssoLog.getSSOLogData("modifyMessage").setError(e).end()}_handleModifyMessageSuccess(e){const{conversationID:t}=e,{isUpdated:s,message:n}=kt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&kt.notificationCenter.emitOuterEvent(qt.MESSAGE_MODIFIED,{name:qt.MESSAGE_MODIFIED,data:[n]}),kt.notificationCenter.emitInnerEvent(Vt.MESSAGE_MODIFIED,{conversationID:t,message:n}),_u(t,e)}_canModifyMessageElement(e){return[wl.MSG_TEXT,wl.MSG_CUSTOM,wl.MSG_LOCATION,wl.MSG_FACE].includes(e)}}class vu{init(){const{notificationCenter:e}=kt,{InnerEventSubType:t}=e;ys.registerWorkflowStep(ns.RECEIVE_C2C_NEW_MESSAGE,os.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),ys.registerWorkflowStep(ns.RECEIVE_C2C_NEW_MESSAGE,os.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),ys.registerWorkflowStep(ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,os.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),e.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){ys.executeWorkflow(ns.RECEIVE_C2C_NEW_MESSAGE,e)}_handleC2CMessagePush(e){const t=e.data||{},{messageDataHandler:s}=kt.message||{},n=[],o=new Map;return t.C2cMsgArray.forEach((e=>{const t=this._generateC2CMessage(e);this._updateMessageProfile(t);let i=1===t.isModified;if(s.isMessageSentByCurrentInstance(t)?t.isModified=i:i=!1,t.isOnlineMessage())t._onlineOnlyFlag=!0,s.isMessageSentByCurrentInstance(t)||n.push(t);else if(!s.isInMessageList(t)){s.storeConversationMessage(t)&&Ql({conversationUpdateFields:o,message:t}),s.isMessageSentByCurrentInstance(t)&&!i||n.push(t)}})),{conversationUpdateFieldList:[...o.values()],messages:n}}_emitMessageEventsAfterReceiveNewMessage(e){var t;const{messages:s=[]}=(null===(t=e.result)||void 0===t?void 0:t[os.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(s)}_emitMessageEventsAfterSyncUnreadMessage(e){var t;const{messages:s=[]}=(null===(t=e.result)||void 0===t?void 0:t[os.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(s)}_emitMessageEvents(e){const t=(null==e?void 0:e.filter((e=>!0===(null==e?void 0:e.isModified))))||[];t.length>0&&kt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:t});const s=null==e?void 0:e.filter((e=>!(null==e?void 0:e.isModified)));s.length>0&&kt.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:s})}_generateC2CMessage(e){const t=Nl.CONV_C2C,s=Yl(e),n=kt.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:kl.IN})),{elements:o}=s;return n.setElement(o),n}_updateMessageProfile(e){var t;const{messageDataHandler:s}=kt.message||{},n=null===(t=kt.store.get("login"))||void 0===t?void 0:t.userId,{from:o,nick:i,avatar:r,conversationID:a=""}=e;if(o!==n){const t=s.getLatestMsgSentByPeer(a);if(t){const{nick:n,avatar:o}=t;c(i)||c(r)?(e.nick=l(n)?n:e.nick,e.avatar=l(o)?o:e.avatar):i===n&&r===o||(s.updateNickAndAvatarOfSentMessage({conversationID:a,latestNick:i,latestAvatar:r,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:a,nick:i,avatar:r}))}}else{const e=s.getLatestMsgSentByMe(a);!e||i===e.nick&&r===e.avatar||s.updateNickAndAvatarOfSentMessage({conversationID:a,latestNick:i,latestAvatar:r,isSentByMe:!0})}}_updateConversationUserProfile(e){const{conversationID:t,nick:s,avatar:n}=e,o=Jc.getConversation(t),{userProfile:i={}}=o||{};i.avatar===n&&i.nick===s||Jc.updateConversation(t,{userProfile:Object.assign(Object.assign({},i),{nick:s,avatar:n})})}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=kt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&kt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),kt.notificationCenter.emitInnerEvent("ModifyMessageSuccess",e),_u(t,e)}_handleC2CMessageModify(e){e.C2cMsgModNotifys.forEach((e=>{var t;const s=Nl.CONV_C2C;let n=zl(e);const{to:o,from:i}=n;let r=`${s}${o}`;o===(null===(t=kt.store.get("login"))||void 0===t?void 0:t.userId)&&(r=`${s}${i}`),n=Object.assign({conversationType:s,conversationID:r},n),this._updateMessageListDueToModify(n)}))}_dispose(){const{notificationCenter:e}=kt,{InnerEventSubType:t}=e;kt.notificationCenter.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),kt.notificationCenter.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),kt.notificationCenter.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this)}}class fu{init(){const{notificationCenter:e}=kt,{InnerEventSubType:t}=e;ys.registerWorkflowStep(ns.RECEIVE_GROUP_NEW_MESSAGE,os.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),ys.registerWorkflowStep(ns.RECEIVE_GROUP_NEW_MESSAGE,os.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,t.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,t.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),e.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){ys.executeWorkflow(ns.RECEIVE_GROUP_NEW_MESSAGE,e)}_handleGroupMessagePush(e){const t=e.data||{},{messageDataHandler:s}=kt.message,n=[],o=new Map,i=null==t?void 0:t.GroupMsgArray;return null==i||i.forEach((e=>{const t=this._generateGroupMessage(e);this.updateMessageProfile(t);let i=1===t.isModified;if(s.isMessageSentByCurrentInstance(t)?t.isModified=i:i=!1,t.isOnlineMessage())t._onlineOnlyFlag=!0,s.isMessageSentByCurrentInstance(t)||n.push(t);else if(!s.isInMessageList(t)){s.storeConversationMessage(t)&&(n.push(t),Ql({conversationUpdateFields:o,message:t}))}})),{conversationUpdateFieldList:[...o.values()],messages:n}}_emitMessageEvents(e){var t;const{messages:s}=(null===(t=e.result)||void 0===t?void 0:t[os.HANDLE_GROUP_NEW_MESSAGE])||{},n=(null==s?void 0:s.filter((e=>!0===(null==e?void 0:e.isModified))))||[];n.length>0&&kt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:n});const o=(null==s?void 0:s.filter((e=>!(null==e?void 0:e.isModified))))||[];o.length>0&&kt.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:o})}_generateGroupMessage(e){const t=Nl.CONV_GROUP,s=Jl(e),n=kt.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:kl.IN})),{elements:o}=s;return n.setElement(o),n}updateMessageProfile(e){var t;const{messageDataHandler:s}=kt.message||{},n=null===(t=kt.store.get("login"))||void 0===t?void 0:t.userId,{from:o,nick:i,avatar:r,conversationID:a=""}=e;if(o===n){const e=s.getLatestMsgSentByMe(a);!e||i===e.nick&&r===e.avatar||s.updateNickAndAvatarOfSentMessage({conversationID:a,latestNick:i,latestAvatar:r,isSentByMe:!0})}}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=kt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&kt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),_u(t,e)}_handleGroupMessageModify(e){e.GroupMsgModNotifys.forEach((e=>{const t=Nl.CONV_GROUP;let s=Xl(e);const{topicID:n,groupID:o}=s,i=n||o,r=`${t}${i}`;s=Object.assign({conversationType:t,conversationID:r,to:i},s),this._updateMessageListDueToModify(s)}))}_dispose(){const{notificationCenter:e}=kt,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:t,GROUP_MESSAGE_MODIFIED:s}}=e;e.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,t,this._handleGroupMessagePush,this),e.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,s,this._handleGroupMessageModify,this),e.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this)}}class Iu{constructor(){this.c2cMessageReceiver=new vu,this.groupMessageReceiver=new fu}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}}const Su={createCustomMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1}},sendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],createTextMessage:{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,customValidator:e=>function(e){var t;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(t=null==e?void 0:e.text)||void 0===t?void 0:t.length))return"payload.text is invalid.";return!0}(e)}}};const Eu={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};class Cu{constructor(){this.messageHelper=eu,this.messageFactory=new Bl,this.messageSender=new du,this.messageAction=new mu,this.messageReceiver=new Iu,this.messageDataHandler=new pu,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),Is({auth:Eu,params:Su})}}const yu="User",Mu="Tag_Profile_IM_",Ou=100,Tu={NICK:`${Mu}Nick`,GENDER:`${Mu}Gender`,BIRTHDAY:`${Mu}BirthDay`,LOCATION:`${Mu}Location`,SELFSIGNATURE:`${Mu}SelfSignature`,ALLOWTYPE:`${Mu}AllowType`,LANGUAGE:`${Mu}Language`,AVATAR:`${Mu}Image`,MESSAGESETTINGS:`${Mu}MsgSettings`,ADMINFORBIDTYPE:`${Mu}AdminForbidType`,LEVEL:`${Mu}Level`,ROLE:`${Mu}Role`},Au="USER_STATUS",Du=1,Ru={userID:"",nick:"",gender:"Gender_Type_Unknown",birthday:0,location:"",selfSignature:"",allowType:"AllowType_Type_AllowAny",language:0,avatar:"",messageSettings:0,adminForbidType:"AdminForbid_Type_None",level:0,role:0,lastUpdatedTime:0,profileCustomField:[]},bu=new Map([[Tu.NICK,"nick"],[Tu.GENDER,"gender"],[Tu.BIRTHDAY,"birthday"],[Tu.LOCATION,"location"],[Tu.SELFSIGNATURE,"selfSignature"],[Tu.ALLOWTYPE,"allowType"],[Tu.LANGUAGE,"language"],[Tu.AVATAR,"avatar"],[Tu.MESSAGESETTINGS,"messageSettings"],[Tu.ADMINFORBIDTYPE,"adminForbidType"],[Tu.LEVEL,"level"],[Tu.ROLE,"role"]]);var Nu=new class{createProfile(e,t){const s={userID:e,profileCustomField:[]};return t.forEach((e=>{const{tag:t,value:n}=e;t&&t.indexOf("Tag_Profile_Custom")>-1?s.profileCustomField.push({key:t,value:n}):bu.has(t)&&(s[bu.get(t)]=n)})),Object.assign(Object.assign({},Ru),s)}parseProfileItem(e=[]){const t=[];return e.forEach((e=>{t.push({tag:e.Tag,value:e.Value})})),t}parseProfileList(e=[]){const t=[];return e.forEach((e=>{t.push({tag:e.Tag,value:e.ValueBytes})})),t}convertParamsToProfile(e){const t=[];return Object.keys(e).forEach((s=>{t.push({tag:Tu[s.toUpperCase()],value:e[s]})})),t}normalizeProfileFields(e){const t={};return e.forEach((e=>{const{tag:s,value:n}=e;if(bu.has(s)){const e=bu.get(s);t[e]=n}})),t}};const{generateProtocolData:Lu}=kt.common;function wu(e){return a(this,void 0,void 0,(function*(){const t="profile.portrait_get_all",s={From_Account:Ms(),UserItem:[]};e.forEach((e=>{s.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:e})}));const n=Lu({servcmd:t,data:s}),o=`${n.head.seq}${t}`,i=yield kt.channel.sendPacket(n,{requestId:o});if(i)return function(e){const{ActionStatus:t,ErrorCode:s,ErrorDisplay:n,ErrorInfo:o,UserProfileItem:i}=e,r=[];return i.map((e=>{const{To_Account:t,CustomSequence:s,ResultCode:n,ResultInfo:o,StandardSequence:i,ProfileItem:a}=e,c=Nu.parseProfileItem(a);r.push({userId:t,customSequence:s,resultCode:n,resultInfo:o,standardSequence:i,profileItem:c})})),{actionStatus:t,errorCode:s,errorDisplay:n,errorInfo:o,userProfile:r}}(i)}))}function Pu(e){return Qc.getFriendMap().has(e)}const{isEmpty:Uu}=kt.utils;class Gu{init(){al({apiName:"getMyProfile",context:this}),al({apiName:"getUserProfile",context:this}),al({apiName:"updateMyProfile",context:this}),this.createProfile=Nu.createProfile.bind(Nu);const{notificationCenter:e}=kt;ys.registerWorkflowStep(ns.SYNC_SERVER_INFO_AFTER_LOGIN,os.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.subscribeInnerEvent(Vt.LOGOUT,this._reset,this),e.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}getMyProfile(){return a(this,void 0,void 0,(function*(){const e=kt.ssoLog.createSSOLogData({method:"getMyProfile"});try{const t=Ms(),s=yield wu([t]);if(s){const e=this._handleProfileFormResponse(s)[0];return Qc.getUserProfileMap().set(t,e),{code:0,data:e}}e.end()}catch(t){const{errorCode:s,errorInfo:n}=t,o=new cs({functionName:"getMyProfile",code:s,message:n});throw e.setError(o).end(),t}}))}getUserProfile(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"getUserProfile"});try{let{userIDList:s}=e;s.length>Ou&&(s=s.slice(0,Ou));const{userIdListToRequest:n,userIdListToCache:o}=this._filterRequestAndCacheUsers(s),i=[];o.forEach((e=>{const t=Qc.getUserProfile(e);i.push(t)}));const r=`userIDList.length:${s.length}`;if(0===n.length)return t.setLogInfo({message:r}).end(),{code:0,data:i};const a=yield wu(n);if(a){const e=this._handleProfileFormResponse(a);e.forEach((e=>{Pu(e.userID)&&Qc.getUserProfileMap().set(e.userID,e)}));const s=e.concat(i);return t.setLogInfo({message:r}).end(),{code:0,data:s}}}catch(e){const{errorCode:s}=e,n=new cs({functionName:"getUserProfile",code:s});throw t.setError(n).end(),n}}))}getMyProfileCacheThenServer(){return a(this,void 0,void 0,(function*(){const e=Ms(),t=Qc.getUserProfileMap().has(e);return t?{code:0,data:t}:this.getMyProfile()}))}updateMyProfile(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"updateMyProfile"}),s=Ms(),n={};for(const t in e)void 0!==e[t]&&(n[t]=e[t]);const o=Nu.convertParamsToProfile(n);try{const e={From_Account:s,ProfileItem:o};t.setLogInfo({message:JSON.stringify(o)}),yield function(e){return a(this,void 0,void 0,(function*(){const t="profile.portrait_set",s=Lu({servcmd:t,data:e}),n=`${s.head.seq}${t}`,o=yield kt.channel.sendPacket(s,{requestId:n});if(o){const{ActionStatus:e,ErrorCode:t,ErrorDisplay:s,ErrorInfo:n}=o;return{actionStatus:e,errorCode:t,errorDisplay:s,errorInfo:n}}}))}(e);const i=Qc.getUserProfile(s);let r;r=i?Object.assign(Object.assign({},i),n):Nu.createProfile(s,o);return!ds(i,r,["lastUpdatedTime","profileCustomField"])&&kt.notificationCenter.emitOuterEvent(qt.PROFILE_UPDATED,{name:qt.PROFILE_UPDATED,data:[r]}),r.lastUpdatedTime=Date.now(),Qc.getUserProfileMap().set(s,r),t.end(),{code:0,data:r}}catch(e){const{errorCode:s,errorInfo:n}=e,o=new cs({functionName:"updateMyProfile",code:s,message:n});throw t.setError(o).end(),o}}))}updateMyNickAndAvatar(e){return a(this,void 0,void 0,(function*(){const t=Ms(),s=Date.now(),n=Qc.getUserProfile(t);let o={};o=n?Object.assign(n,e):Nu.createProfile(t,e),o.lastUpdatedTime=s,Qc.getUserProfileMap().set(t,o)}))}_onProfileDataModify(e){const t=function(e){const{Profile_Account:t,PushType:s,ProfileList:n}=e;return{userId:t,pushType:s,profileList:Nu.parseProfileList(n)}}(e.ProfileDataMod[0]);if(Uu(t))return;const{isProfileUpdated:s,profile:n}=this._handleProfileModified(t);s&&(kt.notificationCenter.emitInnerEvent(Vt.PROFILE_UPDATE,{name:Vt.PROFILE_UPDATE,data:[n]}),kt.notificationCenter.emitOuterEvent(qt.PROFILE_UPDATED,{name:qt.PROFILE_UPDATED,data:[n]}))}_dispose(){const{notificationCenter:e}=kt;e.unSubscribeInnerEvent(Vt.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(e){const{userId:t,profileList:s}=e,n=Qc.getUserProfile(t);if(!n||!Pu(t))return{isProfileUpdated:!1,profile:null};const o=Nu.normalizeProfileFields(s),i=Object.keys(o).some((e=>n[e]!==o[e]));if(!i)return{isProfileUpdated:!1,profile:n};const r=Date.now(),a=Object.assign(Object.assign(Object.assign({},n),o),{lastUpdatedTime:r});return Qc.getUserProfileMap().set(t,a),Jc.updateConversation(`C2C${t}`,{userProfile:a}),{isProfileUpdated:i,profile:a}}_filterRequestAndCacheUsers(e){const t=[],s=[];return e.forEach((e=>{const n=Qc.getUserProfileMap().has(e);Pu(e)&&n?s.push(e):t.push(e)})),{userIdListToRequest:t,userIdListToCache:s}}_handleProfileFormResponse(e){const{userProfile:t}=e;if(!Array.isArray(t))return[];const s=t.filter((e=>"@TLS#NOT_FOUND"!==e.userId&&""!==e.userId&&!Uu(e.profileItem))),n=Date.now();return s.map((e=>{const t=Nu.createProfile(e.userId,e.profileItem);return t.lastUpdatedTime=n,t}))}_reset(){Qc.getUserProfileMap().clear()}}const ku=new Map,Fu=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let e=0,t=Fu.length;e<t;e++)ku.set(e,Fu[e]);function $u(e){if(!e)return"";const t=String(e).replace(/[=]+$/,"");let s="";if(t.length%4==1)return"";for(let e,n,o=0,i=0;n=t.charAt(i++);~n&&(e=o%4?64*e+n:n,o++%4)?s+=String.fromCharCode(255&e>>(-2*o&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);try{return decodeURIComponent(escape(s))}catch(e){return console.warn(e),""}}const{isEmpty:qu}=kt.utils,{generateProtocolData:xu}=kt.common;function Vu(e){return a(this,void 0,void 0,(function*(){const t="im_open_status.ws_get_user_status",s=xu({servcmd:t,data:{To_Account:e}}),n=`${s.head.seq}${t}`,o=yield kt.channel.sendPacket(s,{requestId:n});if(o)return function(e){const{ErrorCode:t,ErrorInfo:s,ErrorList:n=[],UserStatusList:o=[]}=e,i=o.map((e=>{const{To_Account:t,Status:s,CustomStatus:n}=e;return{userID:t,statusType:s,customStatus:$u(n)}})),r=n.map((e=>{const{To_Account:t,Invalid_Account:s,ErrorCode:n,ErrorInfo:o}=e;return{userID:qu(s)?t:s,code:n,message:o}}));return{errorCode:t,errorInfo:s,successUserList:i,failureUserList:r}}(o)}))}class Bu{constructor(){this._customStatus=""}init(){const{notificationCenter:e}=kt;al({apiName:"getUserStatus",context:this}),al({apiName:"setSelfStatus",context:this}),al({apiName:"subscribeUserStatus",context:this}),al({apiName:"unsubscribeUserStatus",context:this}),ys.registerWorkflowStep(ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,os.USER_STATUS_UPDATE,this._onReOnline,this),e.subscribeInnerEvent(Vt.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.subscribeInnerEvent(Vt.LOGOUT,this._reset,this),e.subscribeInnerEvent(Vt.DESTROY,this._dispose,this)}setSelfStatus(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"setSelfStatus"}),s=Ms(),{customStatus:n}=e;try{return yield function(e){return a(this,void 0,void 0,(function*(){const t="im_open_status.ws_set_custom_status",s=xu({servcmd:t,data:{CustomStatus:e}}),n=`${s.head.seq}${t}`,o=yield kt.channel.sendPacket(s,{requestId:n});if(o){const{ErrorCode:e,ErrorInfo:t}=o;return{errorCode:e,errorInfo:t}}}))}(n),this._customStatus=n,t.setLogInfo({message:`customStatus: ${n}`}).end(),{code:0,data:{userID:s,statusType:Du,customStatus:n}}}catch(e){const{errorCode:s,errorInfo:n}=e,o=new cs({functionName:"setSelfStatus",code:s,message:n});throw t.setError(o).end(),o}}))}getUserStatus(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.createSSOLogData({method:"getUserStatus"}),{userIDList:s=[]}=e;return t.setLogInfo({moreMessage:`userIDList length: ${s.length}`}),this._isOnlyMeInArray(s)?this._getMyStatus():this._getUserStatus(s)}))}setCustomStatus(e){const t=$u(e);this._customStatus=t}subscribeUserStatus(e){return a(this,void 0,void 0,(function*(){try{console.log(`${yu} subscribeUserStatus options: `,e);const{userIDList:t=[]}=e;this._checkBusinessCapabilityBits("subscribeUserStatus");const s=this._getMaxUserCount("subscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return a(this,void 0,void 0,(function*(){const{channel:t}=kt,s="im_open_status.ws_status_subscribe",n=xu({servcmd:s,data:{To_Account:e}}),o=`${n.head.seq}${s}`;return yield t.sendPacket(n,{requestId:o})}))}(n);return{code:0,data:{failureUserList:this._parseResponse(o)}}}catch(e){throw console.error(`${yu} subscribeUserStatus error:`,e),e}}))}unsubscribeUserStatus(e){return a(this,void 0,void 0,(function*(){try{console.log(`${yu} unsubscribeUserStatus options: `,e),this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:t=[]}=e,s=this._getMaxUserCount("unsubscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return a(this,void 0,void 0,(function*(){const{channel:t}=kt,s="im_open_status.ws_status_unsubscribe";let n={};n=0===e.length?{UnsubscribeAll:1}:{To_Account:e};const o=xu({servcmd:s,data:n}),i=`${o.head.seq}${s}`;return yield t.sendPacket(o,{requestId:i})}))}(n);return{code:0,data:{failureUserList:this._parseResponse(o)}}}catch(e){throw console.error(`${yu} unsubscribeUserStatus error:`,e),e}}))}_onUserStatusUpdate(e){const{UserStatusList:t=[]}=e||{},s=t.map((e=>{const{To_Account:t,Status:s,CustomStatus:n}=e;return{userID:t,statusType:s,customStatus:$u(n)}}));this._emitUserStatusUpdatedEvent(s)}_onReOnline(e){const t=$u(e.data.customStatus);if(this._customStatus===t)return;this._customStatus=t;const s={userID:Ms(),statusType:Du,customStatus:t};this._emitUserStatusUpdatedEvent(s)}_emitUserStatusUpdatedEvent(e){kt.notificationCenter.emitOuterEvent(qt.USER_STATUS_UPDATED,{name:qt.USER_STATUS_UPDATED,data:e})}_sliceUserIDList(e,t){return e.slice(0,t)}_parseResponse(e){const{ErrorList:t=[]}=e;return t.map((e=>{const{To_Account:t,Invalid_Account:s,ErrorCode:n,ErrorInfo:o}=e;return{userID:kt.utils.isEmpty(s)?t:s,code:n,message:o}}))}_checkBusinessCapabilityBits(e){if(!kt.store.get("commercialConfig").get(Au))throw new cs({functionName:e,code:ss.NO_USE,replacement1:e})}_getMaxUserCount(e){const t=kt.store.get("cloudConfig")||{},s={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:Ou},unsubscribe:{key:"status_unsub_count",default:Ou}},{key:n,default:o}=s[e],i=t[n]||o;return parseInt(i,10)}_getMyStatus(){const e=kt.ssoLog.getSSOLogData("getUserStatus");e.setLogInfo({moreMessage:"getUserStatus._getMyStatus"});const t={userID:Ms(),statusType:Du,customStatus:this._customStatus};return e.end(),{code:0,data:{successUserList:[t],failureUserList:[]}}}_getUserStatus(e){return a(this,void 0,void 0,(function*(){const t=kt.ssoLog.getSSOLogData("getUserStatus");t.setLogInfo({moreMessage:"getUserStatus._getUserStatus"});try{this._checkBusinessCapabilityBits("getUserStatus");const s=this._getMaxUserCount("query"),n=this._sliceUserIDList(e,s),o=yield Vu(n),{successUserList:i,failureUserList:r}=o||{};return t.end(),{code:0,data:{successUserList:i,failureUserList:r}}}catch(e){const{errorCode:s}=e,n=new cs({functionName:"getUserStatus",code:s});throw t.setError(n).end(),n}}))}_isOnlyMeInArray(e){const t=Ms();return 1===e.length&&e.indexOf(t)>-1}_dispose(){const{notificationCenter:e}=kt;e.unSubscribeInnerEvent(Vt.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.unSubscribeInnerEvent(Vt.DESTROY,this._dispose,this),e.unSubscribeInnerEvent(Vt.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const ju={getUserProfile:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},updateMyProfile:{nick:{required:!1,rules:["string"],allowEmpty:!0},avatar:{required:!1,rules:["string"],allowEmpty:!0},gender:{required:!1,rules:["string"],allowEmpty:!0},selfSignature:{required:!1,rules:["string"],allowEmpty:!0},allowType:{required:!1,rules:["string"],allowEmpty:!0},birthday:{required:!1,rules:["number"],allowEmpty:!1},language:{required:!1,rules:["string"],allowEmpty:!0},messageSettings:{required:!1,rules:["string"],allowEmpty:!0},adminForbidType:{required:!1,rules:["string"],allowEmpty:!0},level:{required:!1,rules:["number"],allowEmpty:!1},role:{required:!1,rules:["number"],allowEmpty:!0},profileCustomField:{required:!1,rules:["array"],allowEmpty:!0}},setSelfStatus:{customStatus:{required:!0,rules:["string"],allowEmpty:!0}},getUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!1,rules:["array"],allowEmpty:!0}}},Wu={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class Ku{constructor(){this.userProfile=new Gu,this.userStatus=new Bu,this.userProfile.init(),this.userStatus.init(),Is({auth:Wu,params:ju})}}return console.log(`TencentCloudLiteChat.VERSION:${Ve}`),{create:function(e){const{SDKAppID:t,testEnv:s=!1,devMode:n=!1,unlimitedAVChatRoom:o=!1}=e;let i=t;if(!function(e){if("number"==typeof e)return!0;const t=Number(e);return!Number.isNaN(t)}(i))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(i=Number(i),Cs.has(i))return Cs.get(i);const r=function(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${e()+e()}${e()}${e()}${e()}${e()}${e()}${e()}`}();kt.init({sdkAppId:i,instanceId:r,testEnv:s,devMode:n,unlimitedAVChatRoom:o}),ys.init(),kt.message=new Cu,kt.user=new Ku,kt.login=new bl,Ss.installBuiltInPlugin(Hc);const a=ul();return Cs.set(i,a),a},TSignaling:Bt,EVENT:qt,VERSION:Ve,TYPES:ts}}));